#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 #include // #include using TimePoint = std::chrono::system_clock::time_point; namespace data_handler { template 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 get_rs_means(); vector get_rs_variances(); vector get_rs_stddev(); vector get_rs_skewness(); vector get_rs_kurtosis(); vector get_rs_max(); vector get_rs_min(); }; } // namespace data_handler