Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Command
is used for setting up an RPC server in the child process. By default this will set up an RPC server, but passing the -sexp
flag will make it run the implementation on a sexp read from stdin instead. Passing the -menu
flag will cause the command to print out a sexp indicating which RPC names and versions are supported.
module Invocation : sig ... end
module Stateful : sig ... end
module type T = Stateful.T with type state := Invocation.t
module type T_conv = Stateful.T_conv with type state := Invocation.t
module type T_pipe = Stateful.T_pipe with type state := Invocation.t
module type T_pipe_conv = Stateful.T_pipe_conv with type state := Invocation.t
type t = [
| `Plain of (module T)
| `Plain_conv of (module T_conv)
| `Pipe of (module T_pipe)
| `Pipe_conv of (module T_pipe_conv)
| `Implementations of Invocation.t Async.Rpc.Implementation.t list
]
val stateful : Invocation.t Stateful.t list -> t list
You need to call this on your list of stateful RPCs before they can be passed to create
or (more usually) the function you get in Expert.param
.
val create :
?heartbeat_config:Async.Rpc.Connection.Heartbeat_config.t ->
?max_message_size:int ->
?log_not_previously_seen_version:(name:string -> int -> unit) ->
?buffer_age_limit:Async.Writer.buffer_age_limit ->
summary:string ->
t list ->
Async.Command.t
module Expert : sig ... end