class type http_response =Encapsultation of the HTTP response for a single requestobject..end
This class has an internal
queue of response tokens that are not yet processed. One can easily add
new tokens to the end of the queue (send).
The class is responsible for determining the transfer encoding:
TE request header is not taken into account. The trailer
is always empty.
The following headers are set (or removed) by this class:
Transfer-EncodingTrailerDateConnectionUpgradeServer (it is appended to this field)
Responses for other requests that must not include a body must set
Content-Length to 0.These methods can be called by the content provider:
method state : resp_state`Inhibitedmethod bidirectional_phase : boolmethod send : resp_token -> unitmethod send_queue_empty : bool`Inhibited, this
method fakes an empty queue.method protocol : Nethttp.protocolmethod close_connection : bool`Resp_end front token has been
reached.method transfer_encoding : transfer_codingsend.method front_token : front_tokendata_chunk. Raises
Send_queue_empty when there is currently no front token, or the state
is `Inhibited.
If there is a front token, it will never have length 0.
Note that Unix_error exceptions can be raised when `Resp_action
tokens are processed.
method set_callback : (unit -> unit) -> unitset_state changes the state,
or when the send queue becomes empty. Note that the callback must never
fail, it is called in situations that make it hard to recover from errors.method body_size : int64method set_state : resp_state -> unitmethod advance : int -> unitn bytes of the front token could be really
sent using Unix.write. If this means that the whole front token
has been sent, the next token is pulled from the queue and is made
the new front token. Otherwise, the data chunk representing the
front token is modified such that the position is advanced by
n, and the length is reduced by n.