73 lines
2.2 KiB
C++
73 lines
2.2 KiB
C++
#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
|