public HttpClientContextImp(bool secured, IPEndPoint remoteEndPoint,
RequestReceivedHandler requestHandler,
ClientDisconnectedHandler disconnectHandler,
Stream stream, ILogWriter writer)
{
Check.Require(requestHandler, "requestHandler");
Check.Require(remoteEndPoint, "remoteEndPoint");
Check.Require(remoteEndPoint.Address, "remoteEndPoint.Address");
Check.Require(stream, "stream");
if (!stream.CanWrite || !stream.CanRead)
throw new ArgumentException("Stream must be writeable and readable.");
_remoteEndPoint = remoteEndPoint;
_log = writer ?? NullLogWriter.Instance;
_parser = new HttpRequestParser(OnRequestCompleted, null);
_secured = secured;
_requestHandler = requestHandler;
_disconnectHandler = disconnectHandler;
_stream = stream;
try
{
_stream.BeginRead(_buffer, 0, BUFFER_SIZE, OnReceive, null);
}
catch (IOException err)
{
_log.Write(this, LogPrio.Debug, err.ToString());
_stream = null;
_disconnectHandler(this, SocketError.ConnectionAborted);
}
}