Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::AutoRef2< T >

Encapsulation d'un pointeur avec compteur de référence. Plus de détails...

#include <arcane/utils/AutoRef.h>

+ Graphe de collaboration de Arcane::AutoRef2< T >:

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.
 
ThatClassoperator= (const ThatClass &from)
 Opérateur de copie.
 
ThatClassoperator= (ThatClass &&from) noexcept
 Opérateur de déplacement.
 
ThatClassoperator= (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)
 

Description détaillée

template<class T>
class Arcane::AutoRef2< T >

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.

Définition à la ligne 122 du fichier AutoRef.h.

Documentation des définitions de type membres

◆ ThatClass

template<class T >
using Arcane::AutoRef2< T >::ThatClass = AutoRef2<T>

Définition à la ligne 126 du fichier AutoRef.h.

Documentation des constructeurs et destructeur

◆ AutoRef2() [1/3]

template<class T >
Arcane::AutoRef2< T >::AutoRef2 ( T *  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().

◆ AutoRef2() [2/3]

template<class T >
Arcane::AutoRef2< T >::AutoRef2 ( const ThatClass from)
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().

◆ AutoRef2() [3/3]

template<class T >
Arcane::AutoRef2< T >::AutoRef2 ( ThatClass &&  from)
inlinenoexcept

Construit une référence référant from.

Définition à la ligne 143 du fichier AutoRef.h.

◆ ~AutoRef2()

template<class T >
Arcane::AutoRef2< T >::~AutoRef2 ( )
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().

Documentation des fonctions membres

◆ _addRef()

template<class T >
void Arcane::AutoRef2< T >::_addRef ( )
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().

◆ _changeValue()

template<class T >
void Arcane::AutoRef2< T >::_changeValue ( T *  new_value)
inlineprivate

◆ _removeRef()

template<class T >
void Arcane::AutoRef2< T >::_removeRef ( )
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().

◆ get()

template<class T >
T * Arcane::AutoRef2< T >::get ( ) const
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.

◆ isNull()

template<class T >
bool Arcane::AutoRef2< T >::isNull ( ) const
inline

Définition à la ligne 191 du fichier AutoRef.h.

◆ operator bool()

template<class T >
Arcane::AutoRef2< T >::operator bool ( ) const
inline

Définition à la ligne 192 du fichier AutoRef.h.

◆ operator*()

template<class T >
T & Arcane::AutoRef2< T >::operator* ( ) const
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.

◆ operator->()

template<class T >
T * Arcane::AutoRef2< T >::operator-> ( ) const
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.

◆ operator=() [1/3]

template<class T >
ThatClass & Arcane::AutoRef2< T >::operator= ( const ThatClass from)
inline

Opérateur de copie.

Définition à la ligne 150 du fichier AutoRef.h.

Références Arcane::AutoRef2< T >::_changeValue().

◆ operator=() [2/3]

template<class T >
ThatClass & Arcane::AutoRef2< T >::operator= ( T *  new_value)
inline

Affecte à l'instance la value new_value.

Définition à la ligne 165 du fichier AutoRef.h.

Références Arcane::AutoRef2< T >::_changeValue().

◆ operator=() [3/3]

template<class T >
ThatClass & Arcane::AutoRef2< T >::operator= ( ThatClass &&  from)
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.

Documentation des fonctions amies et associées

◆ operator!=

template<class T >
bool operator!= ( const ThatClass a,
const ThatClass b 
)
friend

Définition à la ligne 198 du fichier AutoRef.h.

◆ operator==

template<class T >
bool operator== ( const ThatClass a,
const ThatClass b 
)
friend

Définition à la ligne 194 du fichier AutoRef.h.

Documentation des données membres

◆ m_value


La documentation de cette classe a été générée à partir du fichier suivant :