Arcane  v3.15.3.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arccore::Ref< InstanceType, ImplTagId >

Référence à une instance. Plus de détails...

+ Graphe d'héritage de Arccore::Ref< InstanceType, ImplTagId >:
+ Graphe de collaboration de Arccore::Ref< InstanceType, ImplTagId >:

Types publics

typedef Ref< InstanceType, ImplTagIdThatClass
 
typedef RefTraitsTagId< InstanceType, ImplTagId >::ImplType ImplType
 

Fonctions membres publiques

template<typename T , typename = _IsRefConstructible<typename Ref<T>::ImplType>>
 Ref (const Ref< T > &rhs) noexcept
 Construit une référence issue d'une autre référence sur un type compatible.
 
 Ref (const ThatClass &rhs)=default
 
ThatClassoperator= (const ThatClass &rhs)=default
 
 operator bool () const
 
InstanceType * get () const
 Instance associée ou nullptr si aucune.
 
bool isNull () const
 Indique si le compteur référence une instance non nulle.
 
InstanceType * operator-> () const
 
void reset ()
 Positionne l'instance au pointeur nul.
 
template<typename T = ThatClass, typename std::enable_if_t< T::RefType==REF_TAG_SHARED_PTR, bool > = true>
InstanceType * _release ()
 
const ImplType_internalInstance () const
 

Fonctions membres publiques statiques

static ThatClass create (InstanceType *t)
 
template<typename PointerType , typename... Args>
static Ref< InstanceType > createRef (Args &&... args)
 
static ThatClass createWithHandle (InstanceType *t, Internal::ExternalRef handle)
 
static ThatClass _createNoDestroy (InstanceType *t)
 

Attributs publics statiques

static constexpr int RefType = RefTraitsTagId<InstanceType, ImplTagId>::RefType
 

Amis

bool operator== (const ThatClass &a, const ThatClass &b)
 
bool operator!= (const ThatClass &a, const ThatClass &b)
 
bool operator< (const ThatClass &a, const ThatClass &b)
 
bool operator! (const ThatClass &a)
 

Description détaillée

template<typename InstanceType, int ImplTagId>
class Arccore::Ref< InstanceType, ImplTagId >

Référence à une instance.

Cette classe utilise un compteur de référence pour gérer la durée de vie d'une instance C++. Elle fonctionne de manière similaire à std::shared_ptr.

Lorsque la dernière instance de cette classe est détruite, l'instance référencée est détruite. La manière de détruire l'instance associée est spécifié lors de la création de la première référence via l'appel à une des méthodes create() ou createWithHandle().

Il existe deux implémentation possibles pour compter les références. Par défaut, on utilise 'std::shared_ptr'. Il est aussi possible d'utiliser un compteur de référence interne à la classe ce qui permet d'être compatible avec la classe ReferenceCounter et aussi de pouvoir récupérer une référence à partir de l'instance elle même. Cette deuxième implémentation est accessible si le type InstanceType définit un type ReferenceCounterTagType valant ReferenceCounterTag.

Définition à la ligne 141 du fichier arccore/src/base/arccore/base/Ref.h.

Documentation des définitions de type membres

◆ ImplType

template<typename InstanceType , int ImplTagId>
typedef RefTraitsTagId<InstanceType,ImplTagId>::ImplType Arccore::Ref< InstanceType, ImplTagId >::ImplType

Définition à la ligne 147 du fichier arccore/src/base/arccore/base/Ref.h.

◆ ThatClass

template<typename InstanceType , int ImplTagId>
typedef Ref<InstanceType, ImplTagId> Arccore::Ref< InstanceType, ImplTagId >::ThatClass

Définition à la ligne 146 du fichier arccore/src/base/arccore/base/Ref.h.

Documentation des constructeurs et destructeur

◆ Ref()

template<typename InstanceType , int ImplTagId>
template<typename T , typename = _IsRefConstructible<typename Ref<T>::ImplType>>
Arccore::Ref< InstanceType, ImplTagId >::Ref ( const Ref< T > &  rhs)
inlinenoexcept

Construit une référence issue d'une autre référence sur un type compatible.

La conversion est autorisée si on peut construire une instance de 'ImplType' à partir de celle de celle de Ref<T>::ImplType.

Définition à la ligne 219 du fichier arccore/src/base/arccore/base/Ref.h.

Documentation des fonctions membres

◆ _createNoDestroy()

template<typename InstanceType , int ImplTagId>
static ThatClass Arccore::Ref< InstanceType, ImplTagId >::_createNoDestroy ( InstanceType *  t)
inlinestatic

Définition à la ligne 261 du fichier arccore/src/base/arccore/base/Ref.h.

◆ _internalInstance()

template<typename InstanceType , int ImplTagId>
const ImplType & Arccore::Ref< InstanceType, ImplTagId >::_internalInstance ( ) const
inline

Définition à la ligne 317 du fichier arccore/src/base/arccore/base/Ref.h.

◆ _release()

template<typename InstanceType , int ImplTagId>
template<typename T = ThatClass, typename std::enable_if_t< T::RefType==REF_TAG_SHARED_PTR, bool > = true>
InstanceType * Arccore::Ref< InstanceType, ImplTagId >::_release ( )
inline

Définition à la ligne 305 du fichier arccore/src/base/arccore/base/Ref.h.

◆ create()

template<typename InstanceType , int ImplTagId>
static ThatClass Arccore::Ref< InstanceType, ImplTagId >::create ( InstanceType *  t)
inlinestatic

Définition à la ligne 238 du fichier arccore/src/base/arccore/base/Ref.h.

◆ createRef()

