libcaf  0.13.2
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Related Functions | List of all members
caf::actor_proxy Class Referenceabstract

Represents an actor running on a remote machine, or different hardware, or in a separate process. More...

#include <actor_proxy.hpp>

Inheritance diagram for caf::actor_proxy:
caf::abstract_actor caf::abstract_channel caf::ref_counted caf::memory_managed caf::forwarding_actor_proxy

Classes

class  anchor
 An anchor points to a proxy instance without sharing ownership to it, i.e., models a weak ptr. More...
 

Public Types

using anchor_ptr = intrusive_ptr< anchor >
 

Public Member Functions

virtual void local_link_to (const actor_addr &other)=0
 Establishes a local link state that's not synchronized back to the remote instance. More...
 
virtual void local_unlink_from (const actor_addr &other)=0
 Removes a local link state.
 
virtual void kill_proxy (uint32_t reason)=0
 Invokes cleanup code.
 
void request_deletion (bool decremented_ref_count) noexceptoverride
 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...
 
anchor_ptr get_anchor ()
 
- Public Member Functions inherited from caf::abstract_actor
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
 

Protected Member Functions

 actor_proxy (actor_id aid, node_id nid)
 
- Protected Member Functions inherited from caf::abstract_actor
 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)
 

Protected Attributes

anchor_ptr anchor_
 
- Protected Attributes inherited from caf::ref_counted
std::atomic< size_t > rc_
 

Related Functions

(Note that these are not member functions.)

using actor_proxy_ptr = intrusive_ptr< actor_proxy >
 A smart pointer to an actor_proxy instance.
 

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
 

Detailed Description

Represents an actor running on a remote machine, or different hardware, or in a separate process.

Member Function Documentation

virtual void caf::actor_proxy::local_link_to ( const actor_addr other)
pure virtual

Establishes a local link state that's not synchronized back to the remote instance.

Implemented in caf::forwarding_actor_proxy.

void caf::actor_proxy::request_deletion ( bool  decremented_rc)
overridevirtualnoexcept

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.

Parameters
decremented_rcIndicates whether the caller did reduce the reference of this object before calling this member function. This information is important when implementing a type with support for weak pointers.

Reimplemented from caf::memory_managed.


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