/// <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;
 }
示例#2
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;
 }
示例#3
0
 /// <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;
 }
示例#4
0
        /// <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;
 }