mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	Fix build.
This commit is contained in:
		| @@ -554,7 +554,7 @@ void CModHandler::loadConfigFromFile (std::string name) | ||||
| 	std::string paths; | ||||
| 	for(auto& p : CResourceHandler::get()->getResourceNames(ResourceID("config/" + name))) | ||||
| 	{ | ||||
| 		paths += p + ", "; | ||||
| 		paths += p.string() + ", "; | ||||
| 	} | ||||
| 	paths = paths.substr(0, paths.size() - 2); | ||||
| 	logGlobal->debugStream() << "Loading hardcoded features settings from [" << paths << "], result:"; | ||||
|   | ||||
| @@ -87,9 +87,9 @@ boost::optional<boost::filesystem::path> CFilesystemList::getResourceName(const | ||||
| 	return boost::optional<boost::filesystem::path>(); | ||||
| } | ||||
|  | ||||
| std::set<std::string> CFilesystemList::getResourceNames(const ResourceID & resourceName) const | ||||
| std::set<boost::filesystem::path> CFilesystemList::getResourceNames(const ResourceID & resourceName) const | ||||
| { | ||||
| 	std::set<std::string> paths; | ||||
| 	std::set<boost::filesystem::path> paths; | ||||
| 	for(auto& loader : getResourcesWithName(resourceName)) | ||||
| 	{ | ||||
| 		auto rn = loader->getResourceName(resourceName); | ||||
|   | ||||
| @@ -1,87 +1,87 @@ | ||||
| #pragma once | ||||
|  | ||||
| /* | ||||
|  * AdapterLoaders.h, part of VCMI engine | ||||
|  * | ||||
|  * Authors: listed in file AUTHORS in main folder | ||||
|  * | ||||
|  * License: GNU General Public License v2.0 or later | ||||
|  * Full text of license available in license.txt file, in main folder | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| #include "ISimpleResourceLoader.h" | ||||
| #include "ResourceID.h" | ||||
|  | ||||
| class CFileInfo; | ||||
| class CInputStream; | ||||
| class JsonNode; | ||||
|  | ||||
| /** | ||||
|  * Class that implements file mapping (aka *nix symbolic links) | ||||
|  * Uses json file as input, content is map: | ||||
|  * "fileA.txt" : "fileB.txt" | ||||
|  * Note that extension is necessary, but used only to determine type | ||||
|  * | ||||
|  * fileA - file which will be replaced | ||||
|  * fileB - file which will be used as replacement | ||||
|  */ | ||||
| class DLL_LINKAGE CMappedFileLoader : public ISimpleResourceLoader | ||||
| { | ||||
| public: | ||||
| 	/** | ||||
| 	 * Ctor. | ||||
| 	 * | ||||
| 	 * @param config Specifies filesystem configuration | ||||
| 	 */ | ||||
| 	explicit CMappedFileLoader(const std::string &mountPoint, const JsonNode & config); | ||||
|  | ||||
| 	/// Interface implementation | ||||
| 	/// @see ISimpleResourceLoader | ||||
| 	std::unique_ptr<CInputStream> load(const ResourceID & resourceName) const override; | ||||
| 	bool existsResource(const ResourceID & resourceName) const override; | ||||
| 	std::string getMountPoint() const override; | ||||
| 	boost::optional<boost::filesystem::path> getResourceName(const ResourceID & resourceName) const override; | ||||
| 	std::unordered_set<ResourceID> getFilteredFiles(std::function<bool(const ResourceID &)> filter) const override; | ||||
|  | ||||
| private: | ||||
| 	/** A list of files in this map | ||||
| 	 * key = ResourceID for resource loader | ||||
| 	 * value = ResourceID to which file this request will be redirected | ||||
| 	*/ | ||||
| 	std::unordered_map<ResourceID, ResourceID> fileList; | ||||
| }; | ||||
|  | ||||
| class DLL_LINKAGE CFilesystemList : public ISimpleResourceLoader | ||||
| { | ||||
| 	std::vector<std::unique_ptr<ISimpleResourceLoader> > loaders; | ||||
|  | ||||
| 	std::set<ISimpleResourceLoader *> writeableLoaders; | ||||
|  | ||||
| 	//FIXME: this is only compile fix, should be removed in the end | ||||
| 	CFilesystemList(CFilesystemList &) = delete; | ||||
| 	CFilesystemList &operator=(CFilesystemList &) = delete; | ||||
| #pragma once | ||||
|  | ||||
| public: | ||||
| 	CFilesystemList(); | ||||
| 	~CFilesystemList(); | ||||
| 	/// Interface implementation | ||||
| 	/// @see ISimpleResourceLoader | ||||
| 	std::unique_ptr<CInputStream> load(const ResourceID & resourceName) const override; | ||||
| 	bool existsResource(const ResourceID & resourceName) const override; | ||||
| 	std::string getMountPoint() const override; | ||||
| 	boost::optional<boost::filesystem::path> getResourceName(const ResourceID & resourceName) const override; | ||||
| 	std::set<std::string> getResourceNames(const ResourceID & resourceName) const override; | ||||
| 	std::unordered_set<ResourceID> getFilteredFiles(std::function<bool(const ResourceID &)> filter) const override; | ||||
| 	bool createResource(std::string filename, bool update = false) override; | ||||
| 	std::vector<const ISimpleResourceLoader *> getResourcesWithName(const ResourceID & resourceName) const override; | ||||
|  | ||||
| 	/** | ||||
| 	 * Adds a resource loader to the loaders list | ||||
| 	 * Passes loader ownership to this object | ||||
| 	 * | ||||
| 	 * @param loader The simple resource loader object to add | ||||
| 	 * @param writeable - resource shall be treated as writeable | ||||
| 	 */ | ||||
| 	void addLoader(ISimpleResourceLoader * loader, bool writeable); | ||||
| }; | ||||
| /* | ||||
|  * AdapterLoaders.h, part of VCMI engine | ||||
|  * | ||||
|  * Authors: listed in file AUTHORS in main folder | ||||
|  * | ||||
|  * License: GNU General Public License v2.0 or later | ||||
|  * Full text of license available in license.txt file, in main folder | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| #include "ISimpleResourceLoader.h" | ||||
| #include "ResourceID.h" | ||||
|  | ||||
| class CFileInfo; | ||||
| class CInputStream; | ||||
| class JsonNode; | ||||
|  | ||||
| /** | ||||
|  * Class that implements file mapping (aka *nix symbolic links) | ||||
|  * Uses json file as input, content is map: | ||||
|  * "fileA.txt" : "fileB.txt" | ||||
|  * Note that extension is necessary, but used only to determine type | ||||
|  * | ||||
|  * fileA - file which will be replaced | ||||
|  * fileB - file which will be used as replacement | ||||
|  */ | ||||
| class DLL_LINKAGE CMappedFileLoader : public ISimpleResourceLoader | ||||
| { | ||||
| public: | ||||
| 	/** | ||||
| 	 * Ctor. | ||||
| 	 * | ||||
| 	 * @param config Specifies filesystem configuration | ||||
| 	 */ | ||||
| 	explicit CMappedFileLoader(const std::string &mountPoint, const JsonNode & config); | ||||
|  | ||||
| 	/// Interface implementation | ||||
| 	/// @see ISimpleResourceLoader | ||||
| 	std::unique_ptr<CInputStream> load(const ResourceID & resourceName) const override; | ||||
| 	bool existsResource(const ResourceID & resourceName) const override; | ||||
| 	std::string getMountPoint() const override; | ||||
| 	boost::optional<boost::filesystem::path> getResourceName(const ResourceID & resourceName) const override; | ||||
| 	std::unordered_set<ResourceID> getFilteredFiles(std::function<bool(const ResourceID &)> filter) const override; | ||||
|  | ||||
| private: | ||||
| 	/** A list of files in this map | ||||
| 	 * key = ResourceID for resource loader | ||||
| 	 * value = ResourceID to which file this request will be redirected | ||||
| 	*/ | ||||
| 	std::unordered_map<ResourceID, ResourceID> fileList; | ||||
| }; | ||||
|  | ||||
| class DLL_LINKAGE CFilesystemList : public ISimpleResourceLoader | ||||
| { | ||||
| 	std::vector<std::unique_ptr<ISimpleResourceLoader> > loaders; | ||||
|  | ||||
| 	std::set<ISimpleResourceLoader *> writeableLoaders; | ||||
|  | ||||
| 	//FIXME: this is only compile fix, should be removed in the end | ||||
| 	CFilesystemList(CFilesystemList &) = delete; | ||||
| 	CFilesystemList &operator=(CFilesystemList &) = delete; | ||||
|  | ||||
| public: | ||||
| 	CFilesystemList(); | ||||
| 	~CFilesystemList(); | ||||
| 	/// Interface implementation | ||||
| 	/// @see ISimpleResourceLoader | ||||
| 	std::unique_ptr<CInputStream> load(const ResourceID & resourceName) const override; | ||||
| 	bool existsResource(const ResourceID & resourceName) const override; | ||||
| 	std::string getMountPoint() const override; | ||||
| 	boost::optional<boost::filesystem::path> getResourceName(const ResourceID & resourceName) const override; | ||||
| 	std::set<boost::filesystem::path> getResourceNames(const ResourceID & resourceName) const override; | ||||
| 	std::unordered_set<ResourceID> getFilteredFiles(std::function<bool(const ResourceID &)> filter) const override; | ||||
| 	bool createResource(std::string filename, bool update = false) override; | ||||
| 	std::vector<const ISimpleResourceLoader *> getResourcesWithName(const ResourceID & resourceName) const override; | ||||
|  | ||||
| 	/** | ||||
| 	 * Adds a resource loader to the loaders list | ||||
| 	 * Passes loader ownership to this object | ||||
| 	 * | ||||
| 	 * @param loader The simple resource loader object to add | ||||
| 	 * @param writeable - resource shall be treated as writeable | ||||
| 	 */ | ||||
| 	void addLoader(ISimpleResourceLoader * loader, bool writeable); | ||||
| }; | ||||
|   | ||||
| @@ -58,9 +58,9 @@ public: | ||||
| 	 * | ||||
| 	 * @return std::set with names. | ||||
| 	 */ | ||||
| 	virtual std::set<std::string> getResourceNames(const ResourceID & resourceName) const | ||||
| 	virtual std::set<boost::filesystem::path> getResourceNames(const ResourceID & resourceName) const | ||||
| 	{ | ||||
| 		std::set<std::string> result; | ||||
| 		std::set<boost::filesystem::path> result; | ||||
| 		auto rn = getResourceName(resourceName); | ||||
| 		if(rn) | ||||
| 		{ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user