CAF  0.17.2
Public Member Functions | Protected Attributes | Related Functions | List of all members
caf::ref_counted Class Reference

Base class for reference counted objects with an atomic reference count. More...

#include <ref_counted.hpp>

Inheritance diagram for caf::ref_counted:
caf::memory_managed caf::abstract_group caf::io::network::manager caf::io::network::multiplexer::runnable caf::logger caf::stream_manager caf::io::network::acceptor_manager caf::io::network::datagram_manager caf::io::network::stream_manager caf::detail::stream_distribution_tree< Policy >

Public Member Functions

 ref_counted (const ref_counted &)
ref_countedoperator= (const 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
- Public Member Functions inherited from caf::memory_managed
virtual void request_deletion (bool decremented_rc) const 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 Attributes

std::atomic< size_t > rc_

Related Functions

(Note that these are not member functions.)

void intrusive_ptr_add_ref (const ref_counted *p)
void intrusive_ptr_release (const ref_counted *p)

Detailed Description

Base class for reference counted objects with an atomic reference count.

Serves the requirements of intrusive_ptr.

All instances of ref_counted start with a reference count of 1.

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