Module type State_rpc.S
(conv) (conv) (conv) (conv) caller callee callee caller | | | | caller| | | | caller Q ---->- Q1 ->-. (impl) .->- (S1, U1s) ->---- (S, Us) \ \ callee / / \--->- Q2 ->---\ | /--->- (S2, U2s) ->---/ \ \callee | callee / / `->- Q3 ->---- Q ------> (S, Us) ---->- (S3, U3s) ->-´
type caller_query
type callee_query
type caller_state
type callee_state
type caller_update
type callee_update
type caller_error
type callee_error
val dispatch_multi : Connection_with_menu.t -> caller_query -> (caller_state * caller_update Core_kernel.Or_error.t Async_kernel.Pipe.Reader.t * Async_rpc_kernel.Rpc.State_rpc.Metadata.t, caller_error) Core_kernel.Result.t Core_kernel.Or_error.t Async_kernel.Deferred.t
multi-version dispatch
val implement_multi : ?log_not_previously_seen_version:(name:string -> int -> unit) -> ('state -> version:int -> callee_query -> (callee_state * callee_update 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 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.