Files
Leviathan/Server/GameServer/Game/Resource/UIDManager.h
T
2026-06-01 12:46:52 +02:00

28 lines
630 B
C++

#pragma once
#include <toolkit/ILock.h>
#include <toolkit/KHash.h>
class UIDManager
{
public:
virtual ~UIDManager();
static UIDManager & Instance();
const int GetNewUID( const char *szTypeName );
const bool ClearUID( const char *szTypeName );
// UIDManager가 가지고 있는 이미 사용된 최대 ID값과 nNewMaxUsedID 중 큰 것을 이미 사용된 최대 ID값으로 설정
const bool SetMaxUsedUID( const char *szTypeName, const int nNewMaxUsedID );
private:
UIDManager()
: m_UIDLock( "UIDManager::m_UIDLock" )
{}
private:
XCriticalSection m_UIDLock;
KHash< int, hashPr_string > m_hsUIDCounter;
};