package obus

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

Module OBus_transportSource

Low-level transporting of messages

Sourcetype t

Type of message transport

recv tr receives one message from the given transport

Sourceval send : t -> OBus_message.t -> unit Lwt.t

send tr msg sends msg over the transport tr.

Sourceval capabilities : t -> OBus_auth.capability list

Returns the capabilities of the transport

Sourceval shutdown : t -> unit Lwt.t

shutdown tr frees resources allocated by the given transport

Sourceval make : ?switch:Lwt_switch.t -> recv:(unit -> OBus_message.t Lwt.t) -> send:(OBus_message.t -> unit Lwt.t) -> ?capabilities:OBus_auth.capability list -> shutdown:(unit -> unit Lwt.t) -> unit -> t

make ?switch ~recv ~send ~support_unxi_fd ~shutdown () creates a new transport from the given functions.

  • parameter capabilities

    defaults to [].

Notes:

  • message reading/writing are serialized by obus, so there is no need to handle concurrent access to transport
Sourceval loopback : unit -> t

Loopback transport, each message sent is received on the same transport

Sourceval socket : ?switch:Lwt_switch.t -> ?capabilities:OBus_auth.capability list -> Lwt_unix.file_descr -> t

socket ?switch ?capabilities socket creates a socket transport.

  • parameter capabilities

    defaults to []. For unix sockets, the `Unix_fd capability is accepted.

Sourceval of_addresses : ?switch:Lwt_switch.t -> ?capabilities:OBus_auth.capability list -> ?mechanisms:OBus_auth.Client.mechanism list -> OBus_address.t list -> (OBus_address.guid * t) Lwt.t

of_addresses ?switch ?capabilities ?mechanisms addresses tries to:

If all succeeded, it returns the server address guid and the newly created transport, which is ready to send and receive messages.

Note about errors:

  • if one of the addresses is not valid, or addresses = [], it raises Invalid_argument,
  • if all connections failed, it raises the exception raised by the try on first address, which is either a Failure or a Unix.Unix_error
  • if the authentication failed, a OBus_auth.Auth_error is raised
OCaml

Innovation. Community. Security.