#include "CacheFile.h" #include #include "DataFile.h" CacheFile::CacheFile(const std::string &module, const std::string &ext, const std::string &tag1, int tag2, int tag3, int tag4, int tag5, int tag6) { filepath = QString("cache/%1-%2-%3-%4-%5-%6-%7.%8").arg(QString::fromStdString(module)).arg(QString::fromStdString(tag1)).arg(tag2).arg(tag3).arg(tag4).arg(tag5).arg(tag6).arg(QString::fromStdString(ext)).toStdString(); } bool CacheFile::isReadable() { FILE* f = fopen(filepath.c_str(), "rb"); if (f) { fclose(f); return true; } else { std::string datapath = DataFile::findFile(filepath); if (datapath.empty()) { return false; } else { FILE* f = fopen(datapath.c_str(), "rb"); if (f) { fclose(f); return true; } else { return false; } } } } bool CacheFile::isWritable() { FILE* f = fopen("cache/.test", "wb"); if (f) { fclose(f); return true; } else { return false; } } std::string CacheFile::getPath() { std::string datapath = DataFile::findFile(filepath); if (datapath.empty()) { return filepath; } else { return datapath; } }