It has been a while since I last worked on Aesalon proper.
[aesalon.git] / monitor / src / misc / Configuration.h
blobbeca559226dcaefda563dab36c90b453024d00d2
1 #ifndef Configuration_H
2 #define Configuration_H
4 #include <map>
5 #include <vector>
7 #include "ConfigurationModule.h"
9 namespace Misc {
11 class Configuration {
12 public:
13 Configuration(char **argv);
14 ~Configuration();
15 private:
16 typedef std::map<std::string, ConfigurationModule *> ModuleMap;
17 ModuleMap m_moduleMap;
18 std::vector<std::string> m_launchArguments;
19 char **m_argv;
20 public:
21 ConfigurationModule *module(const std::string &name);
22 const std::vector<std::string> &launchArguments() const { return m_launchArguments; }
24 void processFile(const std::string &path);
25 void processSearchPaths();
26 void processArgv();
28 ConfigurationItem *traverse(std::string path);
29 private:
30 void addLaunchArgument(const std::string &argument);
33 } // namespace Misc
35 #endif