Back to index

salome-kernel  6.5.0
Public Member Functions
ATEXIT_ Class Reference

Mecanisme pour faire executer une seule fois DESTRUCTEUR_GENERIQUE_::Nettoyage a la fin du traitement : creation d'un singleton statique de l'objet tres specialise ATEXIT_. More...

List of all members.

Public Member Functions

 ATEXIT_ (bool Make_ATEXIT)
 Allocation dynamique de Destructeurs, une liste chainee de DESTRUCTEUR_GENERIQUE_* et enregistrement de la fonction Nettoyage() par atexit().
 ~ATEXIT_ ()

Detailed Description

Mecanisme pour faire executer une seule fois DESTRUCTEUR_GENERIQUE_::Nettoyage a la fin du traitement : creation d'un singleton statique de l'objet tres specialise ATEXIT_.

La creation d'un objet de type ATEXIT_ entraine l'inscription de la fonction Nettoyage() par atexit(). Il suffit donc de creer un singleton statique du type ATEXIT_ pour effectuer cet enregistrement une seule fois independament de l'utilisateur.

Definition at line 64 of file Utils_DESTRUCTEUR_GENERIQUE.cxx.


Constructor & Destructor Documentation

ATEXIT_::ATEXIT_ ( bool  Make_ATEXIT) [inline]

Allocation dynamique de Destructeurs, une liste chainee de DESTRUCTEUR_GENERIQUE_* et enregistrement de la fonction Nettoyage() par atexit().

La liste chainee Destructeurs est detruite dans la fonction Nettoyage.

Definition at line 74 of file Utils_DESTRUCTEUR_GENERIQUE.cxx.

        {
          //CCRT
          if ( Make_ATEXIT && !ATEXIT_Done ) {
            //CCRT
                assert (DESTRUCTEUR_GENERIQUE_::Destructeurs==0);
                //cerr << "ATEXIT_::ATEXIT_ Construction ATEXIT" << endl;// message necessaire pour utiliser logger dans Nettoyage (cf.BUG KERNEL4561)
                DESTRUCTEUR_GENERIQUE_::Destructeurs = 
                      new std::list<DESTRUCTEUR_GENERIQUE_*> ; // Destructeur alloue dynamiquement (cf. ci-dessous) ,
                                                                   // il est utilise puis detruit par la fonction Nettoyage
                //To be sure the trace singleton will be the last one to be destroyed initialize it here before calling atexit
                LocalTraceBufferPool::instance();
#ifndef _DEBUG_
                atexit( Nettoyage );                      // execute Nettoyage lors de exit, aprs la destruction des donnees statiques !
#else
                int cr = atexit( Nettoyage );                      // execute Nettoyage lors de exit, aprs la destruction des donnees statiques !
                assert(cr==0) ;
#endif
                ATEXIT_Done = true ;
          }
        }

Here is the call graph for this function:

ATEXIT_::~ATEXIT_ ( ) [inline]

Definition at line 96 of file Utils_DESTRUCTEUR_GENERIQUE.cxx.

        {
          //cerr << "ATEXIT_::~ATEXIT_ Destruction ATEXIT" << endl;
        }

The documentation for this class was generated from the following file: