36 lines
1000 B
C++
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;
|
|
};
|