CAF 0.17.6
|
Base class for all actor implementations. More...
#include <monitorable_actor.hpp>
Public Member Functions | |
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 . | |
![]() | |
void * | operator new (std::size_t, void *ptr) |
actor_control_block * | ctrl () const |
virtual void | on_destroy () |
Cleans up any remaining state before the destructor is called. | |
void | 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 void | enqueue (mailbox_element_ptr what, execution_unit *host)=0 |
Enqueues a new message wrapped in a mailbox_element to the actor. | |
template<class F > | |
void | attach_functor (F f) |
Convenience function that attaches the functor f to this actor. | |
actor_addr | address () const |
Returns the logical actor address. | |
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). | |
![]() | |
bool | is_abstract_actor () const |
bool | is_abstract_group () const |
bool | is_actor_decorator () const |
Protected Member Functions | |
virtual void | on_cleanup (const error &reason) |
Allows subclasses to add additional cleanup code to the critical secion 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) | |
Creates a new actor instance. | |
![]() | |
int | flags () const |
void | flags (int new_value) |
Protected Attributes | |
error | fail_state_ |
std::condition_variable | cv_ |
attachable_ptr | attachables_head_ |
![]() | |
std::mutex | mtx_ |
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 |
![]() | |
using | actor_id = uint64_t |
A unique actor ID. | |
Base class for all actor implementations.
|
overridevirtual |
Attaches ptr
to this actor.
The actor will call ptr->detach(...)
on exit, or immediately if it already finished execution.
Implements caf::abstract_actor.
|
overridevirtual |
Detaches the first attached object that matches what
.
Implements caf::abstract_actor.
Returns an implementation-dependent name for logging purposes, which is only valid as long as the actor is running.
The default implementation simply returns "actor".
Allows subclasses to add additional cleanup code to the critical secion in cleanup
.
This member function is called inside of a critical section.
Reimplemented in caf::actor_pool, and caf::decorator::sequencer.