sig
type error = Magic | Connect
exception Error of (JoinHelper.error * string)
type fork_args =
No_argument
| Same_arguments of string array
| Argument_generator of (int -> string array)
val filter_clients : string array -> string array
val do_forks : string -> JoinHelper.fork_args -> int -> int list
type configuration = {
mutable host : string;
mutable port : int;
mutable clients : int;
mutable forked_program : string;
mutable fork_args : JoinHelper.fork_args;
mutable magic_id : string;
mutable magic_value : string;
}
val default_configuration : unit -> JoinHelper.configuration
val make_commandline :
JoinHelper.configuration -> (Arg.key * Arg.spec * Arg.doc) list
type 'a lookup_function = Join.Ns.t -> string -> 'a
val lookup_once : 'a JoinHelper.lookup_function
val lookup_times : int -> float -> 'a JoinHelper.lookup_function
type at_fail_chan = unit Join.chan
val do_at_fail : (unit -> unit) -> JoinHelper.at_fail_chan
val do_nothing_at_fail : JoinHelper.at_fail_chan
val exit_at_fail_with_code : int -> JoinHelper.at_fail_chan
val exit_at_fail : JoinHelper.at_fail_chan
val check_magic : Join.Ns.t -> JoinHelper.configuration -> unit
val connect : JoinHelper.configuration -> Join.Site.t * Join.Ns.t
val init_client :
?at_fail:JoinHelper.at_fail_chan ->
JoinHelper.configuration -> Join.Ns.t * int list
val init_client_with_lookup :
?at_fail:JoinHelper.at_fail_chan ->
?lookup:'a JoinHelper.lookup_function ->
JoinHelper.configuration -> string -> Join.Ns.t * int list * 'a
val listen : JoinHelper.configuration -> unit
val init_server : JoinHelper.configuration -> Join.Ns.t * int list
val init_server_with_register :
JoinHelper.configuration -> string -> 'a -> Join.Ns.t * int list
val wait_forever : unit -> 'a
end