DragonNest/Server/ServerCommon/DNGuildRecruitCacheRepository.h

80 lines
3.2 KiB
C
Raw Permalink Normal View History

#pragma once
class CDNUserSession;
namespace GuildRecruitSystem
{
const DWORD CACHETICK = (1000*30); // 30<33><30>
const DWORD CACHECLEARTICK = (1000*60*10); // 10<31><30>
class CCacheRepository:public CSingleton<CCacheRepository>
{
public:
CCacheRepository():m_dwCacheTick(0),m_uiCacheClearCount(0)
{
}
#if defined( PRE_ADD_GUILD_EASYSYSTEM )
void GetGuildRecruitList( CDNUserSession* pSession, UINT uiPage, BYTE cJob, BYTE cLevel, BYTE cPurposeCode, WCHAR* wszGuildName, BYTE cSortType );
#else
void GetGuildRecruitList( CDNUserSession* pSession, UINT uiPage, BYTE cJob, BYTE cLevel );
#endif
void SetGuildRecruitList( CDNUserSession* pSession, TAGetGuildRecruit* pData );
void GetGuildRecruitCharacter( CDNUserSession* pSession, TGuildUID GuildUID );
void SetGuildRecruitCharacter( CDNUserSession* pSession, TAGetGuildRecruitCharacter* pData );
void DelGuildRecruitCharacter( TGuildUID GuildUID );
void GetMyGuildRecruit( CDNUserSession* pSession );
void SetMyGuildRecruit( CDNUserSession* pSession, TAGetMyGuildRecruit* pData );
void DelMyGuildRecruit( CDNUserSession* pSession );
void ClearCache();
private:
CSyncLock m_Sync;
DWORD m_dwCacheTick;
UINT m_uiCacheClearCount;
//#####################################################################################
// [0]MGuildRecruitList <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//#####################################################################################
// Key:<Page,Job,Level> : Value:<Tick,Data>
//#####################################################################################
#if defined( PRE_ADD_GUILD_EASYSYSTEM )
typedef std::map< std::tr1::tuple<UINT,BYTE,int,BYTE,BYTE,WCHAR>, std::pair<DWORD,std::vector<TGuildRecruitInfo>> > MGuildRecruitList;
#else
typedef std::map< std::tr1::tuple<UINT,BYTE,int>, std::pair<DWORD,std::vector<TGuildRecruitInfo>> > MGuildRecruitList;
#endif
typedef MGuildRecruitList::iterator MMGuildRecruitListItor;
MGuildRecruitList m_mGuildRecruitList;
//#####################################################################################
// [1]MGuildRecruitCharacterList <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD>Խ<EFBFBD>û<EFBFBD><C3BB> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD> <20>߽<EFBFBD>)
//#####################################################################################
// Key:<3A><><EFBFBD><EFBFBD> UID : value:<Tick,Data>
//#####################################################################################
typedef std::map< TGuildUID, std::pair<DWORD,std::vector<TGuildRecruitCharacter>> > MGuildRecruitCharacterList;
typedef MGuildRecruitCharacterList::iterator MGuildRecruitCharacterListItor;
MGuildRecruitCharacterList m_mGuildRecruitCharacterList;
//#####################################################################################
// [2]MMyGuildRecruitList <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Խ<EFBFBD>û<EFBFBD><C3BB> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD> <20>߽<EFBFBD>)
//#####################################################################################
// Key:CharacterDBID : value:<Tick,Data>
//#####################################################################################
typedef std::map< INT64, std::pair<DWORD,std::vector<TGuildRecruitInfo>> > MMyGuildRecruitList;
typedef MMyGuildRecruitList::iterator MMyGuildRecruitListItor;
MMyGuildRecruitList m_mMyGuildRecruitList;
};
}