eis/eqpalg/eqpalg_icei.h

73 lines
2.2 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.

#pragma once
/**
* @file eqpalg/eqpalg_icei.h
* @brief Ice接口文件
* @author Cat (null.null.null@qq.com)
* @version 0.1
* @date 2021-09-17
*
* Copyright: Baosight Co. Ltd.
* DO NOT COPY/USE WITHOUT PERMISSION
*
*/
#include <common/L2Event.h>
#include <dao/DbStandardDBAX.h>
#include <eqpalg/algorithm_manager.h>
#include <eqpalg/utility/update_data.h>
#include <proxy/MessageICE.h>
// #include <shm/RuleStatShm.h>
#include <memory>
#include <string>
#include <thread>
#include <utility>
/* Equipment object .h file define here */
#include <eqpalg/alg_base.h>
#include<eqpalg/utility/alarm_poster.h>
namespace baosight {
/**
* @brief Ice接口类实现其中包含了对不同电文的调用
*/
class EqpAlgICEI : virtual public MessageICE {
public:
/**
* @brief Construct a new Eqp Alg I C E I object
*/
EqpAlgICEI();
virtual ~EqpAlgICEI();
/**
* @brief 简单数据调用接口
*/
virtual void SendDataShort(::Ice::Int, const ::Ice::ByteSeq &, ::Ice::Int,
const Ice::Current &);
/**
* @brief 复杂数据调用接口
*/
virtual void SendDataLong(::Ice::Int, const ::Ice::ByteSeq &, ::Ice::Int,
const ::std::string &, const ::std::string &,
const ::std::string &, const Ice::Current &);
/**
* @brief 定时器调用接口
*/
virtual void TimeNotify(::Ice::Int, const ::Ice::ByteSeq &,
const Ice::Current &);
private:
std::unique_ptr<AlgorithmManager> alg_mgr_; ///< 算法管理器
std::unique_ptr<std::thread> mem_cached_thread_; ///< 更新共享内存的线程
std::unique_ptr<LOG> logger_; ///< 本地logger
bool is_running_; ///< 程序是否在运行
std::unique_ptr<UpDateData> up_date_data_ptr_; ///<更新数据
MessageICEPrx m_proxy2cron; ///< mon 向cron发送
MessageICEPrx m_proxy2dsm; ///< mon 向dsm发送最新的ruleid
bool is_rule_stat_data_updating_ =
false; ///< update_rule_stat_data 是否更新中
// MessageICEPrx m_proxy2task; ///< mon 向task发送
utility::AlarmPoster alarm_poster_; ///< 发送报警信息
};
} // namespace baosight