EPAM B2BITS MarketData C++ library  1.0.0
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Public Types | Public Member Functions | List of all members
B2bits::RefCounterPtr< T > Class Template Reference

#include <b2bits/core/ReferenceCounter.h>

Public Types

typedef RefCounterPtr this_type
 
typedef T element_type
 

Public Member Functions

 RefCounterPtr () noexcept
 
 RefCounterPtr (T *p, bool addRef=true) noexcept
 
 RefCounterPtr (const RefCounterPtr &rhs) noexcept
 
 RefCounterPtr (RefCounterPtr &&rhs) noexcept
 
RefCounterPtroperator= (RefCounterPtr &&rhs) noexcept
 
template<typename U >
 RefCounterPtr (const RefCounterPtr< U > &rhs) noexcept
 
 ~RefCounterPtr () noexcept
 
RefCounterPtroperator= (RefCounterPtr const &rhs) noexcept
 
RefCounterPtroperator= (T *rhs)
 
T & operator* () const noexcept
 
T * operator-> () const noexcept
 
void reset () noexcept
 
void reset (T *rhs) noexcept
 
void reset (T *rhs, bool addRef) noexcept
 
T * abandon () noexcept
 
T * get () const noexcept
 
void swap (RefCounterPtr &rhs) noexcept
 

Detailed Description

template<typename T>
class B2bits::RefCounterPtr< T >

Intrusive ptr for reference counting

Member Typedef Documentation

◆ element_type

template<typename T >
typedef T B2bits::RefCounterPtr< T >::element_type

◆ this_type

template<typename T >
typedef RefCounterPtr B2bits::RefCounterPtr< T >::this_type

Constructor & Destructor Documentation

◆ RefCounterPtr() [1/5]

template<typename T >
B2bits::RefCounterPtr< T >::RefCounterPtr ( )
inlinenoexcept

Default Constructor.

◆ RefCounterPtr() [2/5]

template<typename T >
B2bits::RefCounterPtr< T >::RefCounterPtr ( T *  p,
bool  addRef = true 
)
inlineexplicitnoexcept

Constructor.

◆ RefCounterPtr() [3/5]

template<typename T >
B2bits::RefCounterPtr< T >::RefCounterPtr ( const RefCounterPtr< T > &  rhs)
inlinenoexcept

Copy constuctor

◆ RefCounterPtr() [4/5]

template<typename T >
B2bits::RefCounterPtr< T >::RefCounterPtr ( RefCounterPtr< T > &&  rhs)
inlinenoexcept

Move constuctor

◆ RefCounterPtr() [5/5]

template<typename T >
template<typename U >
B2bits::RefCounterPtr< T >::RefCounterPtr ( const RefCounterPtr< U > &  rhs)
inlinenoexcept

Conversion constuctor

◆ ~RefCounterPtr()

template<typename T >
B2bits::RefCounterPtr< T >::~RefCounterPtr ( )
inlinenoexcept

Destructor

Member Function Documentation

◆ abandon()

template<typename T >
T* B2bits::RefCounterPtr< T >::abandon ( )
inlinenoexcept

Releases the ownership, returns the stored pointer.

◆ get()

template<typename T >
T* B2bits::RefCounterPtr< T >::get ( ) const
inlinenoexcept

◆ operator*()

template<typename T >
T& B2bits::RefCounterPtr< T >::operator* ( ) const
inlinenoexcept

◆ operator->()

template<typename T >
T* B2bits::RefCounterPtr< T >::operator-> ( ) const
inlinenoexcept

◆ operator=() [1/3]

template<typename T >
RefCounterPtr& B2bits::RefCounterPtr< T >::operator= ( RefCounterPtr< T > &&  rhs)
inlinenoexcept

◆ operator=() [2/3]

template<typename T >
RefCounterPtr& B2bits::RefCounterPtr< T >::operator= ( RefCounterPtr< T > const &  rhs)
inlinenoexcept

◆ operator=() [3/3]

template<typename T >
RefCounterPtr& B2bits::RefCounterPtr< T >::operator= ( T *  rhs)
inline

◆ reset() [1/3]

template<typename T >
void B2bits::RefCounterPtr< T >::reset ( )
inlinenoexcept

◆ reset() [2/3]

template<typename T >
void B2bits::RefCounterPtr< T >::reset ( T *  rhs)
inlinenoexcept

◆ reset() [3/3]

template<typename T >
void B2bits::RefCounterPtr< T >::reset ( T *  rhs,
bool  addRef 
)
inlinenoexcept

◆ swap()

template<typename T >
void B2bits::RefCounterPtr< T >::swap ( RefCounterPtr< T > &  rhs)
inlinenoexcept