64 lines
1.7 KiB
C++
64 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#include <PacketStruct_CG.h>
|
|
//#include <Object/MsgHandler.h>
|
|
|
|
class ServerSession;
|
|
class PacketHandler;
|
|
class WiseUser;
|
|
|
|
#pragma pack(push, 1)
|
|
struct sCONNECT_INFO
|
|
{
|
|
WORD wPORT;
|
|
cSTRING_BUFFER<MAX_IP_STRING_LEN+1> pIP;
|
|
};
|
|
#pragma pack(pop)
|
|
|
|
class UserSessionMgr
|
|
{
|
|
// <TYPE DEFINITION>
|
|
public:
|
|
enum eCONTROL_PHASE
|
|
{
|
|
eCONTROL_PHASE_AUTH_AGENT,
|
|
eCONTROL_PHASE_AGENT_NOCRYPT,
|
|
eCONTROL_PHASE_AGENT_CRYPT,
|
|
};
|
|
public: UserSessionMgr();
|
|
~UserSessionMgr();
|
|
|
|
public: void Connect(eCONNECT_SESSIONS idxSession);
|
|
void OnConnect(eCONNECT_SESSIONS idxSession);
|
|
void Disconnect(eCONNECT_SESSIONS idxSession);
|
|
void OnDisconnect(eCONNECT_SESSIONS idxSession);
|
|
|
|
public: void OnRecv(eCONNECT_SESSIONS idxSession, BYTE *pMsg, WORD wSize);
|
|
BOOL SendPacket(eCONNECT_SESSIONS idxSession, MSG_BASE* pMsg, WORD wSize);
|
|
|
|
public: void Init();
|
|
void Release();
|
|
|
|
inline void BindWiseUser(WiseUser* pUser) { m_pWiseUser = pUser; }
|
|
inline void UnbindWiseUser() { m_pWiseUser = NULL; }
|
|
inline WiseUser* GetWiseUser() { return m_pWiseUser; }
|
|
|
|
ServerSession* GetSession(eCONNECT_SESSIONS idxSession);
|
|
|
|
void SetConnectionInfo(eCONNECT_SESSIONS idxSession, sCONNECT_INFO* IN pConnectInfo);
|
|
BOOL GetConnectionInfo(eCONNECT_SESSIONS idxSession, sCONNECT_INFO* OUT pConnectInfo);
|
|
|
|
public: static WiseUser* GetActiveTransactionWiseUser() { return ms_pActiveTransactionWiseUser; }
|
|
static void SetActiveTransactionWiseUser(WiseUser* pUser) { ms_pActiveTransactionWiseUser = pUser; }
|
|
|
|
// <FIELDs>
|
|
private: WiseUser* m_pWiseUser;
|
|
ServerSession* m_pSessions[MAX_SESSION];
|
|
sCONNECT_INFO m_pConnectInfos[MAX_SESSION];
|
|
|
|
private: static WiseUser* ms_pActiveTransactionWiseUser;
|
|
};
|
|
|
|
|
|
|