OpenVPN 3 Core Library
Loading...
Searching...
No Matches
rc.hpp File Reference
#include <atomic>
#include <utility>
#include <openvpn/common/olong.hpp>
Include dependency graph for rc.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openvpn::RCPtr< T >
 The smart pointer class. More...
 
class  openvpn::RCWeakPtr< T >
 implements a weak pointer for reference counted objects. More...
 
class  openvpn::thread_unsafe_refcount
 implements a simple reference count for objects. More...
 
class  openvpn::thread_safe_refcount
 Implements a memory fenced ref count. More...
 
class  openvpn::RC< RCImpl >
 Reference count base class for objects tracked by RCPtr. Disallows copying and assignment. More...
 
class  openvpn::RCCopyable< RCImpl >
 Reference count base class for objects tracked by RCPtr. Allows copying and assignment. More...
 
class  openvpn::RCWeak< RCImpl >
 Reference count base class for objects tracked by RCPtr. Like RC, but also allows weak pointers and release notification callables. More...
 
struct  openvpn::RCWeak< RCImpl >::Controller
 Controller structure for our ptr/weakptr implementation. More...
 
struct  openvpn::RCWeak< RCImpl >::ControllerRef
 Adapter object for RCWeak::Controller <—> RCPtr. More...
 

Namespaces

namespace  openvpn
 

Functions

template<typename R >
void openvpn::intrusive_ptr_add_ref (R *rcptr) noexcept
 Helper to increment a ref count.
 
template<typename R >
void openvpn::intrusive_ptr_release (R *rcptr) noexcept
 Helper to decrement a ref count.