#ifndef ATTEMPER_ENGINE_HEAD_FILE #define ATTEMPER_ENGINE_HEAD_FILE #pragma once //组件头文件 #include "KernelEngineHead.h" #include "QueueService.h" ////////////////////////////////////////////////////////////////////////// //调度管理类 class CAttemperEngine : public IAttemperEngine, public IQueueServiceSink, public IDataBaseEngineEvent, public ITCPNetworkEngineEvent { //核心变量 protected: bool m_bService; //运行标志 CQueueService m_QueueService; //队列对象 CCriticalSection m_CriticalSection; //同步锁定 //接口变量 protected: ITCPSocketService * m_pITCPSocketService; //网络引擎 ITCPNetworkEngine * m_pTCPNetworkEngine; //网络引擎 IAttemperEngineSink * m_pIAttemperEngineSink; //挂接接口 //机器人链接维护 protected: CWHArray m_AndroidUserSocketIDArray; //机器人连接 //函数定义 public: //构造函数 CAttemperEngine(void); //析构函数 virtual ~CAttemperEngine(void); //基础接口 public: //释放对象 virtual VOID Release() { if (IsValid()) delete this; } //是否有效 virtual bool IsValid() { return AfxIsValidAddress(this, sizeof(CAttemperEngine)) ? true : false; } //接口查询 virtual void * QueryInterface(const IID & Guid, DWORD dwQueryVer); //管理接口 public: //启动服务 virtual bool StartService(); //停止服务 virtual bool ConcludeService(); //调度引擎 public: //设置网络 virtual bool SetNetworkEngine(IUnknownEx * pIUnknownEx); //注册钩子 virtual bool SetAttemperEngineSink(IUnknownEx * pIUnknownEx); //自定事件 virtual bool OnEventCustom(WORD wRequestID, VOID * pData, WORD wDataSize); //控制事件 virtual bool OnEventControl(WORD wControlID, VOID * pData, WORD wDataSize); //队列接口 public: //触发接口 virtual void OnQueueServiceSink(WORD wIdentifier, void * pBuffer, WORD wDataSize/*, DWORD dwInsertTime*/); //接口定义 public: //数据库结果 virtual bool OnEventDataBaseResult(WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize); //机器模拟接口 public: //应答事件 virtual bool OnEventTCPNetworkBind(DWORD dwSocketID, DWORD dwClientIP); //关闭事件 virtual bool OnEventTCPNetworkShut(DWORD dwSocketID, DWORD dwClientIP, DWORD dwActiveTime); //读取事件 virtual bool OnEventTCPNetworkRead(DWORD dwSocketID, TCP_Command Command, VOID * pData, WORD wDataSize); public: //设置网络 virtual bool SetSocketEngine(IUnknownEx * pIUnknownEx); //获取接口 virtual void * GetQueueService(const IID & Guid, DWORD dwQueryVer); }; ////////////////////////////////////////////////////////////////////////// #endif