libcaf
0.15.5
|
Base class for all actor implementations. More...
#include <abstract_actor.hpp>
Public Member Functions | |
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. More... | |
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. More... | |
virtual void | attach (attachable_ptr ptr)=0 |
Attaches ptr to this actor. More... | |
template<class F > | |
void | attach_functor (F f) |
Convenience function that attaches the functor f to this actor. More... | |
actor_addr | address () const |
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. More... | |
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 | |
abstract_actor (actor_config &cfg) | |
Creates a new actor instance. | |
![]() | |
int | flags () const |
void | flags (int new_value) |
Protected Attributes | |
std::mutex | mtx_ |
Related Functions | |
(Note that these are not member functions.) | |
using | actor_id = uint64_t |
A unique actor ID. | |
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 |
Base class for all actor implementations.
|
pure virtual |
Attaches ptr
to this actor.
The actor will call ptr->detach(...)
on exit, or immediately if it already finished execution.
Implemented in caf::monitorable_actor.
void caf::abstract_actor::attach_functor | ( | F | f | ) |
Convenience function that attaches the functor f
to this actor.
The actor executes f()
on exit or immediatley if it is not running.
|
pure virtual |
Enqueues a new message wrapped in a mailbox_element
to the actor.
This enqueue
variant allows to define forwarding chains.
Implemented in caf::actor_pool, and caf::forwarding_actor_proxy.
|
virtual |
Returns the set of accepted messages types as strings or an empty set if this actor is untyped.
|
virtual |
Cleans up any remaining state before the destructor is called.
This function makes sure it is safe to call virtual functions in sub classes before destroying the object, because calling virtual function in the destructor itself is not safe. Any override implementation is required to call super::destroy()
at the end.