template<typename InstanceType , int ImplTagId>
template<typename PointerType , typename... Args>
static Ref< InstanceType > Arccore::Ref< InstanceType, ImplTagId >::createRef ( Args &&...  args)
inlinestatic

Définition à la ligne 245 du fichier arccore/src/base/arccore/base/Ref.h.

◆ createWithHandle()

template<typename InstanceType , int ImplTagId>
static ThatClass Arccore::Ref< InstanceType, ImplTagId >::createWithHandle ( InstanceType *  t,
Internal::ExternalRef< InstanceType, ImplTagId handle 
)
inlinestatic

Définition à la ligne 256 du fichier arccore/src/base/arccore/base/Ref.h.

◆ get()

template<typename InstanceType , int ImplTagId>
InstanceType * Arccore::Ref< InstanceType, ImplTagId >::get ( ) const
inline

Instance associée ou nullptr si aucune.

Définition à la ligne 293 du fichier arccore/src/base/arccore/base/Ref.h.

Références Arccore::Ref< InstanceType, ImplTagId >::get().

Référencé par Arcane::dom::DOMImplementation::_load(), Arcane::Variable::_setData(), Arcane::StandaloneAcceleratorMng::acceleratorMng(), Arcane::Variable::computeFunction(), Arcane::Accelerator::AcceleratorMng::defaultQueue(), Arcane::Accelerator::AcceleratorMng::defaultRunner(), Arcane::ItemGroup::enumerator(), Arcane::MessagePassing::filterCommonStrings(), Arcane::ItemGroupImpl::findSubGroup(), Arccore::Ref< InstanceType, ImplTagId >::get(), Arcane::Materials::IMeshMaterialMng::getReference(), Arcane::Internal::ServiceFinderBase2T< InterfaceType >::getSingleton(), Arccore::BasicSerializer::getSpan(), Arccore::BasicSerializer::getSpan(), Arccore::BasicSerializer::getSpan(), Arccore::BasicSerializer::getSpan(), Arccore::BasicSerializer::getSpan(), Arccore::BasicSerializer::getSpan(), Arccore::BasicSerializer::getSpan(), Arccore::BasicSerializer::getSpan(), Arccore::BasicSerializer::getSpan(), Arccore::BasicSerializer::getSpan(), Arccore::BasicSerializer::getSpan(), Arcane::ItemGroupImpl::hasSynchronizer(), Arcane::Accelerator::AcceleratorMng::initialize(), Arcane::Accelerator::RunQueueEvent::isNull(), Arccore::Ref< InstanceType, ImplTagId >::isNull(), Arcane::ItemPairGroup::ItemPairGroup(), Arcane::Parallel::Stat::mergeValues(), Arcane::ParallelMngDispatcher::messagePassingMng(), Arcane::ManualHdf5VariableWriter::notifyEndWrite(), Arcane::Hdf5VariableReaderHelper::open(), Arcane::Hdf5VariableReaderHelper2::open(), Arcane::operator!=(), Arcane::operator==(), Arcane::Accelerator::AsyncRunQueuePool::operator[](), Arcane::Accelerator::AsyncRunQueuePool::operator[](), Arcane::CartesianMeshImpl::patch(), Arcane::MeshReaderMng::readMesh(), Arcane::Accelerator::RunQueue::recordEvent(), Arcane::CartesianMeshImpl::recreateFromDump(), Arcane::Materials::ItemMaterialVariableArray< DataType >::serialize(), Arcane::Hdf5ReaderWriter::setMetaData(), Arcane::ItemGroupImpl::synchronizer(), Arcane::StandaloneSubDomain::traceMng(), Arcane::StandaloneAcceleratorMng::traceMng(), Arccore::TraceAccessor::traceMng(), Arcane::Materials::MeshMaterialVariable::update(), et Arcane::Accelerator::RunQueue::waitEvent().

◆ isNull()

◆ operator bool()

template<typename InstanceType , int ImplTagId>
Arccore::Ref< InstanceType, ImplTagId >::operator bool ( ) const
inline

Définition à la ligne 288 du fichier arccore/src/base/arccore/base/Ref.h.

◆ operator->()

template<typename InstanceType , int ImplTagId>
InstanceType * Arccore::Ref< InstanceType, ImplTagId >::operator-> ( ) const
inline

Définition à la ligne 296 du fichier arccore/src/base/arccore/base/Ref.h.

◆ reset()

Documentation des fonctions amies et associées

◆ operator!

template<typename InstanceType , int ImplTagId>
bool operator! ( const ThatClass a)
friend

Définition à la ligne 283 du fichier arccore/src/base/arccore/base/Ref.h.

◆ operator!=

template<typename InstanceType , int ImplTagId>
bool operator!= ( const ThatClass a,
const ThatClass b 
)
friend

Définition à la ligne 273 du fichier arccore/src/base/arccore/base/Ref.h.

◆ operator<

template<typename InstanceType , int ImplTagId>
bool operator< ( const ThatClass a,
const ThatClass b 
)
friend

Définition à la ligne 278 du fichier arccore/src/base/arccore/base/Ref.h.

◆ operator==

template<typename InstanceType , int ImplTagId>
bool operator== ( const ThatClass a,
const ThatClass b 
)
friend

Définition à la ligne 268 du fichier arccore/src/base/arccore/base/Ref.h.

Documentation des données membres

◆ RefType

template<typename InstanceType , int ImplTagId>
constexpr int Arccore::Ref< InstanceType, ImplTagId >::RefType = RefTraitsTagId<InstanceType, ImplTagId>::RefType
staticconstexpr

Définition à la ligne 190 du fichier arccore/src/base/arccore/base/Ref.h.


La documentation de cette classe a été générée à partir des fichiers suivants :