Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
#ifndef _RYL_DBAGENT_SESSION_DATA_MGR_H_
|
||||
#define _RYL_DBAGENT_SESSION_DATA_MGR_H_
|
||||
|
||||
#include "SessionData.h"
|
||||
|
||||
#include <map>
|
||||
#include <boost/pool/object_pool.hpp>
|
||||
#include <boost/pool/pool_alloc.hpp>
|
||||
|
||||
//! forward decl.
|
||||
class CDBComponent;
|
||||
|
||||
namespace DBAgent
|
||||
{
|
||||
namespace DataStorage
|
||||
{
|
||||
class CSessionDataMgr
|
||||
{
|
||||
public:
|
||||
|
||||
static CSessionDataMgr& GetInstance();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
CSessionData* SessionOpen(unsigned long dwUID);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> ã<><C3A3>
|
||||
CSessionData* GetOpenSession(unsigned long dwUID);
|
||||
CSessionData* GetOpenSession(const char* szAccountName, IN_ADDR peerAddress, bool bCheckAddress);
|
||||
CSessionData* GetCharLoadedSession(unsigned long dwCID);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20>ݱ<EFBFBD>
|
||||
void SessionClose(unsigned long dwUID, unsigned long dwSessionID);
|
||||
void SessionCloseWithLogout(unsigned long dwUID, unsigned long dwServerID);
|
||||
|
||||
void SessionCloseCurrentServer(unsigned long dwServerID);
|
||||
|
||||
// CharEnable / CharDisable<6C>ÿ<EFBFBD> <20><><EFBFBD><EFBFBD> / <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> CID<49><44> <20><><EFBFBD><EFBFBD>
|
||||
bool AddCharLoadedSession(unsigned long dwCID, CSessionData& SessionData);
|
||||
bool RemoveCharLoadedSession(unsigned long dwCID);
|
||||
|
||||
bool IsLoadedChar(const char* szCharName);
|
||||
|
||||
unsigned int GetSessionNum() { return static_cast<unsigned int>(m_uidMap.size()); }
|
||||
unsigned int GetCharEnabledSessionNum() { return static_cast<unsigned int>(m_cidMap.size()); }
|
||||
|
||||
// Load <20><> ij<><C4B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ν<EFBFBD><CEBD>Ͻ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OFF <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD>.
|
||||
void ClearGuildWarInstanceFlag();
|
||||
void ClearRealmWarInstanceFlag();
|
||||
|
||||
template<typename FnProcess>
|
||||
void Process(FnProcess fnProcess)
|
||||
{
|
||||
SessionMap::iterator pos = m_uidMap.begin();
|
||||
SessionMap::iterator end = m_uidMap.end();
|
||||
|
||||
for(;pos != end; ++pos)
|
||||
{
|
||||
fnProcess(*pos->second);
|
||||
}
|
||||
}
|
||||
|
||||
template<typename FnProcess>
|
||||
void ProcessRealmPoint(FnProcess fnProcess, unsigned char cType)
|
||||
{
|
||||
SessionMap::iterator pos = m_uidMap.begin();
|
||||
SessionMap::iterator end = m_uidMap.end();
|
||||
|
||||
for(;pos != end; ++pos)
|
||||
{
|
||||
fnProcess(pos->second, cType);
|
||||
}
|
||||
}
|
||||
|
||||
template<typename FnProcess>
|
||||
void ProcessRealmTime(FnProcess fnProcess, TIME* pTime)
|
||||
{
|
||||
SessionMap::iterator pos = m_uidMap.begin();
|
||||
SessionMap::iterator end = m_uidMap.end();
|
||||
|
||||
for(;pos != end; ++pos)
|
||||
{
|
||||
fnProcess(pos->second, pTime);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
typedef std::map<CSessionData*, unsigned long> SessionPoolCheck;
|
||||
|
||||
typedef boost::object_pool<CSessionData> SessionPool;
|
||||
|
||||
typedef std::map<unsigned long, CSessionData*, std::less<unsigned long>,
|
||||
boost::fast_pool_allocator<std::pair<unsigned long, CSessionData*> > > SessionMap;
|
||||
|
||||
void SessionCloseWithLogout(SessionMap::iterator logoutPos);
|
||||
|
||||
SessionMap m_uidMap;
|
||||
SessionMap m_cidMap;
|
||||
|
||||
//SessionPool m_SessionPool;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user