#pragma once #include "ISGManager.h" #include "DllDefines.h" /* * 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&) = delete; void operator=(const CSGManagerSingleton&) = delete; public: static ISGManager& Instance(); static void Destroy(); };