eis/eqpalg/utility/alarm_poster.h

76 lines
2.0 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @file mq_alarm.h
* @brief
* @author Cat (null.null.null@qq.com)
* @version 0.1
* @date 2021-09-24
*
* Copyright: Baosight Co. Ltd.
* DO NOT COPY/USE WITHOUT PERMISSION
*
*/
#pragma once
#include <eqpalg/define/public.h>
#include <eqpalg/gb_logger.h>
#include <glob/ProxyMag.h>
#include <memory>
#include <string>
using std::string;
namespace utility {
/**
* @brief 向消息队列发送报警信息,告知前端发生了报警
*/
class AlarmPoster {
private:
MessageICEPrx message_queue_proxy_; ///< 给消息队列发消息的Ice代理
// GbLogger logger_; ///< 内部的打印logger
std::unique_ptr<GbLogger> gb_logger_; ///< 全局logger指针
public:
AlarmPoster();
~AlarmPoster();
/**
* @brief 检查是否报警并刷新上一次报警的时间
* @param alarm_info 报警信息
* @param prev_alarm_time 上一次报警时间
* @return int
*/
int alarm(const AlarmInfo &alarm_info,
std::chrono::system_clock::time_point *prev_alarm_time);
/**
* @brief 接收 string 直接填写报警
* @param alarm_info My Param doc
* @return int
*/
int alarm(const std::string alarm_info);
/**
* @brief task 仅发送mq
* @param alarm_info My Param doc
* @param processType My Param doc
* @return int
*/
int alarm(const AlarmInfo &alarm_info, string processType);
/**
* @brief 报警通知,添加 remark
* @param alarm_info My Param doc
* @param prev_alarm_time My Param doc
* @param remark 0——播报1——单次2——循环
* @return int
*/
int alarm(const AlarmInfo &alarm_info,
std::chrono::system_clock::time_point *prev_alarm_time,
string remark);
/**
* @brief 其他mq消息发送
* @param event_no 定义的事件号
* @param content 消息内容
* @return true
* @return false
*/
bool zmqp_send(int event_no, const string &content);
};
} // namespace utility