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; | 	std::string paths; | ||||||
| 	for(auto& p : CResourceHandler::get()->getResourceNames(ResourceID("config/" + name))) | 	for(auto& p : CResourceHandler::get()->getResourceNames(ResourceID("config/" + name))) | ||||||
| 	{ | 	{ | ||||||
| 		paths += p + ", "; | 		paths += p.string() + ", "; | ||||||
| 	} | 	} | ||||||
| 	paths = paths.substr(0, paths.size() - 2); | 	paths = paths.substr(0, paths.size() - 2); | ||||||
| 	logGlobal->debugStream() << "Loading hardcoded features settings from [" << paths << "], result:"; | 	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>(); | 	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)) | 	for(auto& loader : getResourcesWithName(resourceName)) | ||||||
| 	{ | 	{ | ||||||
| 		auto rn = loader->getResourceName(resourceName); | 		auto rn = loader->getResourceName(resourceName); | ||||||
|   | |||||||
| @@ -1,87 +1,87 @@ | |||||||
| #pragma once | #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; |  | ||||||
|  |  | ||||||
| public: | /* | ||||||
| 	CFilesystemList(); |  * AdapterLoaders.h, part of VCMI engine | ||||||
| 	~CFilesystemList(); |  * | ||||||
| 	/// Interface implementation |  * Authors: listed in file AUTHORS in main folder | ||||||
| 	/// @see ISimpleResourceLoader |  * | ||||||
| 	std::unique_ptr<CInputStream> load(const ResourceID & resourceName) const override; |  * License: GNU General Public License v2.0 or later | ||||||
| 	bool existsResource(const ResourceID & resourceName) const override; |  * Full text of license available in license.txt file, in main folder | ||||||
| 	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; | #include "ISimpleResourceLoader.h" | ||||||
| 	bool createResource(std::string filename, bool update = false) override; | #include "ResourceID.h" | ||||||
| 	std::vector<const ISimpleResourceLoader *> getResourcesWithName(const ResourceID & resourceName) const override; |  | ||||||
|  | class CFileInfo; | ||||||
| 	/** | class CInputStream; | ||||||
| 	 * Adds a resource loader to the loaders list | class JsonNode; | ||||||
| 	 * Passes loader ownership to this object |  | ||||||
| 	 * | /** | ||||||
| 	 * @param loader The simple resource loader object to add |  * Class that implements file mapping (aka *nix symbolic links) | ||||||
| 	 * @param writeable - resource shall be treated as writeable |  * Uses json file as input, content is map: | ||||||
| 	 */ |  * "fileA.txt" : "fileB.txt" | ||||||
| 	void addLoader(ISimpleResourceLoader * loader, bool writeable); |  * 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. | 	 * @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); | 		auto rn = getResourceName(resourceName); | ||||||
| 		if(rn) | 		if(rn) | ||||||
| 		{ | 		{ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user