C++ Actor Framework 0.19
|
Implements a simple proxy forwarding all operations to a manager. More...
#include <forwarding_actor_proxy.hpp>
Public Types | |
using | forwarding_stack = std::vector< strong_actor_ptr > |
Public Member Functions | |
forwarding_actor_proxy (actor_config &cfg, actor dest) | |
bool | enqueue (mailbox_element_ptr what, execution_unit *context) override |
Enqueues a new message wrapped in a mailbox_element to the actor. | |
bool | add_backlink (abstract_actor *x) override |
bool | remove_backlink (abstract_actor *x) override |
void | kill_proxy (execution_unit *ctx, error rsn) override |
Invokes cleanup code. | |
![]() | |
actor_proxy (actor_config &cfg) | |
virtual void | kill_proxy (execution_unit *ctx, error reason)=0 |
Invokes cleanup code. | |
void | setup_metrics () |
![]() | |
virtual const char * | name () const |
Returns an implementation-dependent name for logging purposes, which is only valid as long as the actor is running. | |
void | attach (attachable_ptr ptr) override |
Attaches ptr to this actor. | |
size_t | detach (const attachable::token &what) override |
Detaches the first attached object that matches what . | |
void | link_to (const actor_addr &x) |
Links this actor to x . | |
template<class ActorHandle > | |
void | link_to (const ActorHandle &x) |
Links this actor to x . | |
void | unlink_from (const actor_addr &x) |
Unlinks this actor from x . | |
template<class ActorHandle > | |
void | unlink_from (const ActorHandle &x) |
Links this actor to x . | |
![]() | |
actor_control_block * | ctrl () const |
abstract_actor (const abstract_actor &)=delete | |
abstract_actor & | operator= (const abstract_actor &)=delete |
virtual void | on_destroy () |
Cleans up any remaining state before the destructor is called. | |
bool | enqueue (strong_actor_ptr sender, message_id mid, message msg, execution_unit *host) override |
Enqueues a new message without forwarding stack to the channel. | |
virtual bool | enqueue (mailbox_element_ptr what, execution_unit *host)=0 |
Enqueues a new message wrapped in a mailbox_element to the actor. | |
virtual void | attach (attachable_ptr ptr)=0 |
Attaches ptr to this actor. | |
template<class F > | |
void | attach_functor (F f) |
Convenience function that attaches the functor f to this actor. | |
actor_addr | address () const noexcept |
Returns the logical actor address. | |
virtual size_t | detach (const attachable::token &what)=0 |
Detaches the first attached object that matches what . | |
virtual std::set< std::string > | message_types () const |
Returns the set of accepted messages types as strings or an empty set if this actor is untyped. | |
actor_id | id () const noexcept |
Returns the ID of this actor. | |
node_id | node () const noexcept |
Returns the node this actor is living on. | |
actor_system & | home_system () const noexcept |
Returns the system that created this actor (or proxy). | |
![]() | |
virtual bool | enqueue (strong_actor_ptr sender, message_id mid, message content, execution_unit *host=nullptr)=0 |
Enqueues a new message without forwarding stack to the channel. | |
bool | is_abstract_actor () const |
bool | is_abstract_group () const |
bool | is_actor_decorator () const |
Additional Inherited Members | |
![]() | |
static constexpr int | is_abstract_actor_flag = 0x01000000 |
static constexpr int | is_abstract_group_flag = 0x02000000 |
static constexpr int | is_actor_bind_decorator_flag = 0x04000000 |
static constexpr int | is_actor_dot_decorator_flag = 0x08000000 |
static constexpr int | is_actor_decorator_mask = 0x0C000000 |
static constexpr int | is_hidden_flag = 0x10000000 |
![]() | |
virtual void | on_cleanup (const error &reason) |
Allows subclasses to add additional cleanup code to the critical section in cleanup . | |
void | bounce (mailbox_element_ptr &what) |
Sends a response message if what is a request. | |
void | bounce (mailbox_element_ptr &what, const error &err) |
Sends a response message if what is a request. | |
monitorable_actor (actor_config &cfg) | |
Creates a new actor instance. | |
void | attach_impl (attachable_ptr &ptr) |
size_t | detach_impl (const attachable::token &what, bool stop_on_hit=false, bool dry_run=false) |
bool | handle_system_message (mailbox_element &x, execution_unit *ctx, bool trap_exit) |
template<class F > | |
bool | handle_system_message (mailbox_element &x, execution_unit *context, bool trap_exit, F &down_msg_handler) |
![]() | |
abstract_actor (actor_config &cfg) | |
![]() | |
int | flags () const |
void | flags (int new_value) |
![]() | |
error | fail_state_ |
std::condition_variable | cv_ |
attachable_ptr | attachables_head_ |
![]() | |
std::mutex | mtx_ |
![]() | |
using | actor_id = uint64_t |
A unique actor ID. | |
Implements a simple proxy forwarding all operations to a manager.
|
overridevirtual |
Enqueues a new message wrapped in a mailbox_element
to the actor.
This enqueue
variant allows to define forwarding chains.
true
if the message has added to the mailbox, false
otherwise. In the latter case, the actor terminated and the message has been dropped. Once this function returns false
, it returns false
for all future invocations. true
. In particular when dealing with remote actors. Implements caf::abstract_actor.
|
overridevirtual |
Invokes cleanup code.
Implements caf::actor_proxy.