#pragma once #include #include namespace DB { class ObjectStorageFactory final : private boost::noncopyable { public: using Creator = std::function; static ObjectStorageFactory & instance(); void registerObjectStorageType(const std::string & type, Creator creator); ObjectStoragePtr create( const std::string & name, const Poco::Util::AbstractConfiguration & config, const std::string & config_prefix, const ContextPtr & context, bool skip_access_check) const; private: using Registry = std::unordered_map; Registry registry; }; }