CAF  0.17.3
Classes | Typedefs | Enumerations | Functions | Variables
caf::io::basp Namespace Reference


struct  header
 The header of a Binary Actor System Protocol (BASP) message. More...
class  instance
 Describes a protocol instance managing multiple connections. More...
class  message_queue
 Enforces strict order of message delivery, i.e., deliver messages in the same order as if they were deserialized by a single thread. More...
class  routing_table
 Stores routing information for a single broker participating as BASP peer and provides both direct and indirect paths. More...
class  worker
 Deserializes payloads for BASP messages asynchronously. More...


using buffer_type = std::vector< char >
 Storage type for raw bytes.


enum  connection_state {
 Denotes the state of a connection between to BASP nodes. More...
enum  message_type : uint8_t {
  message_type::server_handshake = 0x00,
  message_type::client_handshake = 0x01,
  message_type::direct_message = 0x02,
  message_type::routed_message = 0x03,
  message_type::monitor_message = 0x04,
  message_type::down_message = 0x05,
  message_type::heartbeat = 0x06
 Describes the first header field of a BASP message and determines the interpretation of the other header fields. More...


bool is_handshake (const header &hdr)
 Checks whether given header contains a handshake.
bool is_heartbeat (const header &hdr)
 Checks wheter given header contains a heartbeat.


constexpr size_t header_size
 Size of a BASP header in serialized form. More...
constexpr uint64_t version = 3
 The current BASP version. Note: BASP is not backwards compatible.

Detailed Description

Contains all classes and functions for the Binary Actor Sytem Protocol.

Enumeration Type Documentation

◆ connection_state

Denotes the state of a connection between to BASP nodes.


Indicates that a connection is established and this node is waiting for the next BASP header.


Indicates that this node has received a header with non-zero payload and is waiting for the data.


Indicates that this connection no longer exists.

◆ message_type

enum caf::io::basp::message_type : uint8_t

Describes the first header field of a BASP message and determines the interpretation of the other header fields.


Send from server, i.e., the node with a published actor, to client, i.e., node that initiates a new connection using remote_actor().


Send from client to server after it has successfully received the server_handshake to establish the connection.


Transmits a direct message from source to destination.


Transmits a message from source_node:source_actor to dest_node:dest_actor.


Informs the receiving node that the sending node has created a proxy instance for one of its actors.

Causes the receiving node to attach a functor to the actor that triggers a down_message on termination.


Informs the receiving node that it has a proxy for an actor that has been terminated.


Used to generate periodic traffic between two nodes in order to detect disconnects.

Variable Documentation

◆ header_size

constexpr size_t caf::io::basp::header_size
Initial value:
= sizeof(actor_id) * 2
+ sizeof(uint32_t) * 2
+ sizeof(uint64_t)

Size of a BASP header in serialized form.

uint64_t actor_id
A unique actor ID.
Definition: abstract_actor.hpp:62