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,63 @@
|
||||
#ifndef _ADMIN_TOOL_DISPATCH_H_
|
||||
#define _ADMIN_TOOL_DISPATCH_H_
|
||||
|
||||
struct PktBase;
|
||||
|
||||
class CSingleSession;
|
||||
class CWnd;
|
||||
class CPacketToolDispatch
|
||||
{
|
||||
public:
|
||||
|
||||
// Desc: 세션에서 받은 데이터로 패킷을 생성한다.
|
||||
// Input: const char* lpStream_In : 세션에서 받은 데이터.
|
||||
// size_t* nStreamSize_InOut : 받은 데이터의 크기.
|
||||
// Output: size_t* nStreamSize_InOut : 처리된 데이터의 크기.
|
||||
// 리턴값 : false 리턴 시 접속을 해제한다. (잘못된 패킷 존재 가능성 있음)
|
||||
virtual bool ParsePacket(char* const lpStream_In, unsigned long* dwStreamSize_InOut) = 0;
|
||||
|
||||
// Desc: 생성한 패킷을 단일 스레드에서 처리한다.
|
||||
// (CSession::Process 에서 매 펄스마다 호출한다.)
|
||||
virtual bool SingleThreadDispatch(unsigned long dwCurrentTime) = 0;
|
||||
|
||||
// Desc: 자기 자신을 생성한다.
|
||||
// Output: 리턴값 : 생성 실패시 NULL 리턴
|
||||
virtual CPacketToolDispatch* Clone() = 0;
|
||||
|
||||
// Desc: 자기 자신을 소멸시킨다.
|
||||
virtual void Destroy() = 0;
|
||||
|
||||
// Desc: 연결 종료시 처리할 내용을 넣는다.
|
||||
virtual void Disconnected() = 0;
|
||||
|
||||
// Desc: 세션과의 상호참조를 위한 함수들.
|
||||
inline void SetSession(CSingleSession* lpSession) { m_lpSession = lpSession; }
|
||||
inline CSingleSession* GetSession() { return m_lpSession; }
|
||||
|
||||
virtual ~CPacketToolDispatch() { }
|
||||
|
||||
protected:
|
||||
|
||||
// Dispatcher의 생성자는 항상 Protected이어야 한다.
|
||||
CPacketToolDispatch() : m_lpSession(0) { }
|
||||
CSingleSession* m_lpSession;
|
||||
};
|
||||
|
||||
class CClientMultiThreadDispatch : public CPacketToolDispatch
|
||||
{
|
||||
public:
|
||||
CClientMultiThreadDispatch( ) { m_pDispatchWindow = NULL; }
|
||||
|
||||
virtual bool ParsePacket(char* const lpStream_In, unsigned long* dwStreamSize_InOut);
|
||||
virtual bool SingleThreadDispatch(unsigned long dwCurrentTime) { return true; }
|
||||
|
||||
protected:
|
||||
|
||||
virtual bool DispatchPacket(PktBase* lpPktBase) = 0;
|
||||
|
||||
virtual ~CClientMultiThreadDispatch() { }
|
||||
|
||||
CWnd* m_pDispatchWindow;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user