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
|