Beispiel #1
0
 public ConcurrentSchedulingEventHandlingContainer(
     IEventHandlingContainer innerEventHandlingContainer, int numberOfAgents = 10)
 {
     m_innerEventHandlingContainer = innerEventHandlingContainer ??
                                     throw new ArgumentNullException(nameof(innerEventHandlingContainer));
     m_queue = new EventHandlingQueue(numberOfAgents);
 }
        public SocketServer(int numConnections, int bufferSize,
                            IEventHandlingContainer eventHandlers, int backLog = 10)
        {
            if (numConnections < 1)
            {
                throw new ArgumentException("Number of connections must be positive number");
            }
            if (bufferSize < 1)
            {
                throw new ArgumentException("Buffer size must be positive number");
            }
            if (backLog < 1)
            {
                throw new ArgumentException("BackLog must be positive number");
            }
            m_eventHandlers = eventHandlers ??
                              throw new ArgumentNullException(nameof(eventHandlers));

            IsRunning = false;
            m_currentlyConnectedUsers = 0;
            m_numConnections          = numConnections;
            m_bufferSize = bufferSize;
            m_backLog    = backLog;

            m_maxClientsAccepted = new Semaphore(m_numConnections, m_numConnections);
            Init();
        }