Page principale   Modules   Liste des namespaces   Hiérarchie des classes   Liste des composants   Liste des fichiers   Membres des namespaces   Composants   Déclarations   Pages associées   Exemples  

Référence de la classe fenkys_utils::base_smart_ptr< T >

Classe pointeur automatique. Plus de détails...

#include <smartptr.hpp>

Graphe d'héritage de la classe fenkys_utils::base_smart_ptr< T >

fenkys_utils::nodefault_smart_ptr< T > fenkys_utils::smart_ptr< T > Liste de tous les membres

Types Publics

typedef void(* destroy_function )(T *)

Membres publics

 base_smart_ptr ()
 Constructeur par defaut.

 base_smart_ptr (T *)
 Associe un pointeur a un smart pointer.

 base_smart_ptr (base_smart_ptr< T > const &)
 Copie un smart pointer.

virtual ~base_smart_ptr ()
 Destructeur.

virtual base_smart_ptr & operator= (T *)=0
 Operateur d'affectation de pointeur.

 operator T * ()
 Convertit le smart pointer en T*.

 operator T const * () const
 Convertit le smart pointer en T const *.

T * operator-> ()
 Renvoie un pointeur sur l'objet géré.

T const * operator-> () const
 Renvoie un pointeur sur l'objet constant géré.

T & operator * ()
 Renvoie une reference sur l'objet géré.

T const & operator * () const
 Renvoie une reference sur l'objet constant géré.

T * Reaffect (T *)
 Change le pointeur sans changer le compteur.

int Ref () const
 Renvoie le nombre de reference sur l'objet.

void SetDestroyFunction (destroy_function)
 Definit la fonction de destructtion de l'objet.

void SetPersistent (bool=true)
 positionne l'etat persistant du pointeur géré


Membres protégés

void Swap (base_smart_ptr< T > &)
 Echange le contenu de l'objet courant avec celui d'un autre de meme type.


Attributs Protégés

base_smart_ptr_base< T > * Smart

Description détaillée

template<typename T>
class fenkys_utils::base_smart_ptr< T >

Classe pointeur automatique.

Classe de base des smart_ptr


Documentation des types imbriqués

template<typename T>
typedef void(* fenkys_utils::base_smart_ptr< T >::destroy_function)(T*)
 

Type des fonctions personnalisée appelée par le base_smart_ptr pour detruire l'objet géré.


Documentation des contructeurs et destructeurs

template<typename T>
fenkys_utils::base_smart_ptr< T >::base_smart_ptr   [inline]
 

Constructeur par defaut.

template<typename T>
fenkys_utils::base_smart_ptr< T >::base_smart_ptr T *    ptr
 

Associe un pointeur a un smart pointer.

Le compteur d'instance est crée et positionné sur 1. Puis le pointeur est recopié dans la structure

Paramètres:
ptr Pointeur sur l'objet a associer au base_smart_ptr;

template<typename T>
fenkys_utils::base_smart_ptr< T >::base_smart_ptr base_smart_ptr< T > const &    sm
 

Copie un smart pointer.

Le compteur d'instance existe, il est incrementé de 1 et le pointeur du compteur est recopié. Il n'existe pas de version const du constructeur car le pointeur de l'objet géré ne peut pas etre de type const.

Paramètres:
sm Reference sur le base_smart_ptr a recopier;

template<typename T>
virtual fenkys_utils::base_smart_ptr< T >::~base_smart_ptr   [inline, virtual]
 

Destructeur.


Documentation des méthodes

template<typename T>
T const & fenkys_utils::base_smart_ptr< T >::operator *   const
 

Renvoie une reference sur l'objet constant géré.

Renvoie une reference constante sur l'objet pointé ou NULL si ce pointeur n'existe pas.

Renvoie:
le pointeur sur l'objet
Exceptions:
logic_error si le pointeur n'existe pas.

template<typename T>
T & fenkys_utils::base_smart_ptr< T >::operator *  
 

Renvoie une reference sur l'objet géré.

Renvoie une reference sur l'objet pointé ou NULL si ce pointeur n'existe pas.

