class output_async_mplex :
?onclose:[ `Ignore | `Write_eof ] -> ?onshutdown:onshutdown_out_spec -> ?buffer_size:int -> Uq_engines.multiplex_controller ->
Creates an asynchronous output channel writing to the multiplex
controller (see also
output_async_descr for the corresponding
class writing to a single descriptor).
onclose: What to do when the
close_out method is invoked.
`Write_eof means to write the EOF marker.
Anyway, after doing the close action, the multiplex controller
onshutdown: What to do when all data (and optionally, the EOF marker)
have been written. It is also invoked in case of I/O errors.
The default is
`Ignore. The value
`Initiate_shutdown means that
it is started to shutdown the socket. The success of this action
is not waited upon, however. One can also pass
`Action f in which
case the function
f is called with this object, the
multiplex controller, and the proposed next state as arguments.
By checking the proposed next state the function can see why the
shutdown function was called.
buffer_size: The size of the internal buffer. By default unlimited.
Note that the engine is done when the output channel is closed.
The socket is not shut down, and the underlying file descriptor
is not closed! You can define the
shutdown callback to do something
in this case.