--- /dev/null
+# class http\Env\Response extends http\Message is callable
+
+The http\Env\Response class' instances represent the server's current HTTP response.
+
+See http\Message for inherited members.
+
+## Constants:
+
+* CONTENT_ENCODING_NONE
+ Do not use content encoding.
+* CONTENT_ENCODING_GZIP
+ Support "Accept-Encoding" requests with gzip and deflate encoding.
+* CACHE_NO
+ No caching info available.
+* CACHE_HIT
+ The cache was hit.
+* CACHE_MISS
+ The cache was missed.
+
+## Properties:
+
+* protected $request = NULL
+ A http\Env\Request instance which overrides the environments default request.
+* protected $contentType = NULL
+ The response's MIME content type.
+* protected $contentDisposition = NULL
+ The response's MIME content disposition.
+* protected $contentEncoding = NULL
+ See http\Env\Response::CONTENT_ENCODING_* constants.
+* protected $cacheControl = NULL
+ How the client should treat this response in regards to caching.
+* protected $etag = NULL
+ A custom ETag.
+* protected $lastModified = NULL
+ A "Last-Modified" time stamp.
+* protected $throttleDelay = NULL
+ Any throttling delay.
+* protected $throttleChunk = NULL
+ The chunk to send every $throttleDelay seconds.
--- /dev/null
+# void http\Env\Response::__construct()
+
+Create a new env response message instance.
+
+## Params:
+
+None.
+
+## Throws:
+
+* http\Exception.
+
+## Example:
+
+ <?php
+ $res = new http\Env\Response;
+ $res->setContentType("text/plain");
+ $res->getBody()->append("Hello world!\n");
+ $res->send(STDOUT);
+ ?>
+
+Yields:
+
+ HTTP/1.1 200 OK
+ Accept-Ranges: bytes
+ Content-Type: text/plain
+ ETag: "b2a9e441"
+
+ Hello world!
--- /dev/null
+# bool http\Response::__invoke(string $data[, int $ob_flags = 0])
+
+Output buffer handler.
+Appends output data to the body.
+
+## Params:
+
+* string $data
+ The data output.
+* Optional int $ob_flags = 0
+ Output buffering flags passed from the output buffering control layer.
+
+## Returns:
+
+* bool, success.
+
+## Example:
+
+ <?php
+ $res = new http\Env\Response;
+ $res->setContentType("text/plain");
+
+ ob_start($res);
+ // yeah, well
+ // not the greatest application logic...
+ echo "Hello world!\n";
+
+ $res->send();
+ ?>
+
+Yields:
+
+ Accept-Ranges: bytes
+ X-Powered-By: PHP/5.5.5
+ Content-Type: text/plain
+ ETag: "b2a9e441"
+
+ Hello world!
--- /dev/null
+# int http\Env\Response::isCachedByEtag([string $header_name = "If-None-Match"])
+
+Manually test the header $header_name of the environment's request for a cache hit.
+http\Env\Response::send() checks that itself, though.
+
+## Params:
+
+* Optional string $header_name = "If-None-Match"
+ The request header to test.
+
+## Returns:
+
+* int, a http\Env\Response::CACHE_* constant.
--- /dev/null
+# int http\Env\Response::isCachedByLastModified([string $header_name = "If-Modified-Since"])
+
+Manually test the header $header_name of the environment's request for a cache hit.
+http\Env\Response::send() checks that itself, though.
+
+## Params:
+
+* Optional string $header_name = "If-Modified-Since"
+ The request header to test.
+
+## Returns:
+
+* int, a http\Env\Response::CACHE_* constant.
--- /dev/null
+# bool http\Env\Response::send([resource $stream = NULL])
+
+Send the response through the SAPI or $stream.
+Flushes all output buffers.
+
+## Params:
+
+* Optional resource $stream = NULL
+ A writable stream to send the response through.
+
+## Returns:
+
+* bool, success.
--- /dev/null
+# http\Env\Response http\Env\Response::setCacheControl(string $cache_control)
+
+Make suggestions to the client how it should cache the response.
+
+## Params:
+
+* string $cache_control
+ (A) "Cache-Control" header value(s).
+
+## Returns:
+
+* http\Env\Response, self.
--- /dev/null
+# http\Env\Response http\Env\Response::setContentDisposition(array $disposition_params)
+
+Set the reponse's content disposition parameters.
+
+## Params:
+
+* array $disposition_params
+ MIME content disposition as http\Params array.
+
+## Returns:
+
+* http\Env\Response, self.
+
+## Example:
+
+ <?php ob_end_Clean();chdir(__DIR__."/../../..");
+ $res = new http\Env\Response;
+ $res->setBody(new http\Message\Body(fopen("http.zip", "r")));
+ $res->setContentType("application/zip");
+ $res->setContentDisposition(["attachment" => ["filename" => "download.zip"]]);
+ $res->send();
+ ?>
+
+Yields:
+
+ Accept-Ranges: bytes
+ X-Powered-By: PHP/5.5.5
+ Content-Type: application/zip
+ Content-Disposition: attachment;filename=download.zip
+ ETag: "12009be-527d3e84-a0"
+ Last-Modified: Fri, 08 Nov 2013 19:41:56 GMT
+
+ PK...
--- /dev/null
+# http\Env\Response http\Env\Response::setContentEncoding(int $content_encoding)
+
+Enable support for "Accept-Encoding" requests with deflate or gzip.
+The response will be compressed if the client indicates support and wishes that.
+
+## Params:
+
+* int $content_encoding
+ See http\Env\Response::CONTENT_ENCODING_* constants.
+
+## Returns:
+
+* http\Env\Response, self.
--- /dev/null
+# http\Env\Response http\Env\Response::setContentType(string $content_type)
+
+Set the MIME content type of the response.
+
+## Params:
+
+* string $conten_type
+ The response's content type.
+
+## Returns:
+
+* http\Env\Response, self.
--- /dev/null
+# http\Env\Response http\Env\Response::setEnvRequest(http\Message $env_request)
+
+Override the environment's request.
+
+## Params:
+
+* http\Message $env_request
+ The overriding request message.
+
+## Returns:
+
+* http\Env\Response, self.
+
+## Example:
+
+ <?php
+ $req = new http\Env\Request;
+ $req->setRequestUrl("/ha/I/changed/it");
+ $res = new http\Env\Response;
+ $res->setEnvRequest($req);
+ ?>
--- /dev/null
+# http\Env\Response http\Env\Response::setEtag(string $etag)
+
+Set a custom ETag.
+
+> **Note:** This will be used for caching and pre-condition checks.
+
+## Params:
+
+* string $etag
+ A ETag.
+
+## Returns:
+
+* http\Env\Response, self.
--- /dev/null
+# http\Env\Response http\Env\Response::setLastModified(int $last_modified)
+
+Set a custom last modified time stamp.
+
+> **Note:** This will be used for caching and pre-condition checks.
+
+## Params:
+
+* int $last_modified
+ A unix timestamp.
+
+## Returns:
+
+* http\Env\Response, self.
--- /dev/null
+# http\Env\Response http\Env\Response::setThrottleRate(int $chunk_size[, float $delay = 1])
+
+Enable throttling.
+Send $chunk_size bytes every $delay seconds.
+
+> **Note:** If you need throttling by regular means, check for other options in your stack, because this method blocks the executing process/thread until the response has completely been sent.
+
+## Params:
+
+* int $chunk_size
+ Bytes to send.
+* Optional float $delay = 1
+ Seconds to sleep.
+
+## Returns:
+
+* http\Env\Response, self.