#include #include #include "LocalFile.h" #include "Exception.h" LocalFile LocalFile::instance(protocol); void LocalFile::open(const std::string url) { std::string path = url; if (path.starts_with(protocol)) path = path.substr(protocol.size()); std::ifstream _file(path); if (!_file.is_open()) throw Exception("Cannot open file://%s\n", path.c_str()); } void LocalFile::close() { if (_file.is_open()) _file.close(); } const std::string LocalFile::read() { return std::string(std::istreambuf_iterator(_file), std::istreambuf_iterator()); } LocalFile::~LocalFile() { close(); } LocalFile * LocalFile::clone() const { return new LocalFile(this); } LocalFile::LocalFile(const LocalFile *) : File() { }