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); }
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; }