PBCaGw.Workers.WorkerChain.Add C# (CSharp) Méthode

Add() public méthode

Adds the next Worker to the chain and register it to the previous Worker to the ReceiveData event.
public Add ( Worker worker ) : void
worker Worker
Résultat void
        public void Add(Worker worker)
        {
            workers.Add(worker);
            if (firstWorker == null)
                firstWorker = worker;
            else
                lastWorker.ReceiveData += new ReceiveDataDelegate(worker.ProcessData);
            lastWorker = worker;
        }

Usage Example

        /// <summary>
        /// Used to populate the chain based on a list of types
        /// </summary>
        /// <param name="gateway"></param>
        /// <param name="side"> </param>
        /// <param name="workersNeeded"></param>
        /// <param name="client"></param>
        /// <param name="server"></param>
        /// <returns></returns>
        static WorkerChain PopulateChain(Gateway gateway, ChainSide side, IEnumerable<Type> workersNeeded, IPEndPoint client, IPEndPoint server)
        {
            WorkerChain chain = new WorkerChain { ClientEndPoint = client, ServerEndPoint = server, Gateway = gateway, Side = side };

            foreach (Type t in workersNeeded)
            {
                // ReSharper disable PossibleNullReferenceException
                Worker w = (Worker)t.GetConstructor(new Type[] { }).Invoke(new object[] { });
                // ReSharper restore PossibleNullReferenceException
                w.Chain = chain;
                w.ClientEndPoint = client;
                w.ServerEndPoint = server;
                chain.Add(w);
            }

            /*lock (lockChainManagement)
            {
                knownChains.Add(chain);
            }*/
            knownChains.Add(chain);

            return chain;
        }