eis/dsm/dsm_alg.h

61 lines
1.7 KiB
C
Raw Normal View History

#pragma once
/**
* @file dsm_alg.h
* @brief DsmMapConfig::TableNameZONE10) start end tags
* ihd获取数据
* @author your name (you@domain.com)
* @version 0.1
* @date 2025-10-10
*
* Copyright: Baosight Co. Ltd.
* DO NOT COPY/USE WITHOUT PERMISSION
*
*/
#include <common/Macro.h>
#include <dsm/data_query.h>
#include <dsm/public.h>
#include <glob/SingletonTemplate.h>
#include <log4cplus/LOG.h>
#include <memory>
#include <mix_cc/type/mix_time.h>
#include <mix_cc/type/range.h>
#include <nlohmann/json.hpp>
#include <string>
#include <vector>
#include <zlib/MemMap.hpp>
using json = nlohmann::json;
using namespace baosight;
class DsmAlg {
private:
const std::string RuleNormDataRootDir = "/dscdata/RuleNormData";
const std::string RuleAlertDataRootDir = "/dscdata/RuleAlertData";
std::unique_ptr<LOG> logger_;
std::unique_ptr<CMemMap<std::string, DataInfo>> ruleid_norminfo_;
DataQuery data_query_;
std::vector<std::string> need_ruleid_;
std::string get_root_dir(std::string data_type);
public:
DsmAlg();
~DsmAlg();
/**
* @brief ruleid
* 1.reluid start end tags
* 2. start end tags ihd数据
* 3.datatime
* :RuleNormDataRootDir/ruleid/yyyy-mm-dd.json
* :RuleAlertDataRootDir/ruleid/yyyy-mm-dd.json
* @param ruleid id
*/
void dsm_handle(std::string ruleid);
/**
* @brief
* 1. ruleid
* 2.ruleidruleid的key
* 3.dsm_handle
*/
void timed_task();
void dispose(int event_no, const ::Ice::ByteSeq &);
};