KindConfig.h 831 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef Kind_CONFIG_H
  2. #define Kind_CONFIG_H
  3. #include <fstream>
  4. #include <map>
  5. #include <string>
  6. #include "Strings.h"
  7. #include "stringtools.h"
  8. class KindConfig
  9. {
  10. public:
  11. KindConfig() {}
  12. KindConfig(const std::string& fn);
  13. KindConfig(std::istream& is);
  14. void addFile(const std::string& fn);
  15. void addFile(std::istream& is);
  16. void add(const std::string& key, const std::string& value)
  17. {
  18. settings[key].push_back(value);
  19. }
  20. bool hasKey(std::string key) const;
  21. std::string getString(std::string key) const;
  22. Strings getStrings(std::string key) const;
  23. bool getBool(std::string key) const;
  24. void print() const;
  25. private:
  26. void split(const std::string& line,
  27. std::string& key,
  28. std::string& del,
  29. std::string& value);
  30. std::map<std::string, Strings> settings;
  31. };
  32. #endif