class type async_out_channel =object
..end
An asynchrounous output channel provides methods to output data to
a stream descriptor. It is based on raw_out_channel
, which is
defined by the Ocamlnet module Netchannels
(see there for an
introduction into the idea of using objects as I/O channels).
An asynchronous channel can indicate that there is no space in the
output buffer. Furthermore, one can request notification in the case
that there is no space or again space in the output buffer.
raw_out_channel
method output : Stdlib.Bytes.t -> int -> int -> int
output s k n
: Writes the substring of s
beginning at index
k
with length n
into the channel. The channel is free to
accept only a portion of the string (or even nothing), and
returns the number of bytes it accepts.
method close_out : unit -> unit
Closes the channel
method pos_out : int
Returns the number of characters output into the channel
method flush : unit -> unit
Flushes the channel. Asynchronous channels usually ignore flush requests. A potential meaning of flushing could be that no more data are accepted until the current buffer is completely processed. Implementing this is optional.
method can_output : bool
Whether output is possible, i.e. the output method accepts at least one byte
method request_notification : (unit -> bool) -> unit
After the notification has been requested, the passed function is
be called whenever can_output
changes its value (or might change
its value). The function returns true
if there is still interest
in notification, and false
if notification must be disabled.
There can be any number of parallel active notifications. It is allowed that a notification callback requests further notifications.