Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::ReferenceCounterImpl Class Reference

Thread-safe implementation of a reference counter. More...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/base/arccore/base/ReferenceCounterImpl.h>

Inheritance diagram for Arcane::ReferenceCounterImpl:
Collaboration diagram for Arcane::ReferenceCounterImpl:

Public Member Functions

void addReference ()
void removeReference ()
void _internalAddReference ()
bool _internalRemoveReference ()

Private Member Functions

void _setExternalDeleter (RefBase::DeleterBase *v)
RefBase::DeleterBase_externalDeleter () const
bool _destroyThisReference ()
 Returns true if the instance must be destroyed by calling operator delete().

Private Attributes

std::atomic< Int32m_nb_ref = 0
RefBase::DeleterBasem_external_deleter = nullptr

Friends

template<typename InstanceType>
class impl::ReferenceCounterWrapper

Detailed Description

Thread-safe implementation of a reference counter.

The implementation uses a std::atomic to maintain the number of references.

The removeReference() method destroys the instance when this counter of references reaches 0.

This class is internal to Arcane.

Definition at line 94 of file ReferenceCounterImpl.h.

Member Function Documentation

◆ _destroyThisReference()

bool Arcane::ReferenceCounterImpl::_destroyThisReference ( )
inlineprivate

Returns true if the instance must be destroyed by calling operator delete().

Definition at line 161 of file ReferenceCounterImpl.h.

◆ _externalDeleter()

RefBase::DeleterBase * Arcane::ReferenceCounterImpl::_externalDeleter ( ) const
inlineprivate

Definition at line 148 of file ReferenceCounterImpl.h.

◆ _internalAddReference()

void Arcane::ReferenceCounterImpl::_internalAddReference ( )
inline

Definition at line 125 of file ReferenceCounterImpl.h.

◆ _internalRemoveReference()

bool Arcane::ReferenceCounterImpl::_internalRemoveReference ( )
inline

Definition at line 129 of file ReferenceCounterImpl.h.

◆ _setExternalDeleter()

void Arcane::ReferenceCounterImpl::_setExternalDeleter ( RefBase::DeleterBase * v)
inlineprivate

Definition at line 143 of file ReferenceCounterImpl.h.

◆ addReference()

void Arcane::ReferenceCounterImpl::addReference ( )
inline

Definition at line 105 of file ReferenceCounterImpl.h.

◆ removeReference()

void Arcane::ReferenceCounterImpl::removeReference ( )
inline

Definition at line 111 of file ReferenceCounterImpl.h.

◆ impl::ReferenceCounterWrapper

template<typename InstanceType>
friend class impl::ReferenceCounterWrapper
friend

Definition at line 96 of file ReferenceCounterImpl.h.

Member Data Documentation

◆ m_external_deleter

RefBase::DeleterBase* Arcane::ReferenceCounterImpl::m_external_deleter = nullptr
private

Definition at line 156 of file ReferenceCounterImpl.h.

◆ m_nb_ref

std::atomic<Int32> Arcane::ReferenceCounterImpl::m_nb_ref = 0
private

Definition at line 155 of file ReferenceCounterImpl.h.


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