doomed.h
00001 #ifndef DOOMED_H 00002 #define DOOMED_H 00003 00004 //================================================================================= 00012 //================================================================================= 00013 00014 template <class DOOMED> 00015 class SingletonDestroyer 00016 { 00017 public: 00018 SingletonDestroyer(DOOMED* = 0); 00019 ~SingletonDestroyer(); 00020 00021 void setDoomed(DOOMED*); 00022 DOOMED* getDoomed(); 00023 private: 00024 SingletonDestroyer(const SingletonDestroyer&); 00025 SingletonDestroyer& operator=(const SingletonDestroyer&); 00026 00027 private: 00028 DOOMED* mp_doomed; 00029 }; 00030 00032 template <class DOOMED> 00033 SingletonDestroyer<DOOMED>::SingletonDestroyer(DOOMED *d) : mp_doomed(d) {} 00034 00036 template <class DOOMED> 00037 SingletonDestroyer<DOOMED>::~SingletonDestroyer() 00038 { 00039 delete mp_doomed; 00040 } 00041 00043 template <class DOOMED> 00044 void SingletonDestroyer<DOOMED>::setDoomed(DOOMED* d) 00045 { 00046 mp_doomed = d; 00047 } 00048 00049 template <class DOOMED> 00050 DOOMED* SingletonDestroyer<DOOMED>::getDoomed() 00051 { 00052 return mp_doomed; 00053 } 00054 00055 #endif