BACnet.Core.Session.Session C# (CSharp) Метод

Session() публичный Метод

Constructs a new session
public Session ( ) : System
Результат System
        public Session(params IProcess[] processes)
        {
            Contract.Requires(processes != null);
            _processes = new IProcess[processes.Length];
            Array.Copy(processes, _processes, processes.Length);

            foreach (var process in _processes)
            {
                process.Session = this;
            }

            // create the message handlers dictionary
            _messageHandlers = new Dictionary<Type, List<IProcess>>();
            foreach(var process in _processes)
            {
                foreach(var messageType in process.MessageTypes)
                {
                    List<IProcess> handlers = null;
                    if(!_messageHandlers.TryGetValue(messageType, out handlers))
                    {
                        handlers = new List<IProcess>();
                        _messageHandlers.Add(messageType, handlers);
                    }
                    handlers.Add(process);
                }
            }

            _messageQueue = new Queue<IMessage>();
            _processingCallback = new WaitCallback(_processMessages);

            // open all of the ports first
            foreach (var p in _processes.OfType<IPort>())
            {
                p.Open();
            }

            // then resolve all of the process dependencies
            foreach (var process in _processes)
            {
                process.Resolve(processes);
            }
        }