Référence à une instance. Plus de détails...
Graphe d'héritage de Arccore::Ref< InstanceType >:
Graphe de collaboration de Arccore::Ref< InstanceType >:Fonctions membres publiques | |
| template<typename T> | |
| 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 | |
| ThatClass & | operator= (const ThatClass &rhs)=default |
Fonctions membres publiques hérités de Arcane::RefImpl< InstanceType, Ref< InstanceType >, RefTraits< InstanceType >::TagId > | |
| RefImpl (const Ref< T > &rhs) noexcept | |
| Construit une référence issue d'une autre référence sur un type compatible. | |
| RefImpl (const ThatClass &rhs)=default | |
| ThatClass & | operator= (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. | |
| InstanceType * | _release () |
| Libère le pointeur du compteur de référence sans le détruire. Cela n'est autorisé que si l'implémentation utiliser 'std::shared_ptr'. | |
| const ImplType & | _internalInstance () const |
| RefImpl (const Ref< T > &rhs) noexcept | |
| Construit une référence issue d'une autre référence sur un type compatible. | |
| RefImpl (const ThatClass &rhs)=default | |
| ThatClass & | operator= (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. | |
| InstanceType * | _release () |
| Libère le pointeur du compteur de référence sans le détruire. Cela n'est autorisé que si l'implémentation utiliser 'std::shared_ptr'. | |
| const ImplType & | _internalInstance () const |
Fonctions membres publiques statiques | |
| static ThatClass | create (InstanceType *t) |
| Créé une référence à partir de l'instance t. | |
| template<typename PointerType, typename... Args> | |
| static Ref< InstanceType > | createRef (Args &&... args) |
| static ThatClass | createWithHandle (InstanceType *t, Internal::ExternalRef handle) |
| Créé une référence à partir d'une instance ayant une référence externe. | |
| static ThatClass | _createNoDestroy (InstanceType *t) |
Types privés | |
| using | Base = RefImpl<InstanceType, Ref<InstanceType>, RefTraits<InstanceType>::TagId> |
| using | ImplType = Base::ImplType |
| using | ThatClass = Ref<InstanceType> |
| template<typename... _Args> | |
| using | _IsRefConstructible = typename std::enable_if<std::is_constructible<ImplType, _Args...>::value>::type |
Fonctions membres privées | |
| Ref (InstanceType *t) | |
| Ref (InstanceType *t, Internal::ExternalRef handle) | |
| Ref (InstanceType *t, bool no_destroy) | |
Fonctions membres privées statiques | |
| static void | _destroyInstance (InstanceType *t) |
Attributs privés | |
| friend | Base |
Membres hérités additionnels | |
Types publics hérités de Arcane::RefImpl< InstanceType, Ref< InstanceType >, RefTraits< InstanceType >::TagId > | |
| using | ThatClass |
| using | ImplType |
Attributs publics statiques hérités de Arcane::RefImpl< InstanceType, Ref< InstanceType >, RefTraits< InstanceType >::TagId > | |
| static constexpr int | RefType |
| static constexpr int | RefType |
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 en spécialisant le type RefTraits pour qu'il définisse un un type ReferenceCounterTagType valant ReferenceCounterTag.
Définition à la ligne 318 du fichier arccore/src/base/arccore/base/Ref.h.
|
private |
Définition à la ligne 327 du fichier arccore/src/base/arccore/base/Ref.h.
|
private |
Définition à la ligne 321 du fichier arccore/src/base/arccore/base/Ref.h.
|
private |
Définition à la ligne 322 du fichier arccore/src/base/arccore/base/Ref.h.
|
private |
Définition à la ligne 323 du fichier arccore/src/base/arccore/base/Ref.h.
|
inlineexplicitprivate |
Définition à la ligne 331 du fichier arccore/src/base/arccore/base/Ref.h.
|
inlineprivate |
Définition à la ligne 334 du fichier arccore/src/base/arccore/base/Ref.h.
|
inlineprivate |
Définition à la ligne 337 du fichier arccore/src/base/arccore/base/Ref.h.
|
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 350 du fichier arccore/src/base/arccore/base/Ref.h.
|
inlinestatic |
Définition à la ligne 392 du fichier arccore/src/base/arccore/base/Ref.h.
|
inlinestaticprivate |
Définition à la ligne 399 du fichier arccore/src/base/arccore/base/Ref.h.
|
inlinestatic |
Créé une référence à partir de l'instance t.
Cette méthode est interne à Arccore.
L'instance t doit avoir été créée par l'opérateur 'operator new' et sera détruite par l'opérateur 'operator delete'
Définition à la ligne 369 du fichier arccore/src/base/arccore/base/Ref.h.
|
inlinestatic |
Définition à la ligne 376 du fichier arccore/src/base/arccore/base/Ref.h.
|
inlinestatic |
Créé une référence à partir d'une instance ayant une référence externe.
Définition à la ligne 387 du fichier arccore/src/base/arccore/base/Ref.h.
|
private |
Définition à la ligne 324 du fichier arccore/src/base/arccore/base/Ref.h.