📄 eventengineunit.h
字号:
//---------------------------------------------------------------------------
/*
* Copyright (c) 2008,杭州中正生物认证技术有限公司
* All rights reserved.
* 文件名称:EventEngineUnit.h
* 文件标识:见配置管理计划书
* 摘 要:
本头文件定义事件消息引擎类,引擎维护日志消息获取,提取,消息队列管理等。
作 者:王从骏
*/
//---------------------------------------------------------------------------
#ifndef EventEngineUnitH
#define EventEngineUnitH
#include <ComCtrls.hpp>
#include "EnguardCommon.h"
#include "DeviceAccessUnit.h"
const int MAX_DEVICE_COUNT = 256; //最多设备数
//LogInfoBase_T的迭代器
typedef list<LogInfoBase_T>::iterator IterLogInfoBase_T;
//日志消息信息列表类型
typedef list<LogInfoBase_T> LogInfoBaseArray_T;
//设备
typedef struct
{
TTimer* DiviceTimer;
int DeviceHandle;
int DeviceID;
int MaxLogID;
}DeviceTimer_T,*pDeviceTimer_T;
//---------------------------------------------------------------------------
//事件消息引擎类
class TEventEngine
{
private:
LogInfoBaseArray_T LogEventQueue; //事件消息队列
DeviceInfoArray_T DeviceInfoQueue; //设备配置信息队列
DeviceTimer_T DeviceTimerList[MAX_DEVICE_COUNT];
bool ActiveStatus;
int ErrCount; //异常计时器
int ActiveDeviceCount; //在线设备数量
int DeviceCount; //所有设备数量
TDeviceAccess* pDevice;
int GetDeviceList();
void __fastcall OnTimer(TObject *Sender);
int IntiEngine();
int UnintiEngine();
public:
TEventEngine();
~TEventEngine();
int StartEngine(); //启动引擎
int StopEngine(); //结束引擎
int RestartEngine();
int StopDevice(int iDeviceID); //停止设备
int StartDevice(int iDeviceID); //启动设备
bool GetDeviceCount(int &oSumCount,int& oActiveCount); //得到设备数量
bool GetDeviceInfo(int iDeviceID,DeviceInfo_T* oDeviceInfo); //得到当前设备信息
int GetDeviceHandle(int iDeviceID);
bool ReleaseDeviceHandle(int iDeviceID,int iDeviceHandle);
bool IsExistDeviceInfo(int iDeviceID); //判断设备是否存在
int PushEventLog(LogInfoBase_T iLogInfo);
int PopEventLog(LogInfoBase_T& oLogInfo); //日志消息出队列
bool IsActive(); //引擎是否启用
};
//---------------------------------------------------------------------------
//得到事件引擎类实例
extern TEventEngine* GetEventEngineInstance();
//---------------------------------------------------------------------------
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -