eis/eqpalg/eqpalg_icei.h

70 lines
1.7 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 <memory>
#include <string>
#include <thread>
#include <utility>
#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_;
bool is_running_;
std::unique_ptr<UpDateData> up_date_data_ptr_;
MessageICEPrx m_proxy2cron;
MessageICEPrx m_proxy2dsm;
bool is_rule_stat_data_updating_ =
false;
utility::AlarmPoster alarm_poster_;
};
}