package async_rpc_kernel

  1. Overview
  2. Docs
Module type
Class type

Given a model of the types involved in a family of RPCs, this functor provides a single RPC versioned dispatch function dispatch_multi in terms of that model and a mechanism for registering the individual versions that dispatch_multi knows about. Registration requires knowing how to get into and out of the model.

           ,-->-- Q1 --> R1 -->-.
          /                      \
         Q --->-- Q2 --> R2 -->-- R
          \                      /
           `-->-- Q3 --> R3 -->-´


module Model : sig ... end


module Register (Version_i : sig ... end) : sig ... end

Adds a new version to the set of versions available via dispatch_multi.

module Register' (Version_i : sig ... end) : sig ... end

A variant of Register in which the query is made available when transforming the response

include S with type query := Model.query with type response := Model.response
val rpcs : unit -> Rpc.Any.t list

All rpcs supported by dispatch_multi.

val versions : unit -> Core_kernel.Int.Set.t

All versions supported by dispatch_multi (useful for computing which old versions may be pruned).

val name : string