#pragma once
#ifndef CSyncronizationClassFactory_h
#define CSyncronizationClassFactory_h
#include "FWCriticalSection.h"
#include "ASyncronizationClass.h"
namespace CoreFW
{
class CORE_DLL_DECLARATION_SPECIFIER CSyncronizationClassFactory
{
private:
CSyncronizationClassFactory() ;
virtual ~CSyncronizationClassFactory() ;
public:
static CSyncronizationClassFactory* Instance() ;
static void Release() ;
static void CreateSyncronizationObject() ;
static void ReleaseSyncronizationObject() ;
ASyncronizationClass* CreateSyncronizationObject( EnumSyncronizationClassType eSyncronizationClassType,
const std::string &strSyncronizationObjectName = "" ) ;
private:
static ASyncronizationClass *m_pSingletonSyncronizationObject ;
static CSyncronizationClassFactory *m_pSyncronizationClassFactoryObject ;
} ;
} // End namespace
#endif