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,60 @@
|
||||
#ifndef _GM_NETWORK_SINGLE_DISPATCH_STORAGE_H_
|
||||
#define _GM_NETWORK_SINGLE_DISPATCH_STORAGE_H_
|
||||
|
||||
#include <Thread/Lock.h>
|
||||
|
||||
class CPacketDispatch;
|
||||
|
||||
#define GET_SINGLE_DISPATCH(instanceName, type, table) \
|
||||
CSingleDispatch::Storage Storage##instanceName(table); \
|
||||
type* instanceName = static_cast<type*>(Storage##instanceName.GetDispatch())
|
||||
|
||||
class CSingleDispatch
|
||||
{
|
||||
public:
|
||||
|
||||
class Storage
|
||||
{
|
||||
public:
|
||||
|
||||
Storage(CSingleDispatch& singleDispatch);
|
||||
~Storage();
|
||||
|
||||
CPacketDispatch* ReloadDispatch();
|
||||
CPacketDispatch* GetDispatch() { return m_lpDispatch; }
|
||||
|
||||
private:
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ұ<EFBFBD>.
|
||||
static void* operator new(size_t size);
|
||||
static void operator delete(void* ptr);
|
||||
|
||||
CPacketDispatch* m_lpDispatch;
|
||||
CSingleDispatch& m_SingleDispatch;
|
||||
};
|
||||
|
||||
CSingleDispatch();
|
||||
~CSingleDispatch();
|
||||
|
||||
void SetDispatch(CPacketDispatch* lpDispatch);
|
||||
void RemoveDispatch(CPacketDispatch* lpDispatch);
|
||||
|
||||
size_t GetDispatchNum();
|
||||
bool IsEmpty();
|
||||
|
||||
private:
|
||||
|
||||
void InternalRemoveDispatch(CPacketDispatch* lpDispatch);
|
||||
CPacketDispatch* GetDispatch();
|
||||
|
||||
typedef CCSLock LockType;
|
||||
|
||||
LockType m_DispatchLock;
|
||||
CACHE_PAD(DispatchLockPad, sizeof(LockType));
|
||||
|
||||
CPacketDispatch* m_lpDispatch;
|
||||
|
||||
friend class Storage;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user