diff options
Diffstat (limited to 'src/framework/Policies/Singleton.h')
-rw-r--r-- | src/framework/Policies/Singleton.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/framework/Policies/Singleton.h b/src/framework/Policies/Singleton.h index d8d4fd4df20..66daaba5a9a 100644 --- a/src/framework/Policies/Singleton.h +++ b/src/framework/Policies/Singleton.h @@ -17,14 +17,18 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + #ifndef TRINITY_SINGLETON_H #define TRINITY_SINGLETON_H + /** * @brief class Singleton */ + #include "CreationPolicy.h" #include "ThreadingModel.h" #include "ObjectLifeTime.h" + namespace Trinity { template @@ -38,14 +42,19 @@ namespace Trinity { public: static T& Instance(); + protected: Singleton() {}; + private: + // Prohibited actions...this does not prevent hijacking. Singleton(const Singleton &); Singleton& operator=(const Singleton &); + // Singleton Helpers static void DestroySingleton(); + // data structure typedef typename ThreadingModel::Lock Guard; static T *si_instance; |