generated from zhangwei/Train_Identify
			
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
| /**
 | ||
|  * 过期数据删除引擎
 | ||
|  **/
 | ||
| 
 | ||
| #ifndef DELETEEXPIREDFOLDERENGINE_H
 | ||
| #define DELETEEXPIREDFOLDERENGINE_H
 | ||
| 
 | ||
| #include "AppCommon.h"
 | ||
| #include "EngineBase.h"
 | ||
| #include "EngineFactory.h"
 | ||
| #include "MyYaml.h"
 | ||
| #include "myutils.h"
 | ||
| 
 | ||
| // 定义日期结构体
 | ||
| struct Date
 | ||
| {
 | ||
|     int year;
 | ||
|     int month;
 | ||
|     int day;
 | ||
| };
 | ||
| 
 | ||
| class DeleteExpiredFolderEngine : public ai_matrix::EngineBase
 | ||
| {
 | ||
| public:
 | ||
|     DeleteExpiredFolderEngine();
 | ||
|     ~DeleteExpiredFolderEngine();
 | ||
| 
 | ||
|     APP_ERROR Init() override;
 | ||
|     APP_ERROR DeInit() override;
 | ||
|     APP_ERROR Process() override;
 | ||
| 
 | ||
| private:
 | ||
|     // 获取某月有多少天
 | ||
|     int DaysInMonth(int year, int month);
 | ||
|     // 解析字符串为日期结构体
 | ||
|     Date StrToDate(const std::string &date_str);
 | ||
|     // 减去指定天数
 | ||
|     void SubtractDays(Date &date, int n_days);
 | ||
|     // 格式化日期结构体为字符串
 | ||
|     std::string DateToStr(const Date &date);
 | ||
|     // 接收一个日期字符串和一个整数n,返回n天前的日期字符串
 | ||
|     std::string getDateBeforeNDays(const std::string &input_date, int n_days);
 | ||
|     void GetSubfolderNames(std::string &directory, std::vector<Date> &folder_names);
 | ||
|     void DeleteFolder(const std::string directory);
 | ||
|     // 删除向量中小于指定日期的所有元素
 | ||
|     void DeleteEarlierDatesFolder(std::string &path, std::vector<Date> &subfolders, const Date &reference_date);
 | ||
|     void DeletePreviousFolder(std::string path, const std::string &date, int n_days);
 | ||
| 
 | ||
| private:
 | ||
|     std::string strResultPath_;
 | ||
| 
 | ||
|     int iDaysNumber_;
 | ||
| };
 | ||
| 
 | ||
| ENGINE_REGIST(DeleteExpiredFolderEngine)
 | ||
| 
 | ||
| #endif
 |