PCMSingleton.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00027
00028 #ifndef __PCM_SINGLETON_H__
00029 # define __PCM_SINGLETON_H__
00030
00031
00032
00033
00034
00035 # include "PCMPremeditations.h"
00036
00037 # include "PCMException.h"
00038
00039 namespace ParCompMark
00040 {
00041
00045 template < typename T > class Singleton
00046 {
00047
00048
00049
00050
00051 # ifdef PARCOMPMARK_TEST
00052 friend class ParCompMarkTest::TestSingleton;
00053 # endif
00054
00055
00056
00057
00058
00060
00061
00062 protected:
00063
00069 static T *mInstance;
00070
00072
00073
00074
00075
00076
00078
00079
00080 public:
00081
00085 Singleton();
00086
00090 virtual ~ Singleton();
00091
00093
00094
00095
00096
00097
00099
00100
00101 public:
00102
00107 static T *getInstance();
00108
00112 static void createInstance();
00113
00117 static void destroyInstance();
00118
00120
00121 };
00122
00123
00124
00125
00126
00127 # include "PCMSingleton_impl.h"
00128
00129 }
00130
00131 #endif