Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
Arcane::SharedReference Class Referenceabstract

Implementation of a reference counter using std::atomic. More...

#include <arcane/core/SharedReference.h>

Public Member Functions

void addRef () override
 Increments the reference counter.
void removeRef () override
 Decrements the reference counter.
Int32 refCount () const override
 Returns the value of the reference counter.
virtual void deleteMe ()=0
 Destroys the referenced object.
Public Member Functions inherited from Arcane::ISharedReference
virtual ~ISharedReference ()=default
 Releases resources.

Detailed Description

Implementation of a reference counter using std::atomic.

Definition at line 34 of file SharedReference.h.

Constructor & Destructor Documentation

◆ SharedReference()

Arcane::SharedReference::SharedReference ( )
inline

Definition at line 39 of file SharedReference.h.

Member Function Documentation

◆ addRef()

void Arcane::SharedReference::addRef ( )
overridevirtual

Increments the reference counter.

Implements Arcane::ISharedReference.

Definition at line 27 of file SharedReference.cc.

Referenced by Arcane::ItemPairGroupImpl::addRef().

◆ deleteMe()

virtual void Arcane::SharedReference::deleteMe ( )
pure virtual

Destroys the referenced object.

Implemented in Arcane::PropertiesImpl.

Referenced by removeRef().

◆ refCount()

Int32 Arcane::SharedReference::refCount ( ) const
inlineoverridevirtual

Returns the value of the reference counter.

Implements Arcane::ISharedReference.

Definition at line 47 of file SharedReference.h.

Referenced by Arcane::ItemGroupImpl::nbRef(), and Arcane::ItemPairGroupImpl::nbRef().

◆ removeRef()

void Arcane::SharedReference::removeRef ( )
overridevirtual

Decrements the reference counter.

Implements Arcane::ISharedReference.

Definition at line 36 of file SharedReference.cc.

References Arcane::arcaneNoReferenceErrorCallTerminate(), and deleteMe().

Referenced by Arcane::ItemPairGroupImpl::removeRef().


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