package async_rpc_kernel

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

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
val null : unit -> 'connection_state t

a server that can handle no queries

val lift : 'a t -> f:('b -> 'a) -> 'b t

Calls Implementation.lift on all implementations in t.

type 'connection_state on_unknown_rpc = [
  1. | `Raise
  2. | `Continue
  3. | `Close_connection
    (*

    used to be the behavior of `Ignore

    *)
  4. | `Call of 'connection_state -> rpc_tag:string -> version:int -> [ `Close_connection | `Continue ]
    (*

    rpc_tag and version are the name and version of the unknown rpc

    *)
]
val create : implementations:'connection_state Implementation.t list -> on_unknown_rpc:'connection_state on_unknown_rpc -> ('connection_state t, [ `Duplicate_implementations of Description.t list ]) Core.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.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.

OCaml

Innovation. Community. Security.