bool HandlePreambleComplete(IAsyncResult result)
            {
                IConnection upgradedConnection = this.serverSingletonPreambleReader.EndCompletePreamble(result);
                ServerSingletonConnectionReader singletonReader = new ServerSingletonConnectionReader(serverSingletonPreambleReader, upgradedConnection, this.demuxer);

                //singletonReader doesn't have async version of ReceiveRequest, so just call the [....] method for now.
                RequestContext requestContext = singletonReader.ReceiveRequest(this.timeoutHelper.RemainingTime());

                singletonChannelListener.ReceiveRequest(requestContext, serverSingletonPreambleReader.ConnectionDequeuedCallback, true);

                return(true);
            }
Exemplo n.º 2
0
        private void OnSingletonPreambleKnown(ServerSingletonPreambleConnectionReader serverSingletonPreambleReader)
        {
            lock (this.ThisLock)
            {
                if (this.isDisposed)
                {
                    return;
                }
                this.connectionReaders.Remove(serverSingletonPreambleReader);
            }
            ISingletonChannelListener listener = this.singletonPreambleCallback(serverSingletonPreambleReader);
            TimeoutHelper             helper   = new TimeoutHelper(listener.ReceiveTimeout);
            IConnection    upgradedConnection  = serverSingletonPreambleReader.CompletePreamble(helper.RemainingTime());
            RequestContext requestContext      = new ServerSingletonConnectionReader(serverSingletonPreambleReader, upgradedConnection, this).ReceiveRequest(helper.RemainingTime());

            listener.ReceiveRequest(requestContext, serverSingletonPreambleReader.ConnectionDequeuedCallback, true);
        }
 private void OnSingletonPreambleKnown(ServerSingletonPreambleConnectionReader serverSingletonPreambleReader)
 {
     lock (this.ThisLock)
     {
         if (this.isDisposed)
         {
             return;
         }
         this.connectionReaders.Remove(serverSingletonPreambleReader);
     }
     ISingletonChannelListener listener = this.singletonPreambleCallback(serverSingletonPreambleReader);
     TimeoutHelper helper = new TimeoutHelper(listener.ReceiveTimeout);
     IConnection upgradedConnection = serverSingletonPreambleReader.CompletePreamble(helper.RemainingTime());
     RequestContext requestContext = new ServerSingletonConnectionReader(serverSingletonPreambleReader, upgradedConnection, this).ReceiveRequest(helper.RemainingTime());
     listener.ReceiveRequest(requestContext, serverSingletonPreambleReader.ConnectionDequeuedCallback, true);
 }
            bool HandlePreambleComplete(IAsyncResult result)
            {
                IConnection upgradedConnection = this.serverSingletonPreambleReader.EndCompletePreamble(result);
                ServerSingletonConnectionReader singletonReader = new ServerSingletonConnectionReader(serverSingletonPreambleReader, upgradedConnection, this.demuxer);

                //singletonReader doesn't have async version of ReceiveRequest, so just call the [....] method for now.
                RequestContext requestContext = singletonReader.ReceiveRequest(this.timeoutHelper.RemainingTime());
                singletonChannelListener.ReceiveRequest(requestContext, serverSingletonPreambleReader.ConnectionDequeuedCallback, true);

                return true;
            }