fdhwlib  2.0.25
akSingletonCleaner Class Reference

#include <aksingletoncleaner.h>

List of all members.

Public Member Functions

Private Attributes


Detailed Description

Avoid memory leakage through instances of singletons.

Definition at line 27 of file aksingletoncleaner.h.


Constructor & Destructor Documentation

akSingletonCleaner::akSingletonCleaner ( akSingleton pObject = 0) [inline]

Constructor.

Definition at line 31 of file aksingletoncleaner.h.

: singleton( pObject ) { }
virtual akSingletonCleaner::~akSingletonCleaner ( ) [inline, virtual]

Static objects will be deleted at the program end.

So every singleton class needs to contain a static oject of type akSingletonCleaner and pass it own reference to this object

Definition at line 36 of file aksingletoncleaner.h.

References singleton.

                                 {
      if( singleton != 0 ) {
          delete singleton;
      }

   }

Member Function Documentation

void akSingletonCleaner::dump ( ) [inline]

Definition at line 50 of file aksingletoncleaner.h.

References singleton.

              {
      printf("SingletonCleaner (%p): Reference to %p\n", (void *) this, (void *) singleton);
   }
akSingleton* akSingletonCleaner::getObject ( ) [inline]

Definition at line 55 of file aksingletoncleaner.h.

References singleton.

                            {
      return singleton;
   }
void akSingletonCleaner::setObject ( akSingleton pObject) [inline]

Definition at line 43 of file aksingletoncleaner.h.

References singleton.

Referenced by akSingletonTest::~akSingletonTest(), and akTimeLib::~akTimeLib().

                                          {
      //printf("SingletonCleaner (%p): Setting singleton reference from %p to %p\n",
      //         this, singleton, pObject);
      singleton = pObject;

   }

Member Data Documentation

Reference of the singleton to care for.

Definition at line 62 of file aksingletoncleaner.h.

Referenced by dump(), getObject(), setObject(), and ~akSingletonCleaner().


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