| | |
| | | std::string strEndTime; // 结束时间 |
| | | }; |
| | | |
| | | using AlarmMap = std::unordered_map<int, AlarmInfo>; |
| | | using AlarmInfoMap = std::unordered_map<int, AlarmInfo>; |
| | | using AlarmDataMap = std::unordered_map<int, AlarmData>; |
| | | |
| | | class AlarmManager { |
| | | public: |
| | |
| | | * @return AlarmManager实例的引用 |
| | | */ |
| | | static AlarmManager& getInstance(); |
| | | |
| | | /** |
| | | * 设置数据库连接 |
| | | * @param db 数据库连接的指针 |
| | | */ |
| | | void setDatabase(BL::Database* db); |
| | | |
| | | /** |
| | | * 初始化报警表 |
| | |
| | | /** |
| | | * 添加报警 |
| | | * @param alarmData 报警数据的结构体 |
| | | * @param alarmEventId 最近插入的 alarm_event_id |
| | | * @return 成功返回true,失败返回false |
| | | */ |
| | | bool addAlarm(const AlarmData& alarmData); |
| | | bool addAlarm(const AlarmData& alarmData, int& alarmEventId); |
| | | |
| | | /** |
| | | * 查询所有报警数据 |
| | |
| | | */ |
| | | std::string getUnitNameById(int deviceId, int unitId); |
| | | |
| | | /** |
| | | * 获取最近插入的 alarm_event_id |
| | | * @return 失败返回-1,成功返回最近插入的 alarm_event_id |
| | | */ |
| | | int getLastInsertId(); |
| | | |
| | | /** |
| | | * 通过事件id解除报警(更新结束时间) |
| | | * @param alarmEventId 事件ID |
| | | * @param endTime 结束时间 |
| | | * @return 成功返回true,失败返回false |
| | | */ |
| | | bool clearAlarmByEventId(int alarmEventId, const std::string& endTime); |
| | | |
| | | /** |
| | | * 通过多个属性查找并解除报警(更新结束时间) |
| | | * @param nId 报警ID |
| | | * @param nSeverityLevel 报警等级 |
| | | * @param nDeviceId 设备ID |
| | | * @param nUnitId 单元ID |
| | | * @param strDescription 描述 |
| | | * @param endTime 结束时间 |
| | | * @return 成功返回true,失败返回false |
| | | */ |
| | | bool clearAlarmByAttributes(int nId, int nDeviceId, int nUnitId, const std::string& endTime); |
| | | |
| | | /** |
| | | * 读取报警文件 |
| | | * @param filename 文件名 |
| | |
| | | AlarmManager& operator=(const AlarmManager&) = delete; |
| | | |
| | | BL::Database* m_pDB; |
| | | AlarmMap m_mapAlarm; |
| | | AlarmInfoMap m_mapAlarm; |
| | | AlarmDataMap m_mapCache; |
| | | static std::mutex m_mutex; |
| | | }; |
| | | |