`sig
class type async_out_channel =
object
method can_output : bool
method close_out : unit -> unit
method flush : unit -> unit
method output : string -> int -> int -> int
method pos_out : int
method request_notification : (unit -> bool) -> unit
end
class type async_in_channel =
object
method can_input : bool
method close_in : unit -> unit
method input : string -> int -> int -> int
method pos_in : int
method request_notification : (unit -> bool) -> unit
end
class pseudo_async_out_channel :
#Netchannels.raw_out_channel -> async_out_channel
class pseudo_async_in_channel :
#Netchannels.raw_in_channel -> async_in_channel
class receiver :
src:Unix.file_descr ->
dst:#Uq_transfer.async_out_channel ->
?close_src:bool ->
?close_dst:bool -> Unixqueue.event_system -> [unit] Uq_engines.engine
class sender :
src:#Uq_transfer.async_in_channel ->
dst:Unix.file_descr ->
?close_src:bool ->
?close_dst:bool -> Unixqueue.event_system -> [unit] Uq_engines.engine
class type async_out_channel_engine =
object
method abort : unit -> unit
method can_output : bool
method close_out : unit -> unit
method event_system : Unixqueue.event_system
method flush : unit -> unit
method output : string -> int -> int -> int
method pos_out : int
method request_notification : (unit -> bool) -> unit
method request_proxy_notification :
(unit Uq_engines.engine -> bool) -> unit
method state : unit Uq_engines.engine_state
end
class type async_in_channel_engine =
object
method abort : unit -> unit
method can_input : bool
method close_in : unit -> unit
method event_system : Unixqueue.event_system
method input : string -> int -> int -> int
method pos_in : int
method request_notification : (unit -> bool) -> unit
method request_proxy_notification :
(unit Uq_engines.engine -> bool) -> unit
method state : unit Uq_engines.engine_state
end
class output_async_descr :
dst:Unix.file_descr ->
?buffer_size:int ->
?close_dst:bool -> Unixqueue.event_system -> async_out_channel_engine
class input_async_descr :
src:Unix.file_descr ->
?buffer_size:int ->
?close_src:bool -> Unixqueue.event_system -> async_in_channel_engine
type copy_task =
[ `Bidirectional of Unix.file_descr * Unix.file_descr
| `Tridirectional of
Unix.file_descr * Unix.file_descr * Unix.file_descr
| `Uni_socket of Unix.file_descr * Unix.file_descr
| `Unidirectional of Unix.file_descr * Unix.file_descr ]
class copier :
Uq_transfer.copy_task ->
Unixqueue.event_system -> [unit] Uq_engines.engine
type onshutdown_out_spec =
[ `Action of
Uq_transfer.async_out_channel_engine ->
Uq_engines.multiplex_controller ->
unit Uq_engines.engine_state -> unit
| `Ignore
| `Initiate_shutdown ]
type onshutdown_in_spec =
[ `Action of
Uq_transfer.async_in_channel_engine ->
Uq_engines.multiplex_controller ->
unit Uq_engines.engine_state -> unit
| `Ignore
| `Initiate_shutdown ]
class output_async_mplex :
?onclose:[ `Ignore | `Write_eof ] ->
?onshutdown:Uq_transfer.onshutdown_out_spec ->
?buffer_size:int ->
Uq_engines.multiplex_controller -> async_out_channel_engine
class input_async_mplex :
?onshutdown:Uq_transfer.onshutdown_in_spec ->
?buffer_size:int ->
Uq_engines.multiplex_controller -> async_in_channel_engine
end`