eis/eqpalg/.do_not_use/data_handler/frame.h

66 lines
1.5 KiB
C++

#pragma once
/**
* @file frame.h
* @brief 对数据进行预处理和存储/载入的类
* @author Cat (null.null.null@qq.com)
* @version 0.1
* @date 2021-09-10
*
* Copyright: Baosight Co. Ltd.
* DO NOT COPY/USE WITHOUT PERMISSION
*
*/
#include <eqpalg/data_handler/rs_mgr.h>
#include <eqpalg/data_handler/approximate_data.h>
// #include <eqpalg/data_handler/flatten_data.h>
using TimePoint = std::chrono::system_clock::time_point;
namespace data_handler {
template <class DataPolicy>
class Frame {
private:
// StoragePolicy storage_policy_;
std::string rule_id_;
RsMgr rs_mgr_;
DataPolicy data_mgr_;
LOG logger_;
TimePoint last_cron_time_;
bool is_have_info_ = true; ///< db2是否有步长
public:
Frame(const std::string& ruleId, size_t dims);
~Frame() = default;
int load();
/**
* @brief 查看是否有步长
* @return true
* @return false
*/
bool look_have_info() { return this->is_have_info_; }
bool is_first_sampling();
int first_sampling_bath(const SampleWindow& input_data, TimePoint tp);
int store(const SamplePoint& data_array);
int commit();
Rs get_running_stats();
SampleWindow get_extracted_data();
int put_data_to_rs(const SampleWindow& input_data);
vector<double> get_rs_means();
vector<double> get_rs_variances();
vector<double> get_rs_stddev();
vector<double> get_rs_skewness();
vector<double> get_rs_kurtosis();
vector<double> get_rs_max();
vector<double> get_rs_min();
};
} // namespace data_handler