示例#1
0
        public ConnectionWorkersPool(
            uint numbersOfBuffers, uint buffersSize, Action <object, SocketAsyncEventArgs> ioCompleted,
            IRequestProcessorFactory requestProcessorFactory)
        {
            _buffersSize       = buffersSize;
            _numbersOfBuffers  = numbersOfBuffers;
            _connectionWorkers = new ConcurrentStack <ConnectionWorker>();

            for (var i = 0; i < numbersOfBuffers; i++)
            {
                var buffer = new byte[buffersSize];
                for (var j = 0; j < buffer.Length; j++)
                {
                    buffer[j] = (byte)j;
                }
                var connectionWorker = new ConnectionWorker
                {
                    RequestProcessor = requestProcessorFactory.GetRequestProcessor()
                };
                var readWriteAsync = new SocketAsyncEventArgs {
                    UserToken = connectionWorker
                };
                connectionWorker.SocketAsyncEventArgs = readWriteAsync;
                readWriteAsync.Completed += new EventHandler <SocketAsyncEventArgs>(ioCompleted);
                _connectionWorkers.Push(connectionWorker);
            }
        }
示例#2
0
        public ConnectionWorkersPool(
            uint numbersOfBuffers, uint buffersSize, Action<object, SocketAsyncEventArgs> ioCompleted, 
            IRequestProcessorFactory requestProcessorFactory)
        {
            _buffersSize = buffersSize;
            _numbersOfBuffers = numbersOfBuffers;
            _connectionWorkers = new ConcurrentStack<ConnectionWorker>();

            for (var i = 0; i < numbersOfBuffers; i++)
            {
                var buffer = new byte[buffersSize];
                for (var j = 0; j < buffer.Length; j++)
                {
                    buffer[j] = (byte)j;
                }
                var connectionWorker = new ConnectionWorker
                {
                    RequestProcessor = requestProcessorFactory.GetRequestProcessor()
                };
                var readWriteAsync = new SocketAsyncEventArgs {UserToken = connectionWorker};
                connectionWorker.SocketAsyncEventArgs = readWriteAsync;
                readWriteAsync.Completed += new EventHandler<SocketAsyncEventArgs>(ioCompleted);
                _connectionWorkers.Push(connectionWorker);
            }
        }
示例#3
0
        public ApiServer(IApiServerConfiguration configuration, IRequestProcessorFactory requestProcessorFactory, IMessageSerializer messageSerializer, ILogger logger)
        {
            _configuration           = configuration;
            _requestProcessorFactory = requestProcessorFactory;
            _messageSerializer       = messageSerializer;
            _logger = logger;

            _readerStream            = new MemoryStream(1024);
            _cancellationTokenSource = new CancellationTokenSource();
        }
示例#4
0
 /// <summary>
 /// Test constructor.
 /// </summary>
 /// <param name="container"></param>
 public HttpHandler(IContainer container)
 {
     _editAuthorizer = container.Resolve<IEditAuthorizer>();
     _requestProcessorFactory = container.Resolve<IRequestProcessorFactory>();
 }