Model : sig ... end
module Register_raw : functor (Version_i : sig ... end) -> sig ... end
Register_raw
is like Register
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
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 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 versions : unit ‑> Core_kernel.Int.Set.t
All supported versions. Useful for detecting old versions that may be pruned.