void TileCache::saveRendering(const std::string& name, const std::string& dir, const char *data, size_t size) { // can fonts be invalidated? const std::string dirName = _cacheDir + "/" + dir; File(dirName).createDirectories(); const std::string fileName = dirName + "/" + name; std::fstream outStream(fileName, std::ios::out); outStream.write(data, size); outStream.close(); }
std::unique_ptr<std::fstream> TileCache::lookupRendering(const std::string& name, const std::string& dir) { const std::string dirName = _cacheDir + "/" + dir; const std::string fileName = dirName + "/" + name; File directory(dirName); if (directory.exists() && directory.isDirectory() && File(fileName).exists()) { std::unique_ptr<std::fstream> result(new std::fstream(fileName, std::ios::in)); return result; } return nullptr; }
AvailableTickets::AvailableTickets(string atf_file) { File file = File(atf_file); if (file.exists()) { this->atf_file = atf_file; /* Parse the available tickets file */ this->parse(); } else { throw Exception(ATF_NOT_FOUND); } }
void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) { response.setChunkedTransferEncoding(true); //response.setContentType("text/html"); Path path(_file); if (File(path).exists()) { std::string mime = "application/binary"; std::string ext = path.getExtension(); if (ext == "html" || ext == "htm" || ext == "js" || ext == "css" || ext == "xml") mime = "text/" + ext; response.sendFile(_file, mime); } else { response.setStatusAndReason(HTTPResponse::HTTP_NOT_FOUND); response.send(); } }
TileCache::TileCache(const std::string& docURL, const Timestamp& modifiedTime, const std::string& cacheDir) : _docURL(docURL), _cacheDir(cacheDir) { Log::info() << "TileCache ctor for uri [" << _docURL << "] modifiedTime=" << (modifiedTime.raw()/1000000) << " getLastModified()=" << (getLastModified().raw()/1000000) << Log::end; File directory(_cacheDir); if (directory.exists() && (getLastModified() < modifiedTime || getTextFile("unsaved.txt") != "")) { // Document changed externally or modifications were not saved after all. Cache not useful. Util::removeFile(_cacheDir, true); Log::info("Completely cleared tile cache: " + _cacheDir); } File(_cacheDir).createDirectories(); saveLastModified(modifiedTime); }