sig
type 'a socktype_t
type 'a domain_t
type protocol_t
type 'a sockaddr_t
type ('a, -'b, -'c) sockopt_t
type (+'a, +'b) t
type msg_flags_t = {
msg_oob : bool;
msg_peek : bool;
msg_dontroute : bool;
msg_eor : bool;
msg_trunc : bool;
msg_ctrunc : bool;
msg_waitall : bool;
msg_dontwait : bool;
}
module type AF =
sig
type tag_t
type address_t
val domain : Cf_socket.AF.tag_t Cf_socket.domain_t
val to_sockaddr :
Cf_socket.AF.address_t -> Cf_socket.AF.tag_t Cf_socket.sockaddr_t
val of_sockaddr :
Cf_socket.AF.tag_t Cf_socket.sockaddr_t -> Cf_socket.AF.address_t
val unspecified : Cf_socket.AF.tag_t Cf_socket.sockaddr_t
end
module type ST =
sig type tag_t val socktype : Cf_socket.ST.tag_t Cf_socket.socktype_t end
module type P =
sig module AF : AF module ST : ST val protocol : Cf_socket.protocol_t end
val msg_flags_none : Cf_socket.msg_flags_t
val create :
'a Cf_socket.domain_t ->
'b Cf_socket.socktype_t -> Cf_socket.protocol_t -> ('a, 'b) Cf_socket.t
val createpair :
'a Cf_socket.domain_t ->
'b Cf_socket.socktype_t ->
Cf_socket.protocol_t -> ('a, 'b) Cf_socket.t * ('a, 'b) Cf_socket.t
val to_unix_file_descr : ('a, 'b) Cf_socket.t -> Unix.file_descr
val domain_of_unit_sockaddr :
unit Cf_socket.sockaddr_t -> unit Cf_socket.domain_t
val dup : ('a, 'b) Cf_socket.t -> ('a, 'b) Cf_socket.t
val dup2 : ('a, 'b) Cf_socket.t -> ('a, 'b) Cf_socket.t -> unit
val getsockname : ('a, 'b) Cf_socket.t -> 'a Cf_socket.sockaddr_t
val getpeername : ('a, 'b) Cf_socket.t -> 'a Cf_socket.sockaddr_t
val bind : ('a, 'b) Cf_socket.t -> 'a Cf_socket.sockaddr_t -> unit
val connect : ('a, 'b) Cf_socket.t -> 'a Cf_socket.sockaddr_t -> unit
val listen : ('a, [ `SOCK_STREAM ]) Cf_socket.t -> int -> unit
val accept :
('a, [ `SOCK_STREAM ]) Cf_socket.t ->
('a, [ `SOCK_STREAM ]) Cf_socket.t * 'a Cf_socket.sockaddr_t
val shutdown : ('a, 'b) Cf_socket.t -> Unix.shutdown_command -> unit
val close : ('a, 'b) Cf_socket.t -> unit
val send :
('a, 'b) Cf_socket.t ->
string -> int -> int -> Cf_socket.msg_flags_t -> int
val sendto :
('a, [ `SOCK_DGRAM ]) Cf_socket.t ->
string ->
int -> int -> Cf_socket.msg_flags_t -> 'a Cf_socket.sockaddr_t -> int
val recv :
('a, 'b) Cf_socket.t ->
string -> int -> int -> Cf_socket.msg_flags_t -> int
val recvfrom :
('a, [ `SOCK_DGRAM ]) Cf_socket.t ->
string ->
int -> int -> Cf_socket.msg_flags_t -> int * 'a Cf_socket.sockaddr_t
val getsockopt :
('a, 'b) Cf_socket.t -> ('c, 'a, 'b) Cf_socket.sockopt_t -> 'c
val setsockopt :
('a, 'b) Cf_socket.t -> ('c, 'a, 'b) Cf_socket.sockopt_t -> 'c -> unit
val so_debug : (bool, 'a, 'b) Cf_socket.sockopt_t
val so_reuseaddr : (bool, 'a, 'b) Cf_socket.sockopt_t
val so_reuseport : (bool, 'a, 'b) Cf_socket.sockopt_t
val so_keepalive : (bool, 'a, 'b) Cf_socket.sockopt_t
val so_dontroute : (bool, 'a, 'b) Cf_socket.sockopt_t
val so_linger : (int option, 'a, 'b) Cf_socket.sockopt_t
val so_broadcast : (bool, 'a, 'b) Cf_socket.sockopt_t
val so_oobinline : (bool, 'a, 'b) Cf_socket.sockopt_t
val so_sndbuf : (int, 'a, 'b) Cf_socket.sockopt_t
val so_rcvbuf : (int, 'a, 'b) Cf_socket.sockopt_t
val so_sndlowat : (int, 'a, 'b) Cf_socket.sockopt_t
val so_rcvlowat : (int, 'a, 'b) Cf_socket.sockopt_t
val so_sndtimeo : (float, 'a, 'b) Cf_socket.sockopt_t
val so_rcvtimeo : (float, 'a, 'b) Cf_socket.sockopt_t
val so_error : (unit, 'a, 'b) Cf_socket.sockopt_t
val so_nosigpipe : (bool, 'a, 'b) Cf_socket.sockopt_t
end