Module Pipe_rpc.Make
Parameters
Model : sig ... end
Signature
module Register_raw : functor (Version_i : sig ... end) -> sig ... end
Register_raw
is likeRegister
except you get the whole pipe to deal with.
include S with type caller_query := Model.Caller.query with type caller_response := Model.Caller.response with type caller_error := Model.Caller.error with type callee_query := Model.Callee.query with type callee_response := Model.Callee.response with type callee_error := Model.Callee.error
type caller_query
type caller_response
type caller_error
type callee_query
type callee_response
type callee_error
val dispatch_multi : Connection_with_menu.t -> caller_query -> (caller_response Core_kernel.Or_error.t Async_kernel.Pipe.Reader.t * Async_rpc_kernel.Rpc.Pipe_rpc.Metadata.t, caller_error) Core_kernel.Result.t Core_kernel.Or_error.t Async_kernel.Deferred.t
multi-version dispatch
val dispatch_iter_multi : Connection_with_menu.t -> caller_query -> f:(caller_response Async_rpc_kernel.Rpc.Pipe_rpc.Pipe_message.t -> Async_rpc_kernel.Rpc.Pipe_rpc.Pipe_response.t) -> (Async_rpc_kernel.Rpc.Pipe_rpc.Id.t, caller_error) Core_kernel.Result.t Core_kernel.Or_error.t Async_kernel.Deferred.t
val abort_multi : Connection_with_menu.t -> Async_rpc_kernel.Rpc.Pipe_rpc.Id.t -> unit Core_kernel.Or_error.t
val implement_multi : ?log_not_previously_seen_version:(name:string -> int -> unit) -> ('state -> version:int -> callee_query -> (callee_response Async_kernel.Pipe.Reader.t, callee_error) Core_kernel.Result.t Async_kernel.Deferred.t) -> 'state Async_rpc_kernel.Rpc.Implementation.t list
implement multiple versions at once
val implement_direct_multi : ?log_not_previously_seen_version:(name:string -> int -> unit) -> ('state -> version:int -> callee_query -> callee_response Versioned_direct_stream_writer.t -> (unit, callee_error) Core_kernel.Result.t Async_kernel.Deferred.t) -> 'state Async_rpc_kernel.Rpc.Implementation.t list
val rpcs : unit -> Async_rpc_kernel.Rpc.Any.t list
All supported rpcs.
val versions : unit -> Core_kernel.Int.Set.t
All supported versions. Useful for detecting old versions that may be pruned.