Files
Sun1602/Tools/SunUpdateManager/SunUpdateServer/AccessInfoParser.h
T
2022-10-26 12:25:11 +08:00

36 lines
1000 B
C++

#pragma once
#include "XMLParser.h"
#include <Singleton.h>
#include <ObjKeyGenerator.h>
#include <SolarHashTable.h>
class AccessInfo;
typedef util::SolarHashTable<AccessInfo*> ACCESS_INFO_HASH;
typedef ACCESS_INFO_HASH::iterator ACCESS_INFO_HASH_ITR;
class AccessInfoParser : public Singleton<AccessInfoParser>
{
public:
AccessInfoParser(void);
~AccessInfoParser(void);
public:
BOOL Load( char* pszFileName );
VOID UnLoad();
DWORD GetAccessInfoNum() { return m_AccessInfoHash.GetDataNum(); }
AccessInfo* GetAccessInfo( DWORD dwUserKey ) { return m_AccessInfoHash.GetData( dwUserKey ); };
BOOL InsertUser( DWORD dwUserKey );
BOOL SerializeStreamForUser( DWORD dwUserKey, SERVER_ACCESS_TOTAL_INFO& info, BOOL bSave );
BOOL SyncAllUserRight();
inline ACCESS_INFO_HASH_ITR Begin() { return m_AccessInfoHash.begin(); }
inline ACCESS_INFO_HASH_ITR End() { return m_AccessInfoHash.end(); }
private:
XMLParser m_XMLParser;
ACCESS_INFO_HASH m_AccessInfoHash;
};