Module Async_rpc_kernel__Rpc.Implementations

A 'connection_state Implementations.t is something that knows how to respond to many different queries. It is conceptually a package of 'connection_state Implementation.ts.

type 'connection_state t = 'connection_state Async_rpc_kernel.Implementations.t
val null : unit ‑> 'connection_state t

a server that can handle no queries

val lift : 'a t ‑> f:('b ‑> 'a) ‑> 'b t
val create : implementations:'connection_state Implementation.t list ‑> on_unknown_rpc:[ `Raise | `Continue | `Close_connection | `Call of 'connection_state ‑> rpc_tag:string ‑> version:int ‑> [ `Close_connection | `Continue ] ] ‑> ('connection_state t, [ `Duplicate_implementations of Description.t list ]) Core_kernel.Result.t

create ~implementations ~on_unknown_rpc creates a server capable of responding to the rpcs implemented in the implementation list. Be careful about setting on_unknown_rpc to `Raise because other programs may mistakenly connect to this one causing it to crash.

val create_exn : implementations:'connection_state Implementation.t list ‑> on_unknown_rpc:[ `Raise | `Continue | `Close_connection | `Call of 'connection_state ‑> rpc_tag:string ‑> version:int ‑> [ `Close_connection | `Continue ] ] ‑> 'connection_state t
val add : 'connection_state t ‑> 'connection_state Implementation.t ‑> 'connection_state t Core_kernel.Or_error.t
val add_exn : 'connection_state t ‑> 'connection_state Implementation.t ‑> 'connection_state t
val descriptions : _ t ‑> Description.t list
module Expert : sig ... end

Low-level, untyped access to queries. Regular users should ignore this.