package async

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

Module Persistent_connection.Make'Source

Parameters

module Conn : Closable

Signature

include Persistent_connection_kernel.S' with type conn = Conn.t with type conn_error = Conn_err.t
Sourcetype t
Sourceval sexp_of_t : t -> Sexplib0.Sexp.t
Sourcetype conn = Conn.t

A connection, perhaps embellished with additional information upon connection.

Sourcetype conn_error = Conn_err.t

The error type of the provided connect function. Use S if this is going to be Error.t

Sourcemodule Event : sig ... end

connected returns the first available connection from the time it is called. When currently connected, the returned deferred is already determined. If closed has been called, then the returned deferred is never determined.

Sourceval event_bus : t -> (unit Event.t -> unit) Bus.Read_only.t

event returns a bus which is written to whenever an event happens. Since the 'address used in create is not exposed as a parameter of the t type, we replace it with ().

Sourceval connected_or_failed_to_connect : t -> conn Core.Or_error.t Async_kernel.Deferred.t

connected_or_failed_to_connect is immediately determined as Ok _ if t is already connected. Otherwise it becomes determined the next time t becomes connected or fails to connect or when t is closed.

Sourceval current_connection : t -> conn option

The current connection, if any.

Sourceval server_name : t -> string

close t closes the current connection and stops it from trying to reconnect. After the deferred it returns becomes determined, the last connection has been closed and no others will be attempted.

Note: no close calls are ever generated internally in response to the connection being closed by the other side.

Sourceval close : t -> unit Async_kernel.Deferred.t

close t closes the connection. The returned deferred becomes determined once any resources needed to maintain the connection have been released.

Sourceval is_closed : t -> bool

is_closed t returns true if close has ever been called (even if the returned deferred has not yet been fulfilled).

Note that some modules implementing Closable may call close internally upon noticing that the connection was closed by the other side. The interface of such a module ought to say that this is the case.

Sourceval close_finished : t -> unit Async_kernel.Deferred.t

close_finished t becomes determined at the same time as the result of the first call to close. close_finished differs from close in that it does not have the side effect of initiating a close.

Sourceval close_when_current_connection_is_closed : t -> unit

close_when_current_connection_is_closed t causes the persistent connection to not reconnect if the current connection closes or if it is not currently connected. It does not close any active connection.

Sourceval create : server_name:string -> ?log:Async.Log.t -> ?on_event:('address Event.t -> unit Async.Deferred.t) -> ?retry_delay:(unit -> Core.Time_float.Span.t) -> ?random_state:[ `Non_random | `State of Core.Random.State.t ] -> ?time_source:Async.Time_source.t -> connect:('address -> (conn, conn_error) Core.Result.t Async.Deferred.t) -> address:(module Persistent_connection_kernel.Address with type t = 'address) -> (unit -> ('address, conn_error) Core.Result.t Async.Deferred.t) -> t
OCaml

Innovation. Community. Security.