mirror of
				https://github.com/TES3MP/openmw-tes3mp.git
				synced 2025-11-04 10:26:42 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			76 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef COMPONENTS_FILES_CONFIGURATIONMANAGER_HPP
 | 
						|
#define COMPONENTS_FILES_CONFIGURATIONMANAGER_HPP
 | 
						|
 | 
						|
#ifdef _WIN32
 | 
						|
#include <boost/tr1/tr1/unordered_map>
 | 
						|
#elif defined HAVE_UNORDERED_MAP
 | 
						|
#include <unordered_map>
 | 
						|
#else
 | 
						|
#include <tr1/unordered_map>
 | 
						|
#endif
 | 
						|
 | 
						|
#include <boost/program_options.hpp>
 | 
						|
 | 
						|
#include <components/files/fixedpath.hpp>
 | 
						|
#include <components/files/collections.hpp>
 | 
						|
 | 
						|
/**
 | 
						|
 * \namespace Files
 | 
						|
 */
 | 
						|
namespace Files
 | 
						|
{
 | 
						|
 | 
						|
/**
 | 
						|
 * \struct ConfigurationManager
 | 
						|
 */
 | 
						|
struct ConfigurationManager
 | 
						|
{
 | 
						|
    ConfigurationManager();
 | 
						|
    virtual ~ConfigurationManager();
 | 
						|
 | 
						|
    void readConfiguration(boost::program_options::variables_map& variables,
 | 
						|
        boost::program_options::options_description& description);
 | 
						|
 | 
						|
    void processPaths(Files::PathContainer& dataDirs, bool create = false);
 | 
						|
    ///< \param create Try creating the directory, if it does not exist.
 | 
						|
 | 
						|
    /**< Fixed paths */
 | 
						|
    const boost::filesystem::path& getGlobalPath() const;
 | 
						|
    const boost::filesystem::path& getUserConfigPath() const;
 | 
						|
    const boost::filesystem::path& getLocalPath() const;
 | 
						|
 | 
						|
    const boost::filesystem::path& getGlobalDataPath() const;
 | 
						|
    const boost::filesystem::path& getUserDataPath() const;
 | 
						|
    const boost::filesystem::path& getLocalDataPath() const;
 | 
						|
    const boost::filesystem::path& getInstallPath() const;
 | 
						|
 | 
						|
    const boost::filesystem::path& getCachePath() const;
 | 
						|
 | 
						|
    const boost::filesystem::path& getLogPath() const;
 | 
						|
 | 
						|
    private:
 | 
						|
        typedef Files::FixedPath<> FixedPathType;
 | 
						|
 | 
						|
        typedef const boost::filesystem::path& (FixedPathType::*path_type_f)() const;
 | 
						|
	#if defined HAVE_UNORDERED_MAP
 | 
						|
            typedef std::unordered_map<std::string, path_type_f> TokensMappingContainer;
 | 
						|
	#else
 | 
						|
            typedef std::tr1::unordered_map<std::string, path_type_f> TokensMappingContainer;
 | 
						|
	#endif
 | 
						|
 | 
						|
        void loadConfig(const boost::filesystem::path& path,
 | 
						|
            boost::program_options::variables_map& variables,
 | 
						|
            boost::program_options::options_description& description);
 | 
						|
 | 
						|
        void setupTokensMapping();
 | 
						|
 | 
						|
        FixedPathType mFixedPath;
 | 
						|
 | 
						|
        boost::filesystem::path mLogPath;
 | 
						|
 | 
						|
        TokensMappingContainer mTokensMapping;
 | 
						|
};
 | 
						|
 | 
						|
} /* namespace Cfg */
 | 
						|
 | 
						|
#endif /* COMPONENTS_FILES_CONFIGURATIONMANAGER_HPP */
 |