libcaf  0.13.2
Public Member Functions | Protected Member Functions | Related Functions | List of all members
caf::abstract_actor Class Reference

Base class for all actor implementations. More...

#include <abstract_actor.hpp>

Inheritance diagram for caf::abstract_actor:
caf::abstract_channel caf::ref_counted caf::memory_managed caf::actor_pool caf::actor_proxy caf::local_actor caf::forwarding_actor_proxy caf::actor_companion caf::blocking_actor caf::event_based_actor caf::io::broker caf::typed_event_based_actor< Sigs > caf::io::basp_broker

Public Member Functions

void attach (attachable_ptr ptr)
 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.
 
size_t detach (const attachable::token &what)
 Detaches the first attached object that matches what.
 
void link_to (const actor_addr &whom)
 Links this actor to whom.
 
template<class ActorHandle >
void link_to (const ActorHandle &whom)
 Links this actor to whom.
 
void unlink_from (const actor_addr &other)
 Unlinks this actor from whom.
 
template<class ActorHandle >
void unlink_from (const ActorHandle &other)
 Unlinks this actor from whom.
 
bool establish_backlink (const actor_addr &other)
 Establishes a link relation between this actor and other and returns whether the operation succeeded. More...
 
bool remove_backlink (const actor_addr &other)
 Removes the link relation between this actor and other and returns whether the operation succeeded. More...
 
uint32_t id () const
 Returns the unique ID of this actor.
 
uint32_t exit_reason () const
 Returns the actor's exit reason or exit_reason::not_exited if it's still alive. More...
 
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...
 
execution_unithost () const
 Returns the execution unit currently used by this actor. More...
 
void host (execution_unit *new_host)
 Sets the execution unit for this actor.
 
- Public Member Functions inherited from caf::abstract_channel
virtual void enqueue (const actor_addr &sender, message_id mid, message content, execution_unit *host)=0
 Enqueues a new message to the channel.
 
virtual void enqueue (mailbox_element_ptr what, execution_unit *host)
 Enqueues a new message wrapped in a mailbox_element to the channel. More...
 
node_id node () const
 Returns the ID of the node this actor is running on.
 
bool is_remote () const
 Returns true if node_ptr returns.
 
bool is_abstract_actor () const
 
bool is_abstract_group () const
 
- Public Member Functions inherited from caf::ref_counted
 ref_counted (const ref_counted &)
 
ref_countedoperator= (const ref_counted &)
 
void ref () noexcept
 Increases reference count by one.
 
void deref () noexcept
 Decreases reference count by one and calls request_deletion when it drops to zero. More...
 
bool unique () const noexcept
 Queries whether there is exactly one reference.
 
size_t get_reference_count () const noexcept
 
- Public Member Functions inherited from caf::memory_managed
virtual void request_deletion (bool decremented_rc) noexcept
 Default implementations calls `delete this, but can be overriden in case deletion depends on some condition or the class doesn't use default new/delete. More...
 

Protected Member Functions

 abstract_actor ()
 Creates a non-proxy instance.
 
 abstract_actor (actor_id aid, node_id nid)
 Creates a proxy instance for a proxy running on nid.
 
void cleanup (uint32_t reason)
 Called by the runtime system to perform cleanup actions for this actor. More...
 
bool exited () const
 Returns exit_reason() != exit_reason::not_exited.
 
- Protected Member Functions inherited from caf::abstract_channel
int flags () const
 
void flags (int new_value)
 

Related Functions

(Note that these are not member functions.)

using actor_id = uint32_t
 A unique actor ID.
 

Additional Inherited Members

- Static Public Attributes inherited from caf::abstract_channel
static constexpr int is_abstract_actor_flag = 0x100000
 
static constexpr int is_abstract_group_flag = 0x200000
 
- Protected Attributes inherited from caf::ref_counted
std::atomic< size_t > rc_
 

Detailed Description

Base class for all actor implementations.

Member Function Documentation

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

Attaches ptr to this actor.

The actor will call ptr->detach(...) on exit, or immediately if it already finished execution.

template<class F >
void caf::abstract_actor::attach_functor ( f)

Convenience function that attaches the functor f to this actor.

The actor executes f() on exit or immediatley if it is not running.

void caf::abstract_actor::cleanup ( uint32_t  reason)
protected

Called by the runtime system to perform cleanup actions for this actor.

Subtypes should always call this member function when overriding it.

bool caf::abstract_actor::establish_backlink ( const actor_addr other)

Establishes a link relation between this actor and other and returns whether the operation succeeded.

uint32_t caf::abstract_actor::exit_reason ( ) const

Returns the actor's exit reason or exit_reason::not_exited if it's still alive.

execution_unit* caf::abstract_actor::host ( ) const

Returns the execution unit currently used by this actor.

Warning
not thread safe
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::typed_event_based_actor< Sigs >.

bool caf::abstract_actor::remove_backlink ( const actor_addr other)

Removes the link relation between this actor and other and returns whether the operation succeeded.


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