class type hydro_multiplex_controller =object
..end
method alive : bool
method event_system : Unixqueue.event_system
method getsockname : sockaddr
method getpeername : sockaddr
method transport_protocol_type : Hydro_types.transport_protocol_type
method peer_user_name : string option
method reading : bool
method read_eof : bool
method start_reading : ?peek:(unit -> unit) ->
?before_record:(int -> sockaddr -> unit) ->
when_done:((Hydro_types.msg_header * Netbuffer.t * sockaddr)
result_eof -> unit) ->
unit -> unit
when_done
callback is invoked (with header,
the full body in the netbuffer, and the socket address of the
peer).
This starts one-time read job only, i.e. it is not restarted
after when_done
has been invoked.
It is an error to start reading several times.
peek
: This function is called immediately before a data chunk is
read from the underlying data connection.
before_record
: If passed, this function is called back whenever
a record of data is started. The integer is the estimated size of the
message in bytes. It is guaranteed that the function is
invoked at least once before when_done
.
method skip_message : unit -> unit
when_done
callback
will not be invoked for it.method writing : bool
method start_writing : when_done:(unit result -> unit) ->
Hydro_types.msg_buffer -> sockaddr -> unit
when_done
when it is written,
or an error condition is reached.
This starts one-time write job only, i.e. it is not restarted
after when_done
has been invoked.
It is an error to start writing several times.
method start_writing_eof : when_done:(unit result -> unit) -> unit -> unit
method cancel_rd_polling : unit -> unit
before_record
callback function. Polling can be
resumed by calling start_reading
again.method abort_rw : unit -> unit
method start_shutting_down : when_done:(unit result -> unit) -> unit -> unit
when_done
callback is invoked reporting the success
or failure.
The underlying file descriptor (if any) is not closed. A shutdown
is only a protocol handshake. After a shutdown,read_eof
is true. Call inactivate
to close the descriptor.
method cancel_shutting_down : unit -> unit
when_done
callback is invoked with
the `Cancelled
.
It is no error if no shutdown is in progress.
method set_timeout : notify:(unit -> unit) -> float -> unit
notify
callback is invoked.
FIXME:
Currently, the time out on missing read activity may
be overly sensitive. Don't know how to fix.
method inactivate : unit -> unit