#pragma once #include "ISGManager.h" #ifdef SECSGEM_EXPORTS #define SECSGEM_DLL __declspec(dllexport) #else #define SECSGEM_DLL __declspec(dllimport) #endif /* * This is a singleton that contains the one and only SGManager */ class SECSGEM_DLL CSGManagerSingleton { private: CSGManagerSingleton(void); ~CSGManagerSingleton(void); /* The below copy constructor and assignment operators are * not implemented but by defining them here their default * implementation will not be used. */ static CMutex m_mutex; static ISGManager *m_pInstance; CSGManagerSingleton(const CSGManagerSingleton&); void operator =(const CSGManagerSingleton&); public: static ISGManager& Instance(); static void Destroy(); };