#pragma once #include #include #include "File.h" using FactoryMap = std::map; class FileReader { public: static File & open(const std::string url); private: FileReader() = default; virtual ~FileReader() = default; private: static void assign(const std::string type, const File * node); static FactoryMap & get_map(); static const File * find_reader(const std::string type); private: friend File; };