| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #ifndef HV_INI_PARSER_H_
- #define HV_INI_PARSER_H_
- #include <string>
- #include <list>
- #include "hexport.h"
- #define DEFAULT_INI_COMMENT "#"
- #define DEFAULT_INI_DELIM "="
- // fwd
- class IniNode;
- class HV_EXPORT IniParser {
- public:
- IniParser();
- ~IniParser();
- int LoadFromFile(const char* filepath);
- int LoadFromMem(const char* data);
- int Unload();
- int Reload();
- std::string DumpString();
- int Save();
- int SaveAs(const char* filepath);
-
- std::list<std::string> GetKeys(const std::string& section = "");
- std::string GetValue(const std::string& key, const std::string& section = "");
- void SetValue(const std::string& key, const std::string& value, const std::string& section = "");
- // T = [bool, int, float]
- template<typename T>
- T Get(const std::string& key, const std::string& section = "", T defvalue = 0);
- // T = [bool, int, float]
- template<typename T>
- void Set(const std::string& key, const T& value, const std::string& section = "");
- protected:
- void DumpString(IniNode* pNode, std::string& str);
- public:
- std::string _comment;
- std::string _delim;
- std::string _filepath;
- private:
- IniNode* root_;
- };
- #endif // HV_INI_PARSER_H_
|