`sig
class type multiplex_controller =
object
method alive : bool
method cancel_reading : unit -> unit
method cancel_shutting_down : unit -> unit
method cancel_writing : unit -> unit
method event_system : Unixqueue.event_system
method inactivate : unit -> unit
method mem_supported : bool
method read_eof : bool
method reading : bool
method shutting_down : bool
method start_mem_reading :
?peek:(unit -> unit) ->
when_done:(exn option -> int -> unit) ->
Netsys_mem.memory -> int -> int -> unit
method start_mem_writing :
when_done:(exn option -> int -> unit) ->
Netsys_mem.memory -> int -> int -> unit
method start_reading :
?peek:(unit -> unit) ->
when_done:(exn option -> int -> unit) -> string -> int -> int -> unit
method start_shutting_down :
?linger:float -> when_done:(exn option -> unit) -> unit -> unit
method start_writing :
when_done:(exn option -> int -> unit) -> string -> int -> int -> unit
method start_writing_eof :
when_done:(exn option -> unit) -> unit -> unit
method supports_half_open_connection : bool
method tls_session : (string * string) option
method tls_session_props : Nettls_support.tls_session_props option
method tls_stashed_endpoint : unit -> exn
method writing : bool
method wrote_eof : bool
end
class type datagram_multiplex_controller =
object
method alive : bool
method cancel_reading : unit -> unit
method cancel_shutting_down : unit -> unit
method cancel_writing : unit -> unit
method event_system : Unixqueue.event_system
method inactivate : unit -> unit
method mem_supported : bool
method read_eof : bool
method reading : bool
method received_from : Unix.sockaddr
method send_to : Unix.sockaddr -> unit
method shutting_down : bool
method start_mem_reading :
?peek:(unit -> unit) ->
when_done:(exn option -> int -> unit) ->
Netsys_mem.memory -> int -> int -> unit
method start_mem_writing :
when_done:(exn option -> int -> unit) ->
Netsys_mem.memory -> int -> int -> unit
method start_reading :
?peek:(unit -> unit) ->
when_done:(exn option -> int -> unit) -> string -> int -> int -> unit
method start_shutting_down :
?linger:float -> when_done:(exn option -> unit) -> unit -> unit
method start_writing :
when_done:(exn option -> int -> unit) -> string -> int -> int -> unit
method start_writing_eof :
when_done:(exn option -> unit) -> unit -> unit
method supports_half_open_connection : bool
method tls_session : (string * string) option
method tls_session_props : Nettls_support.tls_session_props option
method tls_stashed_endpoint : unit -> exn
method writing : bool
method wrote_eof : bool
end
exception Mem_not_supported
val create_multiplex_controller_for_connected_socket :
?close_inactive_descr:bool ->
?preclose:(unit -> unit) ->
?supports_half_open_connection:bool ->
?timeout:float * exn ->
Unix.file_descr ->
Unixqueue.unix_event_system -> Uq_multiplex.multiplex_controller
val create_multiplex_controller_for_datagram_socket :
?close_inactive_descr:bool ->
?preclose:(unit -> unit) ->
?timeout:float * exn ->
Unix.file_descr ->
Unixqueue.unix_event_system -> Uq_multiplex.datagram_multiplex_controller
val tls_multiplex_controller :
?resume:string ->
?on_handshake:(Uq_multiplex.multiplex_controller -> unit) ->
role:[ `Client | `Server ] ->
peer_name:string option ->
(module Netsys_crypto_types.TLS_CONFIG) ->
Uq_multiplex.multiplex_controller -> Uq_multiplex.multiplex_controller
val restore_tls_multiplex_controller :
?on_handshake:(Uq_multiplex.multiplex_controller -> unit) ->
exn ->
(module Netsys_crypto_types.TLS_CONFIG) ->
Uq_multiplex.multiplex_controller -> Uq_multiplex.multiplex_controller
end`