eis/RICS/utility.h

91 lines
2.3 KiB
C
Raw Permalink Normal View History

#pragma once
/**
* @file utility.h
* @brief
* @author your name (you@domain.com)
* @version 0.1
* @date 2023-12-22
*
* Copyright: Baosight Co. Ltd.
* DO NOT COPY/USE WITHOUT PERMISSION
*
*/
#include <chrono>
#include <cmath>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <nlohmann/json.hpp>
#include <sstream>
#include <filesystem> // C++17 文件系统库
namespace fs = std::filesystem; // 简化命名空间
using namespace std::chrono;
using std::chrono::system_clock;
using TimePoint = system_clock::time_point;
using TimeDur = milliseconds;
namespace UtilityTools {
using json = nlohmann::json;
/**
* @brief
* @param time_point My Param doc
* @return TimePoint
*/
TimePoint time_point2zero(TimePoint time_point);
/**
* @brief ()
* @param time_point My Param doc
* @return int
*/
int time_point2second_zero(TimePoint time_point);
/**
* @brief
* @param seconds My Param doc
* @return TimePoint
*/
TimePoint second_zero2time_point(int seconds);
TimePoint millsecond_zero2time_point(int64_t millseconds);
/**
* @brief
* @param stime My Param doc
* @param etime My Param doc
* @return int
*/
int diff_days(TimePoint stime, TimePoint etime);
/**
* @brief str时间转chrono时间
* @param date My Param doc
* @param fmt My Param doc
* @return TimePoint
*/
TimePoint string2TimePoint(std::string date,
const std::string &fmt = "%Y-%m-%d %H:%M:%S");
/**
* @brief json文件
* @param path_ruleid My Param doc
* @param file_name_date My Param doc
* @param content My Param doc
* @param root_dir My Param doc
* @return int
* @return 0--1---1--
*/
int save_json_file(std::string path_ruleid,std::string file_name_date, json content,
std::string root_dir = "/dscdata/RuleNormData");
/**
* @brief json文件读取到 json
* @param file_path My Param doc
* @param sjson My Param doc
* @return true
* @return false
*/
bool jsonReader(std::string file_path, json &sjson);
bool create_path(std::string path);
bool is_file_exists(std::string file_path);
} // namespace UtilityTools