sig
type t = {
file_descr : Raw_fd.File_descr.t;
mutable info : Core.Std.Info.t;
mutable kind : Raw_fd.Kind.t;
mutable supports_nonblock : bool;
mutable have_set_nonblock : bool;
mutable state : Raw_fd.State.t;
watching : Raw_fd.Watching.t Read_write.Mutable.t;
mutable watching_has_changed : bool;
mutable num_active_syscalls : int;
close_finished : unit Import.Ivar.t;
}
val sexp_of_t : Raw_fd.T.t -> Sexplib.Sexp.t
val close_finished : Raw_fd.T.t -> unit Import.Ivar.t
val num_active_syscalls : Raw_fd.T.t -> int
val set_num_active_syscalls : Raw_fd.T.t -> int -> unit
val watching_has_changed : Raw_fd.T.t -> bool
val set_watching_has_changed : Raw_fd.T.t -> bool -> unit
val watching : Raw_fd.T.t -> Raw_fd.Watching.t Read_write.Mutable.t
val state : Raw_fd.T.t -> Raw_fd.State.t
val set_state : Raw_fd.T.t -> Raw_fd.State.t -> unit
val have_set_nonblock : Raw_fd.T.t -> bool
val set_have_set_nonblock : Raw_fd.T.t -> bool -> unit
val supports_nonblock : Raw_fd.T.t -> bool
val set_supports_nonblock : Raw_fd.T.t -> bool -> unit
val kind : Raw_fd.T.t -> Raw_fd.Kind.t
val set_kind : Raw_fd.T.t -> Raw_fd.Kind.t -> unit
val info : Raw_fd.T.t -> Core.Std.Info.t
val set_info : Raw_fd.T.t -> Core.Std.Info.t -> unit
val file_descr : Raw_fd.T.t -> Raw_fd.File_descr.t
module Fields :
sig
val names : string list
val close_finished :
([< `Read | `Set_and_create ], Raw_fd.T.t, unit Import.Ivar.t)
Fieldslib.Field.t_with_perm
val num_active_syscalls :
([< `Read | `Set_and_create ], Raw_fd.T.t, int)
Fieldslib.Field.t_with_perm
val watching_has_changed :
([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm
val watching :
([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.Watching.t Read_write.Mutable.t)
Fieldslib.Field.t_with_perm
val state :
([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.State.t)
Fieldslib.Field.t_with_perm
val have_set_nonblock :
([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm
val supports_nonblock :
([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm
val kind :
([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.Kind.t)
Fieldslib.Field.t_with_perm
val info :
([< `Read | `Set_and_create ], Raw_fd.T.t, Core.Std.Info.t)
Fieldslib.Field.t_with_perm
val file_descr :
([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.File_descr.t)
Fieldslib.Field.t_with_perm
val make_creator :
file_descr:(([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.File_descr.t)
Fieldslib.Field.t_with_perm ->
'a -> ('b -> Raw_fd.File_descr.t) * 'c) ->
info:(([< `Read | `Set_and_create ], Raw_fd.T.t, Core.Std.Info.t)
Fieldslib.Field.t_with_perm ->
'c -> ('b -> Core.Std.Info.t) * 'd) ->
kind:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.Kind.t)
Fieldslib.Field.t_with_perm -> 'd -> ('b -> Raw_fd.Kind.t) * 'e) ->
supports_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm ->
'e -> ('b -> bool) * 'f) ->
have_set_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm ->
'f -> ('b -> bool) * 'g) ->
state:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.State.t)
Fieldslib.Field.t_with_perm ->
'g -> ('b -> Raw_fd.State.t) * 'h) ->
watching:(([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.Watching.t Read_write.Mutable.t)
Fieldslib.Field.t_with_perm ->
'h -> ('b -> Raw_fd.Watching.t Read_write.Mutable.t) * 'i) ->
watching_has_changed:(([< `Read | `Set_and_create ], Raw_fd.T.t,
bool)
Fieldslib.Field.t_with_perm ->
'i -> ('b -> bool) * 'j) ->
num_active_syscalls:(([< `Read | `Set_and_create ], Raw_fd.T.t, int)
Fieldslib.Field.t_with_perm ->
'j -> ('b -> int) * 'k) ->
close_finished:(([< `Read | `Set_and_create ], Raw_fd.T.t,
unit Import.Ivar.t)
Fieldslib.Field.t_with_perm ->
'k -> ('b -> unit Import.Ivar.t) * 'l) ->
'a -> ('b -> Raw_fd.T.t) * 'l
val create :
file_descr:Raw_fd.File_descr.t ->
info:Core.Std.Info.t ->
kind:Raw_fd.Kind.t ->
supports_nonblock:bool ->
have_set_nonblock:bool ->
state:Raw_fd.State.t ->
watching:Raw_fd.Watching.t Read_write.Mutable.t ->
watching_has_changed:bool ->
num_active_syscalls:int ->
close_finished:unit Import.Ivar.t -> Raw_fd.T.t
val map :
file_descr:(([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.File_descr.t)
Fieldslib.Field.t_with_perm -> Raw_fd.File_descr.t) ->
info:(([< `Read | `Set_and_create ], Raw_fd.T.t, Core.Std.Info.t)
Fieldslib.Field.t_with_perm -> Core.Std.Info.t) ->
kind:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.Kind.t)
Fieldslib.Field.t_with_perm -> Raw_fd.Kind.t) ->
supports_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm -> bool) ->
have_set_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm -> bool) ->
state:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.State.t)
Fieldslib.Field.t_with_perm -> Raw_fd.State.t) ->
watching:(([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.Watching.t Read_write.Mutable.t)
Fieldslib.Field.t_with_perm ->
Raw_fd.Watching.t Read_write.Mutable.t) ->
watching_has_changed:(([< `Read | `Set_and_create ], Raw_fd.T.t,
bool)
Fieldslib.Field.t_with_perm -> bool) ->
num_active_syscalls:(([< `Read | `Set_and_create ], Raw_fd.T.t, int)
Fieldslib.Field.t_with_perm -> int) ->
close_finished:(([< `Read | `Set_and_create ], Raw_fd.T.t,
unit Import.Ivar.t)
Fieldslib.Field.t_with_perm -> unit Import.Ivar.t) ->
Raw_fd.T.t
val iter :
file_descr:(([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.File_descr.t)
Fieldslib.Field.t_with_perm -> 'a) ->
info:(([< `Read | `Set_and_create ], Raw_fd.T.t, Core.Std.Info.t)
Fieldslib.Field.t_with_perm -> 'b) ->
kind:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.Kind.t)
Fieldslib.Field.t_with_perm -> 'c) ->
supports_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm -> 'd) ->
have_set_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm -> 'e) ->
state:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.State.t)
Fieldslib.Field.t_with_perm -> 'f) ->
watching:(([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.Watching.t Read_write.Mutable.t)
Fieldslib.Field.t_with_perm -> 'g) ->
watching_has_changed:(([< `Read | `Set_and_create ], Raw_fd.T.t,
bool)
Fieldslib.Field.t_with_perm -> 'h) ->
num_active_syscalls:(([< `Read | `Set_and_create ], Raw_fd.T.t, int)
Fieldslib.Field.t_with_perm -> 'i) ->
close_finished:(([< `Read | `Set_and_create ], Raw_fd.T.t,
unit Import.Ivar.t)
Fieldslib.Field.t_with_perm -> 'j) ->
'j
val fold :
init:'a ->
file_descr:('a ->
([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.File_descr.t)
Fieldslib.Field.t_with_perm -> 'b) ->
info:('b ->
([< `Read | `Set_and_create ], Raw_fd.T.t, Core.Std.Info.t)
Fieldslib.Field.t_with_perm -> 'c) ->
kind:('c ->
([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.Kind.t)
Fieldslib.Field.t_with_perm -> 'd) ->
supports_nonblock:('d ->
([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm -> 'e) ->
have_set_nonblock:('e ->
([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm -> 'f) ->
state:('f ->
([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.State.t)
Fieldslib.Field.t_with_perm -> 'g) ->
watching:('g ->
([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.Watching.t Read_write.Mutable.t)
Fieldslib.Field.t_with_perm -> 'h) ->
watching_has_changed:('h ->
([< `Read | `Set_and_create ], Raw_fd.T.t,
bool)
Fieldslib.Field.t_with_perm -> 'i) ->
num_active_syscalls:('i ->
([< `Read | `Set_and_create ], Raw_fd.T.t, int)
Fieldslib.Field.t_with_perm -> 'j) ->
close_finished:('j ->
([< `Read | `Set_and_create ], Raw_fd.T.t,
unit Import.Ivar.t)
Fieldslib.Field.t_with_perm -> 'k) ->
'k
val map_poly :
([< `Read | `Set_and_create ], Raw_fd.T.t, 'a) Fieldslib.Field.user ->
'a list
val for_all :
file_descr:(([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.File_descr.t)
Fieldslib.Field.t_with_perm -> bool) ->
info:(([< `Read | `Set_and_create ], Raw_fd.T.t, Core.Std.Info.t)
Fieldslib.Field.t_with_perm -> bool) ->
kind:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.Kind.t)
Fieldslib.Field.t_with_perm -> bool) ->
supports_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm -> bool) ->
have_set_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm -> bool) ->
state:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.State.t)
Fieldslib.Field.t_with_perm -> bool) ->
watching:(([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.Watching.t Read_write.Mutable.t)
Fieldslib.Field.t_with_perm -> bool) ->
watching_has_changed:(([< `Read | `Set_and_create ], Raw_fd.T.t,
bool)
Fieldslib.Field.t_with_perm -> bool) ->
num_active_syscalls:(([< `Read | `Set_and_create ], Raw_fd.T.t, int)
Fieldslib.Field.t_with_perm -> bool) ->
close_finished:(([< `Read | `Set_and_create ], Raw_fd.T.t,
unit Import.Ivar.t)
Fieldslib.Field.t_with_perm -> bool) ->
bool
val exists :
file_descr:(([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.File_descr.t)
Fieldslib.Field.t_with_perm -> bool) ->
info:(([< `Read | `Set_and_create ], Raw_fd.T.t, Core.Std.Info.t)
Fieldslib.Field.t_with_perm -> bool) ->
kind:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.Kind.t)
Fieldslib.Field.t_with_perm -> bool) ->
supports_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm -> bool) ->
have_set_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm -> bool) ->
state:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.State.t)
Fieldslib.Field.t_with_perm -> bool) ->
watching:(([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.Watching.t Read_write.Mutable.t)
Fieldslib.Field.t_with_perm -> bool) ->
watching_has_changed:(([< `Read | `Set_and_create ], Raw_fd.T.t,
bool)
Fieldslib.Field.t_with_perm -> bool) ->
num_active_syscalls:(([< `Read | `Set_and_create ], Raw_fd.T.t, int)
Fieldslib.Field.t_with_perm -> bool) ->
close_finished:(([< `Read | `Set_and_create ], Raw_fd.T.t,
unit Import.Ivar.t)
Fieldslib.Field.t_with_perm -> bool) ->
bool
val to_list :
file_descr:(([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.File_descr.t)
Fieldslib.Field.t_with_perm -> 'a) ->
info:(([< `Read | `Set_and_create ], Raw_fd.T.t, Core.Std.Info.t)
Fieldslib.Field.t_with_perm -> 'a) ->
kind:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.Kind.t)
Fieldslib.Field.t_with_perm -> 'a) ->
supports_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm -> 'a) ->
have_set_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
Fieldslib.Field.t_with_perm -> 'a) ->
state:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.State.t)
Fieldslib.Field.t_with_perm -> 'a) ->
watching:(([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.Watching.t Read_write.Mutable.t)
Fieldslib.Field.t_with_perm -> 'a) ->
watching_has_changed:(([< `Read | `Set_and_create ], Raw_fd.T.t,
bool)
Fieldslib.Field.t_with_perm -> 'a) ->
num_active_syscalls:(([< `Read | `Set_and_create ], Raw_fd.T.t, int)
Fieldslib.Field.t_with_perm -> 'a) ->
close_finished:(([< `Read | `Set_and_create ], Raw_fd.T.t,
unit Import.Ivar.t)
Fieldslib.Field.t_with_perm -> 'a) ->
'a list
module Direct :
sig
val iter :
Raw_fd.T.t ->
file_descr:(([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.File_descr.t)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> Raw_fd.File_descr.t -> 'a) ->
info:(([< `Read | `Set_and_create ], Raw_fd.T.t, Core.Std.Info.t)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> Core.Std.Info.t -> 'b) ->
kind:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.Kind.t)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> Raw_fd.Kind.t -> 'c) ->
supports_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t,
bool)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> bool -> 'd) ->
have_set_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t,
bool)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> bool -> 'e) ->
state:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.State.t)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> Raw_fd.State.t -> 'f) ->
watching:(([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.Watching.t Read_write.Mutable.t)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t ->
Raw_fd.Watching.t Read_write.Mutable.t -> 'g) ->
watching_has_changed:(([< `Read | `Set_and_create ], Raw_fd.T.t,
bool)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> bool -> 'h) ->
num_active_syscalls:(([< `Read | `Set_and_create ], Raw_fd.T.t,
int)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> int -> 'i) ->
close_finished:(([< `Read | `Set_and_create ], Raw_fd.T.t,
unit Import.Ivar.t)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> unit Import.Ivar.t -> 'j) ->
'j
val fold :
Raw_fd.T.t ->
init:'a ->
file_descr:('a ->
([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.File_descr.t)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> Raw_fd.File_descr.t -> 'b) ->
info:('b ->
([< `Read | `Set_and_create ], Raw_fd.T.t, Core.Std.Info.t)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> Core.Std.Info.t -> 'c) ->
kind:('c ->
([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.Kind.t)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> Raw_fd.Kind.t -> 'd) ->
supports_nonblock:('d ->
([< `Read | `Set_and_create ], Raw_fd.T.t,
bool)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> bool -> 'e) ->
have_set_nonblock:('e ->
([< `Read | `Set_and_create ], Raw_fd.T.t,
bool)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> bool -> 'f) ->
state:('f ->
([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.State.t)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> Raw_fd.State.t -> 'g) ->
watching:('g ->
([< `Read | `Set_and_create ], Raw_fd.T.t,
Raw_fd.Watching.t Read_write.Mutable.t)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t ->
Raw_fd.Watching.t Read_write.Mutable.t -> 'h) ->
watching_has_changed:('h ->
([< `Read | `Set_and_create ], Raw_fd.T.t,
bool)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> bool -> 'i) ->
num_active_syscalls:('i ->
([< `Read | `Set_and_create ], Raw_fd.T.t,
int)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> int -> 'j) ->
close_finished:('j ->
([< `Read | `Set_and_create ], Raw_fd.T.t,
unit Import.Ivar.t)
Fieldslib.Field.t_with_perm ->
Raw_fd.T.t -> unit Import.Ivar.t -> 'k) ->
'k
end
end
end