/// <summary> /// Implements chunked transfer encoding, as defined in §3.6.1 RFC 2616. /// </summary> /// <param name="Output">Decoded output.</param> /// <param name="ChunkSize">Chunk size.</param> /// <param name="ClientConnection">Client conncetion.</param> internal ChunkedTransferEncoding(IBinaryTransmission Output, int ChunkSize, HttpClientConnection ClientConnection) : base(Output, ClientConnection) { this.chunkSize = ChunkSize; this.chunk = new byte[ChunkSize]; this.pos = 0; }
/// <summary> /// Represets a response of an HTTP client request. /// </summary> /// <param name="ResponseStream">Underlying response stream.</param> /// <param name="ClientConnection">Client connection.</param> /// <param name="HttpServer">HTTP Server serving the request.</param> /// <param name="Request">Request being served.</param> internal HttpResponse(IBinaryTransmission ResponseStream, HttpClientConnection ClientConnection, HttpServer HttpServer, HttpRequest Request) : base() { this.responseStream = ResponseStream; this.clientConnection = ClientConnection; this.httpServer = HttpServer; this.httpRequest = Request; }
/// <summary> /// Represets a response of an HTTP client request. /// </summary> public HttpResponse() : base() { this.responseStream = null; this.clientConnection = null; this.httpServer = null; this.httpRequest = null; }
/// <summary> /// Represets a response of an HTTP client request. /// </summary> /// <param name="TransferEncoding">Transfer encoding to use for transfering content to client.</param> /// <param name="HttpServer">HTTP Server serving the request.</param> /// <param name="Request">Request being served.</param> public HttpResponse(TransferEncoding TransferEncoding, HttpServer HttpServer, HttpRequest Request) : base() { this.responseStream = null; this.clientConnection = null; this.desiredTransferEncoding = TransferEncoding; this.httpServer = HttpServer; this.httpRequest = Request; if (Request != null && Request.Header.TryGetHeaderField("Connection", out HttpField Field) && Field.Value == "close") { this.closeAfterResponse = true; this.SetHeader("Connection", "close"); } }
/// <summary> /// Implements chunked transfer encoding, as defined in §3.6.1 RFC 2616. /// </summary> /// <param name="Output">Decoded output.</param> /// <param name="ClientConnection">Client connection.</param> internal ChunkedTransferEncoding(IBinaryTransmission Output, HttpClientConnection ClientConnection) : base(Output, ClientConnection) { this.chunk = null; }
/// <summary> /// Encodes content using a content length. /// </summary> /// <param name="Output">Decoded output.</param> /// <param name="ContentLength">Content Length</param> /// <param name="ClientConnection">Client connection.</param> internal ContentLengthEncoding(IBinaryTransmission Output, long ContentLength, HttpClientConnection ClientConnection) : base(Output, ClientConnection) { this.bytesLeft = ContentLength; }
/// <summary> /// Base class for all transfer encodings. /// </summary> /// <param name="Output">Decoded output.</param> /// <param name="ClientConnection">Client connection.</param> internal TransferEncoding(IBinaryTransmission Output, HttpClientConnection ClientConnection) { this.output = Output; this.clientConnection = ClientConnection; }