C++ Actor Framework 0.19
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
caf::abstract_group Class Referenceabstract

A multicast group. More...

#include <abstract_group.hpp>

Inheritance diagram for caf::abstract_group:
caf::ref_counted caf::abstract_channel caf::detail::atomic_ref_counted caf::detail::local_group_module::impl caf::detail::group_tunnel

Public Member Functions

virtual bool subscribe (strong_actor_ptr who)=0
 Subscribes who to this group and returns true on success or false if who is already subscribed.
 
virtual void unsubscribe (const actor_control_block *who)=0
 Unsubscribes who from this group.
 
virtual void stop ()=0
 Stops any background actors or threads and IO handles.
 
actor_systemsystem () const noexcept
 Returns the hosting system.
 
group_modulemodule () const noexcept
 Returns the parent module.
 
node_id origin () const noexcept
 Returns the origin node of the group if applicable.
 
const std::string & identifier () const
 Returns a string representation of the group identifier, e.g., "224.0.0.1" for IPv4 multicast or a user-defined string for local groups.
 
virtual std::string stringify () const
 Returns a human-readable string representation of the group ID.
 
virtual actor intermediary () const noexcept
 Returns the intermediary actor for the group if applicable.
 
- Public Member Functions inherited from caf::detail::atomic_ref_counted
 atomic_ref_counted (const atomic_ref_counted &)
 
atomic_ref_countedoperator= (const atomic_ref_counted &)
 
void ref () const noexcept
 Increases reference count by one.
 
void deref () const noexcept
 Decreases reference count by one and calls request_deletion when it drops to zero.
 
bool unique () const noexcept
 Queries whether there is exactly one reference.
 
size_t get_reference_count () const noexcept
 Queries the current reference count for this object.
 
- Public Member Functions inherited from caf::abstract_channel
virtual bool enqueue (strong_actor_ptr sender, message_id mid, message content, execution_unit *host=nullptr)=0
 Enqueues a new message without forwarding stack to the channel.
 
bool is_abstract_actor () const
 
bool is_abstract_group () const
 
bool is_actor_decorator () const
 

Protected Member Functions

 abstract_group (group_module_ptr mod, std::string id, node_id nid)
 
- Protected Member Functions inherited from caf::abstract_channel
int flags () const
 
void flags (int new_value)
 

Protected Attributes

group_module_ptr parent_
 
node_id origin_
 
std::string identifier_
 
- Protected Attributes inherited from caf::detail::atomic_ref_counted
std::atomic< size_t > rc_
 

Friends

class local_actor
 
class subscription
 
class detail::group_manager
 

Additional Inherited Members

- Public Types inherited from caf::ref_counted
using super = detail::atomic_ref_counted
 
- 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

A multicast group.

Member Function Documentation

◆ intermediary()

actor caf::abstract_group::intermediary ( ) const
virtualnoexcept

Returns the intermediary actor for the group if applicable.

Reimplemented in caf::detail::local_group_module::impl.

◆ stop()

virtual void caf::abstract_group::stop ( )
pure virtual

Stops any background actors or threads and IO handles.

Implemented in caf::detail::group_tunnel, and caf::detail::local_group_module::impl.

◆ stringify()

std::string caf::abstract_group::stringify ( ) const
virtual

Returns a human-readable string representation of the group ID.

Reimplemented in caf::detail::group_tunnel.

◆ subscribe()

virtual bool caf::abstract_group::subscribe ( strong_actor_ptr  who)
pure virtual

Subscribes who to this group and returns true on success or false if who is already subscribed.

Implemented in caf::detail::group_tunnel, and caf::detail::local_group_module::impl.

◆ unsubscribe()

virtual void caf::abstract_group::unsubscribe ( const actor_control_block who)
pure virtual

Unsubscribes who from this group.

Implemented in caf::detail::group_tunnel, and caf::detail::local_group_module::impl.


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