70 lines
1.9 KiB
C++
70 lines
1.9 KiB
C++
#pragma once
|
||
|
||
class CCustomServerSocket;
|
||
class CSQLConenction;
|
||
class CSrvConfig;
|
||
|
||
|
||
|
||
class CChatLogServerSocket:
|
||
public CCustomServerSocket
|
||
{
|
||
public:
|
||
typedef CCustomServerSocket ServerInherited ;
|
||
|
||
const static int CREATE_TABLE_INTERVAL = 86400000; //1天调用一次
|
||
|
||
//重载父类的函数
|
||
virtual CCustomServerClientSocket* CreateClientSocket(SOCKET nSocket, PSOCKADDR_IN pAddrIn);
|
||
|
||
inline CSQLConenction* GetSqlConnection() { return &Db;}
|
||
|
||
void AddLogServerClient(CChatLogClientSocket* pClient,int Flag = 0);
|
||
|
||
//判断是否还有日志查看器连接这个服务器
|
||
bool IsLogOnServerIndex(int nIndex);
|
||
|
||
void SendChatRecordToAll(int nServerIndex,int nChannleID,int nActorId,char* sActorName,char* msg);
|
||
//新服连接后自动连后台获取最新服务器配置,已打开聊天开关
|
||
void SendChatGetNewServerList();
|
||
public://构造函数和析构函数
|
||
CChatLogServerSocket();
|
||
~CChatLogServerSocket(void);
|
||
|
||
|
||
protected:
|
||
//提供用于子类进行覆盖的开启服务的函数,如果函数返回FALSE,则启动将会失败
|
||
//函数将在进入监听后,启动接受连接和连接处理线程前调用
|
||
virtual BOOL DoStartup();
|
||
//提供用于族类进行覆盖的停止服务的函数
|
||
//函数将在停止接受连接以及处理数据线程并关闭监听套接字后调用
|
||
virtual VOID DoStop();
|
||
|
||
|
||
//每次调用
|
||
VOID SingleRun();
|
||
|
||
|
||
private:
|
||
//设置数据库的相关参数
|
||
//VOID SetDbConnection();
|
||
|
||
/*
|
||
* 执行插入数据库操作,注意:如果执行出错,需要记录到文件日志里
|
||
* szSql:sql语句
|
||
*/
|
||
BOOL ExecSql(const char* szSql);
|
||
public:
|
||
CSrvConfig Config;
|
||
protected:
|
||
CSQLConenction Db;
|
||
|
||
volatile LONG m_boCreateTableStoped; //是否停止工作线程
|
||
HANDLE m_hCTThread;
|
||
UINT64 m_nextCreateTtableTick; //上一次的调用的tickCount
|
||
|
||
CQueueList<CChatLogClientSocket*> m_LogClientList;//客户端列表
|
||
};
|
||
|
||
|