eis/eqpalg/eqpalg_icei.h

73 lines
2.2 KiB
C
Raw Normal View History

#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