Arcane  v4.1.0.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 </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/base/arccore/base/AutoRef2.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 39 du fichier AutoRef2.h.

Documentation des définitions de type membres

◆ ThatClass

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

Définition à la ligne 43 du fichier AutoRef2.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 50 du fichier AutoRef2.h.

Références _changeValue().

+ Voici le graphe d'appel pour cette fonction :

◆ 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 55 du fichier AutoRef2.h.

Références _changeValue(), et m_value.

+ Voici le graphe d'appel pour cette fonction :

◆ 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 60 du fichier AutoRef2.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 89 du fichier AutoRef2.h.

Références _removeRef().

+ Voici le graphe d'appel pour cette fonction :

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 123 du fichier AutoRef2.h.

Références m_value.

Référencé par _changeValue().

+ Voici le graphe des appelants de cette fonction :

◆ _changeValue()

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

Change l'objet référencé en new_value.

Définition à la ligne 135 du fichier AutoRef2.h.

Références _addRef(), _removeRef(), et m_value.

Référencé par AutoRef2(), AutoRef2(), operator=(), et operator=().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ _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 129 du fichier AutoRef2.h.

Références m_value.

Référencé par _changeValue(), operator=(), et ~AutoRef2().

+ Voici le graphe des appelants de cette fonction :

◆ get()

template<class T>
T * Arcane::AutoRef2< T >::get ( ) const
inline

Retourne l'objet référé par l'instance.

Définition à la ligne 106 du fichier AutoRef2.h.

Références m_value.

◆ isNull()

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

Définition à la ligne 108 du fichier AutoRef2.h.

◆ operator bool()

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

Définition à la ligne 109 du fichier AutoRef2.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 99 du fichier AutoRef2.h.

Références 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 92 du fichier AutoRef2.h.

Références 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 67 du fichier AutoRef2.h.

Références _changeValue(), et m_value.

+ Voici le graphe d'appel pour cette fonction :

◆ 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 82 du fichier AutoRef2.h.

Références _changeValue().

+ Voici le graphe d'appel pour cette fonction :

◆ operator=() [3/3]

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

Opérateur de déplacement.

Définition à la ligne 73 du fichier AutoRef2.h.

Références _removeRef(), et m_value.

+ Voici le graphe d'appel pour cette fonction :

Documentation des fonctions amies et associées

◆ operator!=

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

Définition à la ligne 115 du fichier AutoRef2.h.

◆ operator==

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

Définition à la ligne 111 du fichier AutoRef2.h.

Documentation des données membres

◆ m_value

template<class T>
T* Arcane::AutoRef2< T >::m_value = nullptr
private

Pointeur sur l'objet référencé

Définition à la ligne 146 du fichier AutoRef2.h.

Référencé par _addRef(), _changeValue(), _removeRef(), AutoRef2(), get(), operator*(), operator->(), operator=(), et operator=().


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