Files
2026-06-01 12:46:52 +02:00

43 lines
926 B
C++

#pragma once
#include <string>
#include <queue>
#include <toolkit/ILock.h>
#include <toolkit/KHash.h>
#include "GameDBManager.h"
struct GlobalVariableManager
{
public:
~GlobalVariableManager();
static GlobalVariableManager & Instance();
void Push( GameDBManager::DBProc * pWork );
void onEndQuery();
void Set( const char * pszName, const char * pszValue, const bool bSkipDBUpdate = false );
const char * Get( const char * pszName ) const;
const bool Delete( const char * pszName );
protected:
GlobalVariableManager()
: m_cs( "GlobalVariableManager::m_cs" )
{}
private:
// 모든 락의 말단에서 걸림(GlobalVariableManager 안에서 타 락을 걸지 않음)
mutable XCriticalSection m_cs;
KHash< std::string *, hashPr_string > m_hsGlobalVariable;
XCriticalSection m_QueryLock;
std::queue< GameDBManager::DBProc* > m_qQueryList;
};
#define GVM GlobalVariableManager::Instance