DragonNest/Server/DNMasterServer/DNIocpManager.h
2024-12-19 09:48:26 +08:00

38 lines
904 B
C++

#pragma once
#include "IocpManager.h"
class CDNIocpManager: public CIocpManager
{
private:
queue<CSocketContext*> m_ProcessCalls;
CSyncLock m_ProcessLock;
HANDLE m_hProcessThread;
HANDLE m_hIdleThread;
protected:
static UINT __stdcall ProcessThread(void *pParam);
static UINT __stdcall IdleThread(void *pParam);
static HANDLE m_hSignalProcess;
void OnAccept(CSocketContext *pSocketContext, const char* pIp, const int nPort);
void OnConnected(CSocketContext *pSocketContext);
void OnDisconnected(CSocketContext *pSocketContext);
void OnReceive(CSocketContext *pSocketContext, DWORD dwBytesTransferred);
void OnConnectFail(CSocketContext *pSocketContext);
public:
CDNIocpManager(void);
virtual ~CDNIocpManager(void);
int Init(int nSocketCountMax);
void Final();
int CreateThread();
void AddProcessCall(CSocketContext *pSocketContext);
};
extern CDNIocpManager* g_pIocpManager;