Encapsulation d'un pointeur avec compteur de référence. Plus de détails...
#include <arcane/utils/AutoRef.h>
Types publics | |
using | ThatClass = AutoRef2< T > |
Fonctions membres publiques | |
AutoRef2 ()=default | |
Construit une instance sans référence. | |
AutoRef2 (T *t) | |
Construit une instance référant t. | |
AutoRef2 (const ThatClass &from) | |
Construit une référence référant from. | |
AutoRef2 (ThatClass &&from) noexcept | |
Construit une référence référant from. | |
ThatClass & | operator= (const ThatClass &from) |
Opérateur de copie. | |
ThatClass & | operator= (ThatClass &&from) noexcept |
Opérateur de déplacement. | |
ThatClass & | operator= (T *new_value) |
Affecte à l'instance la value new_value. | |
~AutoRef2 () | |
Destructeur. Décrément le compteur de référence de l'objet pointé | |
T * | operator-> () const |
Retourne l'objet référé par l'instance. | |
T & | operator* () const |
Retourne l'objet référé par l'instance. | |
T * | get () const |
Retourne l'objet référé par l'instance. | |
bool | isNull () const |
operator bool () const | |
Fonctions membres privées | |
void | _addRef () |
Ajoute une référence à l'objet encapsulé si non nul. | |
void | _removeRef () |
Supprimer une référence à l'objet encapsulé si non nul. | |
void | _changeValue (T *new_value) |
Change l'objet référencé en new_value. | |
Attributs privés | |
T * | m_value = nullptr |
Pointeur sur l'objet référencé | |
Amis | |
bool | operator== (const ThatClass &a, const ThatClass &b) |
bool | operator!= (const ThatClass &a, const ThatClass &b) |
Encapsulation d'un pointeur avec compteur de référence.
Cette classe renferme un pointeur d'un type qui implémente les méthodes de la classe abstraite ISharedReference (le paramètre template n'a pas besoin de dériver de cette classe) et incrémente (_addRef()) ou décrémente (_removeRef()) le compteur de référence de l'élément pointé lors des affectations succéssives. Cette classe n'effectue aucune action basée sur la valeur de compteur de référence; la destruction éventuelle de l'objet lorsque le compteur de référence arrive à zéro est gérée par l'objet lui même.
using Arcane::AutoRef2< T >::ThatClass = AutoRef2<T> |
|
inlineexplicit |
Construit une instance référant t.
Définition à la ligne 133 du fichier AutoRef.h.
Références Arcane::AutoRef2< T >::_changeValue().
|
inline |
Construit une référence référant from.
Définition à la ligne 138 du fichier AutoRef.h.
Références Arcane::AutoRef2< T >::_changeValue().
|
inlinenoexcept |
|
inline |
Destructeur. Décrément le compteur de référence de l'objet pointé
Définition à la ligne 172 du fichier AutoRef.h.
Références Arcane::AutoRef2< T >::_removeRef().
|
inlineprivate |
Ajoute une référence à l'objet encapsulé si non nul.
Définition à la ligne 206 du fichier AutoRef.h.
Références Arcane::AutoRef2< T >::m_value.
Référencé par Arcane::AutoRef2< T >::_changeValue().
|
inlineprivate |
Change l'objet référencé en new_value.
Définition à la ligne 218 du fichier AutoRef.h.
Références Arcane::AutoRef2< T >::_addRef(), Arcane::AutoRef2< T >::_removeRef(), et Arcane::AutoRef2< T >::m_value.
Référencé par Arcane::AutoRef2< T >::AutoRef2(), Arcane::AutoRef2< T >::AutoRef2(), Arcane::AutoRef2< T >::operator=(), et Arcane::AutoRef2< T >::operator=().
|
inlineprivate |
Supprimer une référence à l'objet encapsulé si non nul.
Définition à la ligne 212 du fichier AutoRef.h.
Références Arcane::AutoRef2< T >::m_value.
Référencé par Arcane::AutoRef2< T >::_changeValue(), Arcane::AutoRef2< T >::operator=(), et Arcane::AutoRef2< T >::~AutoRef2().
|
inline |
Retourne l'objet référé par l'instance.
Définition à la ligne 189 du fichier AutoRef.h.
Références Arcane::AutoRef2< T >::m_value.
|
inline |
|
inline |
|
inline |
Retourne l'objet référé par l'instance.
Définition à la ligne 182 du fichier AutoRef.h.
Références Arcane::AutoRef2< T >::m_value.
|
inline |
Retourne l'objet référé par l'instance.
Définition à la ligne 175 du fichier AutoRef.h.
Références Arcane::AutoRef2< T >::m_value.
|
inline |
Opérateur de copie.
Définition à la ligne 150 du fichier AutoRef.h.
Références Arcane::AutoRef2< T >::_changeValue().
|
inline |
Affecte à l'instance la value new_value.
Définition à la ligne 165 du fichier AutoRef.h.
Références Arcane::AutoRef2< T >::_changeValue().
|
inlinenoexcept |
Opérateur de déplacement.
Définition à la ligne 156 du fichier AutoRef.h.
Références Arcane::AutoRef2< T >::_removeRef(), et Arcane::AutoRef2< T >::m_value.
|
private |
Pointeur sur l'objet référencé
Définition à la ligne 229 du fichier AutoRef.h.
Référencé par Arcane::AutoRef2< T >::_addRef(), Arcane::AutoRef2< T >::_changeValue(), Arcane::AutoRef2< T >::_removeRef(), Arcane::AutoRef2< T >::get(), Arcane::AutoRef2< T >::operator*(), Arcane::AutoRef2< T >::operator->(), et Arcane::AutoRef2< T >::operator=().