module EP : Message_types.ENDPOINT
type restorer = ((EP.Core_types.cap, Exception.t) Pervasives.result -> unit) -> string -> unit
restorer is a function
f for restoring saved capabilities.
f k object_id must eventually call
k result exactly once to respond to the client's bootstrap message with
k takes ownership of the capability.
val create : ?restore:restorer -> tags:Logs.Tag.set -> queue_send:([> EP.Out.t ] -> unit) -> t
create ~bootstrap ~tags ~queue_send is a handler for a connection to a remote peer. Messages will be sent to the peer by calling
queue_send (which MUST deliver them in order). If the remote peer asks for the bootstrap object, it will be given a reference to
bootstrap. Log messages will be tagged with
val bootstrap : t -> string -> EP.Core_types.cap
bootstrap t object_id returns a reference to the remote peer's bootstrap object, if any.
object_id is the "deprecatedObjectId", which is, however, still used. This call does not block; the result is a promise for the object, on which further messages may be pipelined.
handle_msg t feeds one message received from the remote peer into
t. It will call
queue_send as necessary to handle the call. Messages MUST be fed to
handle_msg in the order in which they arrive from the peer.
val disconnect : t -> Exception.t -> unit
disconnect t reason breaks all references with
reason and releases the bootstrap object. Does nothing if already disconnected.
Debugging and diagnostics
val tags : t -> Logs.Tag.set
tags t is a set of logging tags suitable for logging a message about this connection.
val check : t -> unit
check t performs some sanity checks on the state of the tables and raises an exception if it finds a problem.