rotor
Event loop friendly C++ actor micro-framework
Loading...
Searching...
No Matches
rotor::address_mapping_t Struct Reference

NAT mechanism for rotor More...

#include <address_mapping.h>

Public Member Functions

void set (actor_base_t &actor, const subscription_info_ptr_t &info) noexcept
 associates temporal destination point with actor's message type
address_ptr_t get_mapped_address (actor_base_t &actor, const void *) noexcept
 returns temporal destination address for the actor/message type
template<typename Fn>
void each_subscription (const actor_base_t &actor, Fn &&fn) const noexcept
 iterates on all subscriptions for an actor
bool has_subscriptions (const actor_base_t &actor) const noexcept
 checks whether an actor has any subscriptions
bool empty () const noexcept
 returns true if there is no any subscription for any actor
void remove (const subscription_point_t &point) noexcept
 forgets subscription point

Detailed Description

NAT mechanism for rotor

It plays the similar role as https://en.wikipedia.org/wiki/Network_address_translation in routers, i.e. the original message (request) is dispatched from different address then source actor. It's needed for supervising it.

The address_mapping_t does not hold the original reply address. That kind of mapping is done on per-request basis. The address_mapping_t performs only per-message-type mapping.

Member Function Documentation

◆ set()

void rotor::address_mapping_t::set ( actor_base_t & actor,
const subscription_info_ptr_t & info )
noexcept

associates temporal destination point with actor's message type

An actor is able to process message type identified by message. So, the temporal subscription point (handler and temporal address) will be associated with the actor/message type pair.

In the routing the temporal destination address is usually some supervisor's address.


The documentation for this struct was generated from the following file: