Message subscription and delivery point. More...
#include <address.hpp>
Public Member Functions | |
address_t (const address_t &)=delete | |
address_t (address_t &&)=delete | |
bool | operator== (const address_t &other) const noexcept |
returns true if two addresses are the same, i.e. are located in the same memory region | |
bool | same_locality (const address_t &other) const noexcept |
compares locality fields of the addresses | |
Public Attributes | |
supervisor_t & | supervisor |
reference to supervisor_t , which generated the address | |
const void * | locality |
runtime label, describing some execution group | |
Friends | |
struct | supervisor_t |
Message subscription and delivery point.
Address is an abstraction of "point of service", i.e. any actor can send an message to an address, and any actor can subscribe on any address to handle certain kind of messages.
An actor has "main" address, and in addition it may have "virtual" private addresses to perform routing messages for the specific methods.
Addresses are produced by supervisor_t
, which also is responsible for initial delivery of messages on the address. Address lifetime should be no longer then corresponding supervisor lifetime.
Addresses are non-copyable and non-moveable. The constructor is private and it is intended to be created by supervisor only.