Renvoie:
le pointeur sur l'objet
Exceptions:
logic_error si le pointeur n'existe pas.

template<typename T>
fenkys_utils::base_smart_ptr< T >::operator T *  
 

Convertit le smart pointer en T*.

Renvoie le pointeur correspondant a l'objet géré ou NULL si ce pointeur n'existe pas.

Renvoie:
le pointeur sur l'objet

template<typename T>
fenkys_utils::base_smart_ptr< T >::operator T const *   const
 

Convertit le smart pointer en T const *.

Renvoie le pointeur constant correspondant a l'objet géré ou NULL si ce pointeur n'existe pas.

Renvoie:
le pointeur sur l'objet

template<typename T>
T const * fenkys_utils::base_smart_ptr< T >::operator->   const
 

Renvoie un pointeur sur l'objet constant géré.

Renvoie un pointeur constant correspondant a l'objet pointé ou NULL si ce pointeur n'existe pas.

Renvoie:
le pointeur sur l'objet

template<typename T>
T * fenkys_utils::base_smart_ptr< T >::operator->  
 

Renvoie un pointeur sur l'objet géré.

Renvoie le pointeur correspondant a l'objet pointé ou NULL si ce pointeur n'existe pas.

Renvoie:
le pointeur sur l'objet

template<typename T>
virtual base_smart_ptr& fenkys_utils::base_smart_ptr< T >::operator= T *    [pure virtual]
 

Operateur d'affectation de pointeur.

Implémenté dans fenkys_utils::smart_ptr< T >, fenkys_utils::nodefault_smart_ptr< T >, fenkys_utils::smart_ptr< GdkPoint >, fenkys_utils::smart_ptr< GString >, fenkys_utils::smart_ptr< GdkSegment >, fenkys_utils::nodefault_smart_ptr< GSList >, fenkys_utils::nodefault_smart_ptr< GModule >, et fenkys_utils::nodefault_smart_ptr< GList >.

template<typename T>
T * fenkys_utils::base_smart_ptr< T >::Reaffect T *    newPtr
 

Change le pointeur sans changer le compteur.

Cette fonctionnalité permet de gerer des objets complexes tels que les listes chainés ou le pointeur de base est susceptible de changer alors que l'objet global est toujours le meme.

Paramètres:
newPtr nouveau pointeur a stocker dans le smart_ptr
Renvoie:
l'ancien pointeur sur stocké dans le smart_ptr

template<typename T>
int fenkys_utils::base_smart_ptr< T >::Ref   const [inline]
 

Renvoie le nombre de reference sur l'objet.

template<typename T>
void fenkys_utils::base_smart_ptr< T >::SetDestroyFunction destroy_function    destroyPtr
 

Definit la fonction de destructtion de l'objet.

Si la fonction est definie elle sera appelée lors de la destruction de l'objet, sinon c'est avec delete que l'objet sera detruit. La fonction doit avoir le prototype suivant : void function(T*);. Cette fonction doit etre uen fonction ou un membre statique de classe.

Paramètres:
destroyPtr pointeur sur la fonction de destruction

template<typename T>
void fenkys_utils::base_smart_ptr< T >::SetPersistent bool    persistent = true
 

positionne l'etat persistant du pointeur géré

Dans l'etat persistent, meme quand le compteur tombe a zero, le pointeur n'est pas detruit.

Paramètres:
persistent etat persistant du pointeur.

template<typename T>
void fenkys_utils::base_smart_ptr< T >::Swap base_smart_ptr< T > &    sm [protected]
 

Echange le contenu de l'objet courant avec celui d'un autre de meme type.

Dans l'etat persistent, meme quand le compteur tombe a zero, le pointeur n'est pas detruit.

Paramètres:
persistent etat persistant du pointeur.


Documentation des données imbriquées

template<typename T>
base_smart_ptr_base<T>* fenkys_utils::base_smart_ptr< T >::Smart [protected]
 


La documentation associée à cette classe a été générée à partir du fichier suivant :
Généré le Sun Oct 5 15:03:44 2003 pour lightgtk++ par doxygen1.3-rc3