#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 #include #include #include #include #include #include #include #include #include #include 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 alg_mgr_; std::unique_ptr mem_cached_thread_; std::unique_ptr logger_; bool is_running_; std::unique_ptr up_date_data_ptr_; MessageICEPrx m_proxy2cron; MessageICEPrx m_proxy2dsm; bool is_rule_stat_data_updating_ = false; utility::AlarmPoster alarm_poster_; }; }