`sig
type mclient
type mclient_config = {
mclient_rcache : Rpc_proxy.ReliabilityCache.rcache;
mclient_socket_config : Rpc_client.socket_config;
mclient_idle_timeout : float;
mclient_programs : Rpc_program.t list;
mclient_msg_timeout : float;
mclient_msg_timeout_is_fatal : bool;
mclient_exception_handler : (exn -> unit) option;
mclient_auth_methods : Rpc_client.auth_method list;
mclient_user_name : string option;
mclient_initial_ping : bool;
mclient_max_response_length : int option;
mclient_mstring_factories : Netxdr_mstring.named_mstring_factories option;
}
exception Service_unavailable
val create_mclient_config :
?rcache:Rpc_proxy.ReliabilityCache.rcache ->
?socket_config:Rpc_client.socket_config ->
?idle_timeout:float ->
?programs:Rpc_program.t list ->
?msg_timeout:float ->
?msg_timeout_is_fatal:bool ->
?exception_handler:(exn -> unit) ->
?auth_methods:Rpc_client.auth_method list ->
?user_name:string option ->
?initial_ping:bool ->
?max_response_length:int ->
?mstring_factories:Netxdr_mstring.named_mstring_factories ->
unit -> Rpc_proxy.ManagedClient.mclient_config
val create_mclient :
Rpc_proxy.ManagedClient.mclient_config ->
Rpc_client.connector ->
Unixqueue.event_system -> Rpc_proxy.ManagedClient.mclient
type state = [ `Connecting | `Down | `Up of Unix.sockaddr option ]
val mclient_state :
Rpc_proxy.ManagedClient.mclient -> Rpc_proxy.ManagedClient.state
val mclient_serial : Rpc_proxy.ManagedClient.mclient -> int
val pending_calls : Rpc_proxy.ManagedClient.mclient -> int
val event_system :
Rpc_proxy.ManagedClient.mclient -> Unixqueue.event_system
val shut_down : Rpc_proxy.ManagedClient.mclient -> unit
val sync_shutdown : Rpc_proxy.ManagedClient.mclient -> unit
val trigger_shutdown :
Rpc_proxy.ManagedClient.mclient -> (unit -> unit) -> unit
val record_unavailability : Rpc_proxy.ManagedClient.mclient -> unit
val enforce_unavailability : Rpc_proxy.ManagedClient.mclient -> unit
val set_batch_call : Rpc_proxy.ManagedClient.mclient -> unit
val rpc_engine :
Rpc_proxy.ManagedClient.mclient ->
(Rpc_proxy.ManagedClient.mclient -> 'a -> ((unit -> 'b) -> unit) -> unit) ->
'a -> 'b Uq_engines.engine
val compare :
Rpc_proxy.ManagedClient.mclient -> Rpc_proxy.ManagedClient.mclient -> int
type t = mclient
val use : t -> Rpc_program.t -> unit
val unbound_sync_call :
t -> Rpc_program.t -> string -> Netxdr.xdr_value -> Netxdr.xdr_value
val unbound_async_call :
t ->
Rpc_program.t ->
string ->
Netxdr.xdr_value -> ((unit -> Netxdr.xdr_value) -> unit) -> unit
val xdr_ctx : t -> Netxdr.ctx
end`