init
This commit is contained in:
172
Servers/服务器组件/游戏服务器/ServiceUnits.h
Normal file
172
Servers/服务器组件/游戏服务器/ServiceUnits.h
Normal file
@@ -0,0 +1,172 @@
|
||||
#ifndef SERVICE_UNITS_HEAD_FILE
|
||||
#define SERVICE_UNITS_HEAD_FILE
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Stdafx.h"
|
||||
#include "InitParameter.h"
|
||||
#include "AttemperEngineSink.h"
|
||||
#include "DataBaseEngineSink.h"
|
||||
#include "DBCorrespondManager.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//网络标示
|
||||
#define NETWORK_CORRESPOND 1 //协调连接
|
||||
|
||||
//消息定义
|
||||
#define WM_UICONTROL_REQUEST (WM_USER+100) //控制请求
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
//枚举定义
|
||||
|
||||
//服务状态
|
||||
enum enServiceStatus
|
||||
{
|
||||
ServiceStatus_Stop, //停止状态
|
||||
ServiceStatus_Config, //配置状态
|
||||
ServiceStatus_Service, //服务状态
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//状态接口
|
||||
interface IServiceUnitsSink
|
||||
{
|
||||
//接口定义
|
||||
public:
|
||||
//服务状态
|
||||
virtual VOID OnServiceUnitsStatus(enServiceStatus ServiceStatus)=NULL;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//服务单元
|
||||
class CServiceUnits : public CWnd
|
||||
{
|
||||
//友元定义
|
||||
friend class CAttemperEngineSink;
|
||||
friend class CDataBaseEngineSink;
|
||||
|
||||
//状态变量
|
||||
public:
|
||||
CInitParameter m_InitParameter; //配置参数
|
||||
enServiceStatus m_ServiceStatus; //运行状态
|
||||
|
||||
//组件配置
|
||||
protected:
|
||||
tagGameParameter m_GameParameter; //配置参数
|
||||
tagDataBaseParameter m_DataBaseParameter; //连接参数
|
||||
tagGameServiceAttrib m_GameServiceAttrib; //服务属性
|
||||
tagGameServiceOption m_GameServiceOption; //服务配置
|
||||
tagGameMatchOption m_GameMatchOption; //比赛信息
|
||||
|
||||
//组件变量
|
||||
private:
|
||||
CWHDataQueue m_DataQueue; //数据队列
|
||||
CCriticalSection m_CriticalSection; //同步对象
|
||||
|
||||
//服务组件
|
||||
public:
|
||||
CAttemperEngineSink m_AttemperEngineSink; //调度钩子
|
||||
CDataBaseEngineSink m_RecordDataBaseSink[4]; //数据钩子
|
||||
CDataBaseEngineSink m_KernelDataBaseSink[4]; //数据钩子
|
||||
|
||||
//数据组件
|
||||
public:
|
||||
CDBCorrespondManager m_DBCorrespondManager; //协调管理
|
||||
CDataBaseEngineHelper m_RecordDataBaseEngine; //数据引擎
|
||||
CDataBaseEngineHelper m_KernelDataBaseEngine; //数据引擎
|
||||
|
||||
//内核组件
|
||||
public:
|
||||
CTimerEngineHelper m_TimerEngine; //时间引擎
|
||||
CAttemperEngineHelper m_AttemperEngine; //调度引擎
|
||||
CTCPNetworkEngineHelper m_TCPNetworkEngine; //网络引擎
|
||||
CTCPSocketServiceHelper m_TCPSocketService; //网络服务
|
||||
CGameServiceManagerHelper m_GameServiceManager; //游戏模块
|
||||
CMatchServiceManagerHelper m_MatchServiceManager; //比赛管理
|
||||
CPrivateServiceManagerHelper m_PrivateServiceManager; //私人场管理
|
||||
|
||||
//接口变量
|
||||
protected:
|
||||
IServiceUnitsSink * m_pIServiceUnitsSink; //状态接口
|
||||
|
||||
//静态变量
|
||||
public:
|
||||
static CServiceUnits * g_pServiceUnits; //对象指针
|
||||
|
||||
//函数定义
|
||||
public:
|
||||
//构造函数
|
||||
CServiceUnits();
|
||||
//析构函数
|
||||
virtual ~CServiceUnits();
|
||||
|
||||
//信息函数
|
||||
public:
|
||||
//获取状态
|
||||
enServiceStatus GetServiceStatus() { return m_ServiceStatus; }
|
||||
|
||||
//请求控制
|
||||
public:
|
||||
//设置接口
|
||||
bool SetServiceUnitsSink(IServiceUnitsSink * pIServiceUnitsSink);
|
||||
//投递请求
|
||||
bool PostControlRequest(WORD wIdentifier, VOID * pData, WORD wDataSize);
|
||||
|
||||
//服务控制
|
||||
public:
|
||||
//启动服务
|
||||
bool StartService();
|
||||
//停止服务
|
||||
bool ConcludeService();
|
||||
//服务器维护
|
||||
bool MaintainService(BYTE cbFlag);
|
||||
//发送系统消息
|
||||
bool SendSystemMessage(CMD_CM_SystemMessage* pMsg);
|
||||
//解锁本服务器所有玩家
|
||||
bool UnlockAllUser();
|
||||
//更新版本
|
||||
bool UpDateVersion();
|
||||
//游戏配置
|
||||
bool CollocateService(LPCTSTR pszGameModule, tagGameServiceOption & GameServiceOption);
|
||||
//游戏配置
|
||||
bool CollocateService(tagGameMatchOption & GameMatchOption);
|
||||
|
||||
|
||||
//辅助函数
|
||||
protected:
|
||||
//创建模块
|
||||
bool CreateServiceDLL();
|
||||
//配置组件
|
||||
bool InitializeService();
|
||||
//配置文件
|
||||
bool InitParameter();
|
||||
//启动内核
|
||||
bool StartKernelService();
|
||||
//启动网络
|
||||
bool StartNetworkService();
|
||||
//调整参数
|
||||
bool RectifyServiceParameter();
|
||||
|
||||
//内部函数
|
||||
private:
|
||||
//设置状态
|
||||
bool SetServiceStatus(enServiceStatus ServiceStatus);
|
||||
//发送控制
|
||||
bool SendControlPacket(WORD wControlID, VOID * pData, WORD wDataSize);
|
||||
//连接信息
|
||||
bool LoadDataBaseParameter(LPCTSTR pszDataBaseAddr, LPCTSTR pszDataBaseName, tagDataBaseParameter & DataBaseParameter);
|
||||
|
||||
//消息映射
|
||||
protected:
|
||||
//控制消息
|
||||
LRESULT OnUIControlRequest(WPARAM wParam, LPARAM lParam);
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user