Loading...
Searching...
No Matches
caf::abstract_actor Class Referenceabstract

Base class for all actor implementations. More...

`#include <abstract_actor.hpp>`

Inheritance diagram for caf::abstract_actor:

## 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.
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.
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
| 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).
Public Member Functions inherited from caf::abstract_channel
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.
Protected Member Functions inherited from caf::abstract_channel
int | flags () const
void | flags (int new_value)

## Protected Attributes

std::mutex | mtx_

## Related Symbols

(Note that these are not member symbols.)
using | actor_id = uint64_t
| A unique actor ID.

## Additional Inherited Members

Static Public Attributes inherited from caf::abstract_channel
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

## Detailed Description

Base class for all actor implementations.

## Member Function Documentation

## attach()

virtual void caf::abstract_actor::attach | ( | attachable_ptr | ptr | ) |

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.

## attach_functor()

template<class F>

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.

## detach()

virtual size_t caf::abstract_actor::detach | ( | const attachable::token & | what | ) |

pure virtual

Detaches the first attached object that matches what.

Implemented in caf::monitorable_actor.

## enqueue() [1/2]

virtual void caf::abstract_actor::enqueue | ( | mailbox_element_ptr | what,
|  | execution_unit * | host )

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, caf::decorator::sequencer, caf::decorator::splitter, and caf::forwarding_actor_proxy.

## enqueue() [2/2]

void caf::abstract_actor::enqueue | ( | strong_actor_ptr | sender,
|  | message_id | mid,
|  | message | content,
|  | execution_unit * | host )

override virtual

Enqueues a new message without forwarding stack to the channel.

Implements caf::abstract_channel.

## message_types()

virtual std::set< std::string > caf::abstract_actor::message_types | ( |  | ) | const

virtual

Returns the set of accepted messages types as strings or an empty set if this actor is untyped.

Reimplemented in caf::decorator::sequencer, and caf::decorator::splitter.

## on_destroy()

virtual void caf::abstract_actor::on_destroy | ( |  | ) |

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.

Reimplemented in caf::actor_pool.

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

- /build/actor-framework-Z9pIPl/actor-framework-0.17.6/libcaf_core/caf/abstract_actor.hpp