public void BeginRead(ConnectionContextTPL connectionContext)
        {
            InputStreamContext ctx = new InputStreamContext(connectionContext, bufferSize);

            Task<int>.Factory.FromAsync<byte[], int, int>(ctx.ConnectionContext.ClientStream.BeginRead,
                ctx.ConnectionContext.ClientStream.EndRead, ctx.Header, 0, sizeof(long), ctx).ContinueWith(BeginReadCallback);
        }
 public OutputStreamContext(ConnectionContextTPL connectionContext)
 {
     this.connectionContext = connectionContext;
 }
        private void BeginAcceptSocketCallback(IAsyncResult result)
        {
            Log.LogMessage("Received socket connection");

            TcpListener tcpListener = (TcpListener)result.AsyncState;
            TcpClient tcpClient = tcpListener.EndAcceptTcpClient(result);
            tcpClient.SendTimeout = 10000;
            tcpClient.ReceiveTimeout = 10000;
            NetworkStream clientStream = tcpClient.GetStream();

            ConnectionContextTPL ctx = new ConnectionContextTPL(clientStream, ConnString, this, Log);
            ctx.StartProcessingInputQueue();
            BeginRead(ctx);

            tcpListener.BeginAcceptTcpClient(BeginAcceptSocketCallback, tcpListener);
        }
 public InputStreamContext(ConnectionContextTPL connectionContext, int bufferSize)
 {
     this.connectionContext = connectionContext;
     this.buffer = new byte[bufferSize];
 }