package async_js

  1. Overview
  2. Docs
include module type of struct include Async_rpc_kernel.Rpc end
module On_exception = Async_rpc_kernel.Rpc.On_exception
module Implementation = Async_rpc_kernel.Rpc.Implementation

A 'connection_state Implementation.t is something that knows how to respond to one query, given a 'connection_state. That is, you can create a 'connection_state Implementation.t by providing a function which takes a query *and* a 'connection_state and provides a response.

module Implementations = 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.

module How_to_recognise_errors = Async_rpc_kernel.Rpc.How_to_recognise_errors
module Pipe_close_reason = Async_rpc_kernel.Rpc.Pipe_close_reason
module Pipe_message = Async_rpc_kernel.Rpc.Pipe_message

The input type of the f passed to dispatch_iter.

module Pipe_response = Async_rpc_kernel.Rpc.Pipe_response

The output type of the f passed to dispatch_iter. This is analogous to a simple unit Deferred.t, with Continue being like Deferred.unit, but it is made explicit when no waiting should occur.

A state rpc is an easy way for two processes to synchronize a data structure by sending updates over the wire. It's basically a pipe rpc that sends/receives an initial state of the data structure, and then updates, and applies the updates under the covers.

An RPC that has no response. Error handling is trickier here than it is for RPCs with responses, as there is no reasonable place to put an error if something goes wrong. Because of this, in the event of an error such as dispatching to an unimplemented RPC, the connection will be shut down. Similarly, if the implementation raises an exception, the connection will be shut down.

module Connection : sig ... end
OCaml

Innovation. Community. Security.