Files
2022-10-26 12:25:11 +08:00

46 lines
1.4 KiB
C++

#pragma once
#include <NetworkObject.h>
#include <string>
#include <PublicDefine.h>
#include <PacketStruct.h>
class ServerSession : public NetworkObject
{
public:
ServerSession(void);
virtual ~ServerSession(void);
//virtual
public:
virtual VOID OnAccept( DWORD dwNetworkIndex );
virtual VOID OnDisconnect();
virtual VOID OnRecv( BYTE *pMsg, WORD wSize ) = 0;
virtual VOID OnConnect( BOOL bSuccess, DWORD dwNetworkIndex );
virtual VOID OnLogString( char *pszLog ) {}
virtual eUPDATE_SERVER_TYPE GetServerType(){ return UPDATE_UNKNOWN; }
inline VOID SetIsConnector( BOOL bIsConnector ){ m_bIsConnector = bIsConnector; }
inline BOOL IsConnector(){ return m_bIsConnector; }
inline VOID SetConnected( BOOL bIsConnected ){ m_bIsConnected = bIsConnected; }
inline BOOL IsConnected(){ return m_bIsConnected; }
std::string GetConnectIP(){ return m_strConnectIP; }
inline WORD GetConnectPort(){ return m_wConnectPort; }
DWORD GetServerKey(){ return m_dwServerKey; }
VOID SetServerKey( DWORD dwServerKey ){ m_dwServerKey = dwServerKey; }
DWORD GetSessionIndex(){ return m_dwSessionIndex; }
VOID Clone( ServerSession* pServerSession );
BOOL SendPacket( BYTE* pMsg, WORD wSize );
std::string GetServerTypeStr();
private:
DWORD m_dwSessionIndex;
DWORD m_dwServerKey;
BOOL m_bIsConnector;
std::string m_strConnectIP;
WORD m_wConnectPort;
BOOL m_bIsConnected;
};