#include "CacheManager.h" #include #include #include #include CacheManager::CacheManager(const char* cache_path) : CacheManager(std::string(cache_path)) { } CacheManager::CacheManager(std::string cache_path) { this->cache_path = cache_path; this->verify_cache(); } CacheManager::~CacheManager() { for (std::fstream* file : this->files) { if (file != nullptr) { file->close(); delete file; file = nullptr; } } } void CacheManager::verify_cache() { if (!std::filesystem::is_directory(this->cache_path)) this->init_cache(); this->update_cache(); } void CacheManager::init_cache() { std::filesystem::create_directory(this->cache_path); this->update_cache(); } void CacheManager::update_cache() { std::fstream& date = *cache_get("date"); this->age = std::time(nullptr); date << this->age; } std::fstream* CacheManager::cache_get(const char* filename) { std::fstream* file = new std::fstream(prefix_cache_path(filename), std::ios::out | std::ios::in); this->files.push_back(file); return file; } bool CacheManager::cache_exists(const char* filename) { return std::filesystem::exists(prefix_cache_path(filename)); } std::string CacheManager::prefix_cache_path(const char* filename) { std::string out = this->cache_path; out.append(filename); return out; }