📄 serversession.h
字号:
#ifndef __SERVER_SESSION_H__
#define __SERVER_SESSION_H__
#pragma once
#include <string>
#include <NetworkObject.h>
#include <SolarDatabaseDefine.h>
#include <SolarDatabase.h>
#include <QueryResult.h>
class SolarDatabase;
class ServerSession : public NetworkObject
{
friend class ServerSessionManager;
enum { _HEARTBEAT_DELAY_BETWEEN_SERVER = 10000, };
public:
ServerSession();
virtual ~ServerSession();
virtual VOID Update(); ///< 概平付促 龋免捞 登绢具 窍绰 何盒!!!!
VOID DBQuery( Query * pQuery );
virtual VOID DBResult( BYTE cate, BYTE ptcl, QueryResult * pData ){}
virtual eSERVER_TYPE GetServerType() { return UNKNOWN_SERVER; }
virtual VOID SetServerType( eSERVER_TYPE eType ) {}
inline VOID SetSessionIndex( DWORD dwIdx ) { m_dwSessionIndex = dwIdx; }
inline DWORD GetSessionIndex() { return m_dwSessionIndex; }
VOID SendServerType();
virtual VOID OnAccept( DWORD dwNetworkIndex );
virtual VOID OnDisconnect();
virtual VOID OnConnect( BOOL bSuccess, DWORD dwNetworkIndex );
virtual VOID OnRecv( BYTE *pMsg, WORD wSize ) {}
VOID SetAddr( char *pszIP, WORD wPort );
VOID TryToConnect();
BOOL IsConnected() { return m_bIsConnected; }
BOOL SendPacket( MSG_BASE * pMsg, WORD wSize );
// 烹拌侩
DWORD GetBufferedQueryNum() { return m_DB.GetBufferedQueryNum(); }
protected: /// ServerSessionFactory俊辑父 龋免凳!
virtual VOID init();
virtual VOID release();
template <class ObjectOperator>
VOID removeRelatedUsers( ObjectOperator & op );
private:
inline VOID _setIsConnector( BOOL bIsConnector ) { m_bIsConnector = bIsConnector; }
inline BOOL _isConnector() { return m_bIsConnector; }
VOID _setConnected( BOOL val ) { m_bIsConnected = val; }
SolarDatabase m_DB;
DWORD m_dwSessionIndex;
std::string m_strConnectIP;
WORD m_wConnectPort;
BOOL m_bIsConnector;
BOOL m_bIsTriedToConnect;
DWORD m_dwLastHeartbeatTick;
BOOL m_bIsConnected;
public:
RESULTMSG m_ResultMsg[MAX_CHARACTER_LIST_NUM];
BYTE * m_pMsg[MAX_CHARACTER_LIST_NUM+1];
WORD m_wSize[MAX_CHARACTER_LIST_NUM+1];
};
template <class ObjectOperator>
VOID ServerSession::removeRelatedUsers( ObjectOperator & op )
{
// 阿阿狼 辑滚俊 楷搬等 蜡历甫 昏力 茄促.
SUNLOG(eFULL_LOG, "[ServerSession::removeRelatedUsers] [%s狼 立加秦力]:包访等 蜡历 昏力", GetServerType2String( GetServerType() ) );
g_DBUserManager.Foreach( op );
}
#endif // __SERVER_SESSION_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -