Encapsulation d'un pointeur avec compteur de référence. Plus de détails...
#include <arcane/utils/AutoRef.h>
Types publics | |
using | BaseClass = PtrT< T > |
Type de la classe de base. | |
Fonctions membres publiques | |
AutoRefT ()=default | |
Construit une instance sans référence. | |
AutoRefT (T *t) | |
Construit une instance référant t. | |
AutoRefT (const AutoRefT< T > &from) | |
Construit une référence référant from. | |
AutoRefT< T > & | operator= (const AutoRefT< T > &from) |
Opérateur de copie. | |
AutoRefT< T > & | operator= (T *new_value) |
Affecte à l'instance la value new_value. | |
~AutoRefT () | |
Destructeur. Décrément le compteur de référence de l'objet pointé | |
Fonctions membres publiques hérités de Arcane::PtrT< T > | |
PtrT ()=default | |
Construit une instance sans référence. | |
PtrT (T *t) | |
Construit une instance référant t. | |
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 |
Attributs publics | |
T * | m_value |
Pointeur sur l'objet référencé | |
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. | |
Membres hérités additionnels | |
Fonctions membres protégées hérités de Arcane::PtrT< T > | |
PtrT< T > & | operator= (const PtrT< T > &from) |
Opérateur de copie. | |
template<typename T2 > | |
PtrT< T > & | operator= (const PtrT< T2 > &from) |
PtrT< T > & | operator= (T *new_value) |
Affecte à l'instance la value new_value. | |
PtrT (const PtrT< T > &from) | |
Construit une référence référant from. | |
template<typename T2 > | |
PtrT (const PtrT< T2 > &from) | |
Construit une référence référant from. | |
Attributs protégés hérités de Arcane::PtrT< T > | |
T * | m_value = nullptr |
Pointeur sur l'objet référencé | |
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::AutoRefT< T >::BaseClass = PtrT<T> |
|
inlineexplicit |
Construit une instance référant t.
Définition à la ligne 54 du fichier AutoRef.h.
Références Arcane::AutoRefT< T >::_changeValue().
|
inline |
Construit une référence référant from.
Définition à la ligne 60 du fichier AutoRef.h.
Références Arcane::AutoRefT< T >::_changeValue().
|
inline |
Destructeur. Décrément le compteur de référence de l'objet pointé
Définition à la ligne 81 du fichier AutoRef.h.
Références Arcane::AutoRefT< T >::_removeRef().
|
inlineprivate |
Ajoute une référence à l'objet encapsulé si non nul.
Définition à la ligne 86 du fichier AutoRef.h.
Références Arcane::AutoRefT< T >::m_value.
Référencé par Arcane::AutoRefT< T >::_changeValue().
|
inlineprivate |
Change l'objet référencé en new_value.
Définition à la ligne 98 du fichier AutoRef.h.
Références Arcane::AutoRefT< T >::_addRef(), Arcane::AutoRefT< T >::_removeRef(), et Arcane::AutoRefT< T >::m_value.
Référencé par Arcane::AutoRefT< T >::AutoRefT(), Arcane::AutoRefT< T >::AutoRefT(), Arcane::AutoRefT< T >::operator=(), et Arcane::AutoRefT< T >::operator=().
|
inlineprivate |
Supprimer une référence à l'objet encapsulé si non nul.
Définition à la ligne 92 du fichier AutoRef.h.
Références Arcane::AutoRefT< T >::m_value.
Référencé par Arcane::AutoRefT< T >::_changeValue(), et Arcane::AutoRefT< T >::~AutoRefT().
|
inline |
Opérateur de copie.
Définition à la ligne 67 du fichier AutoRef.h.
Références Arcane::AutoRefT< T >::_changeValue().
|
inline |
Affecte à l'instance la value new_value.
Définition à la ligne 74 du fichier AutoRef.h.
Références Arcane::AutoRefT< T >::_changeValue().
T* Arcane::PtrT< T >::m_value |
Pointeur sur l'objet référencé
Définition à la ligne 127 du fichier Ptr.h.
Référencé par Arcane::AutoRefT< T >::_addRef(), Arcane::AutoRefT< T >::_changeValue(), et Arcane::AutoRefT< T >::_removeRef().