/// <summary> /// Initializes a new instance of the <see cref="HttpClientContextImp"/> class. /// </summary> /// <param name="secured">true if the connection is secured (SSL/TLS)</param> /// <param name="remoteEndPoint">client that connected.</param> /// <param name="requestHandler">delegate handling incoming requests.</param> /// <param name="disconnectHandler">delegate being called when a client disconnectes</param> /// <param name="stream">Stream used for communication</param> /// <exception cref="SocketException">If beginreceive fails</exception> /// <param name="writer">delegate used to write log entries</param> /// <see cref="RequestReceivedHandler"/> /// <see cref="ClientDisconnectedHandler"/> 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); } }
/// <summary> /// Initializes a new instance of the <see cref="HttpClientContextImp"/> class. /// </summary> /// <param name="secured">true if the connection is secured (SSL/TLS)</param> /// <param name="requestHandler">delegate handling incoming requests.</param> /// <param name="remoteEndPoint">client that connected</param> /// <param name="stream">Stream used for communication</param> /// <exception cref="SocketException">If beginreceive fails</exception> /// <see cref="RequestReceivedHandler"/> /// <see cref="ClientDisconnectedHandler"/> public HttpClientContextImp(bool secured, IPEndPoint remoteEndPoint, Stream stream, RequestReceivedHandler requestHandler) : this(secured, remoteEndPoint, requestHandler, null, stream, null) { }