OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
importer.hpp
Go to the documentation of this file.
1 #ifndef MWINIIMPORTER_IMPORTER
2 #define MWINIIMPORTER_IMPORTER 1
3 
4 #include <string>
5 #include <map>
6 #include <vector>
7 #include <exception>
8 #include <iosfwd>
9 #include <boost/filesystem/path.hpp>
10 
12 
14  public:
15  typedef std::map<std::string, std::string> strmap;
16  typedef std::map<std::string, std::vector<std::string> > multistrmap;
17  typedef std::vector< std::pair< std::string, std::vector<std::string> > > dependencyList;
18 
19  MwIniImporter();
20  void setInputEncoding(const ToUTF8::FromType& encoding);
21  void setVerbose(bool verbose);
22  multistrmap loadIniFile(const boost::filesystem::path& filename) const;
23  static multistrmap loadCfgFile(const boost::filesystem::path& filename);
24  void merge(multistrmap &cfg, const multistrmap &ini) const;
25  void mergeFallback(multistrmap &cfg, const multistrmap &ini) const;
26  void importGameFiles(multistrmap &cfg, const multistrmap &ini,
27  const boost::filesystem::path& iniFilename) const;
28  void importArchives(multistrmap &cfg, const multistrmap &ini) const;
29  static void writeToFile(std::ostream &out, const multistrmap &cfg);
30 
31  static std::vector<std::string> dependencySort(MwIniImporter::dependencyList source);
32 
33  private:
34  static void dependencySortStep(std::string& element, MwIniImporter::dependencyList& source, std::vector<std::string>& result);
35  static std::vector<std::string>::iterator findString(std::vector<std::string>& source, const std::string& string);
36 
37  static void insertMultistrmap(multistrmap &cfg, const std::string& key, const std::string& value);
38  static void addPaths(std::vector<boost::filesystem::path>& output, std::vector<std::string> input);
39 
41  static std::time_t lastWriteTime(const boost::filesystem::path& filename, std::time_t defaultTime);
42 
43  bool mVerbose;
45  std::vector<std::string> mMergeFallback;
47 };
48 
49 #endif
static std::vector< std::string > dependencySort(MwIniImporter::dependencyList source)
Definition: importer.cpp:844
static void dependencySortStep(std::string &element, MwIniImporter::dependencyList &source, std::vector< std::string > &result)
Definition: importer.cpp:822
std::vector< std::string > mMergeFallback
Definition: importer.hpp:45
Definition: importer.hpp:13
static void addPaths(std::vector< boost::filesystem::path > &output, std::vector< std::string > input)
Definition: importer.cpp:862
void setInputEncoding(const ToUTF8::FromType &encoding)
Definition: importer.cpp:978
void importArchives(multistrmap &cfg, const multistrmap &ini) const
Definition: importer.cpp:789
static std::time_t lastWriteTime(const boost::filesystem::path &filename, std::time_t defaultTime)
Definition: importer.cpp:983
std::map< std::string, std::vector< std::string > > multistrmap
Definition: importer.hpp:16
void importGameFiles(multistrmap &cfg, const multistrmap &ini, const boost::filesystem::path &iniFilename) const
Definition: importer.cpp:873
static void insertMultistrmap(multistrmap &cfg, const std::string &key, const std::string &value)
Definition: importer.cpp:781
bool mVerbose
Definition: importer.hpp:43
strmap mMergeMap
Definition: importer.hpp:44
FromType
Definition: to_utf8.hpp:11
static multistrmap loadCfgFile(const boost::filesystem::path &filename)
Definition: importer.cpp:716
void merge(multistrmap &cfg, const multistrmap &ini) const
Definition: importer.cpp:752
static std::vector< std::string >::iterator findString(std::vector< std::string > &source, const std::string &string)
Definition: importer.cpp:854
void setVerbose(bool verbose)
Definition: importer.cpp:653
static void writeToFile(std::ostream &out, const multistrmap &cfg)
Definition: importer.cpp:969
MwIniImporter()
Definition: importer.cpp:14
std::vector< std::pair< std::string, std::vector< std::string > > > dependencyList
Definition: importer.hpp:17
std::map< std::string, std::string > strmap
Definition: importer.hpp:15
ToUTF8::FromType mEncoding
Definition: importer.hpp:46
multistrmap loadIniFile(const boost::filesystem::path &filename) const
Definition: importer.cpp:657
void mergeFallback(multistrmap &cfg, const multistrmap &ini) const
Definition: importer.cpp:764