72 class CORE_LIBRARY_DLL_SHARED_API
IniFile final
75 #ifdef USE_DEFAULT_CONSTRUCTOR_ 90 explicit IniFile(
const std::string& iniFilePath);
95 #ifdef USE_EXPLICIT_MOVE_ 112 void LoadFile(
const std::string& iniFilePath);
119 void UpdateFile(
const std::string& overridePath =
"")
const;
124 std::list<std::string> GetSections()
const;
130 keys_list GetSection(
const std::string& section)
const;
136 bool SectionExists(
const std::string& section)
const;
143 bool KeyExists(
const std::string& section,
const std::string& key)
const;
151 bool ReadBool(
const std::string& section,
const std::string& key,
152 bool defaultValue =
false)
const;
160 int32_t ReadInt32(
const std::string& section,
const std::string& key,
161 int32_t defaultValue = 0)
const;
169 int64_t ReadInt64(
const std::string& section,
const std::string& key,
170 int64_t defaultValue = 0L)
const;
178 double ReadDouble(
const std::string& section,
const std::string& key,
179 double defaultValue = 0.0)
const;
187 long double ReadLongDouble(
const std::string& section,
const std::string& key,
188 long double defaultValue = 0.0L)
const;
196 std::string ReadString(
const std::string& section,
const std::string& key,
197 const std::string& defaultValue =
"")
const;
205 void WriteBool(
const std::string& section,
const std::string& key,
bool value);
212 void WriteInt32(
const std::string& section,
const std::string& key, int32_t value);
219 void WriteInt64(
const std::string& section,
const std::string& key, int64_t value);
226 void WriteDouble(
const std::string& section,
const std::string& key,
double value);
233 void WriteLongDouble(
const std::string& section,
const std::string& key,
long double value);
240 void WriteString(
const std::string& section,
const std::string& key,
const std::string& value);
248 void EraseSection(
const std::string& section);
254 void EraseSections();
265 void EraseKey(
const std::string& section,
const std::string& key);
274 void EraseKeys(
const std::string& section);
277 #ifdef USE_DEFAULT_CONSTRUCTOR_ 279 mutable bool m_changesMade;
281 std::string m_iniFilePath;
284 mutable bool m_changesMade{
false};
286 std::string m_iniFilePath{
"config.ini"};
289 using section_map = std::map<std::string, if_private::SectionDetails>;
306 std::string ReadValueString(
const std::string& section,
const std::string& key,
307 const std::string& defaultValue)
const;
314 void WriteValueString(
const std::string& section,
const std::string& key,
315 const std::string& value);
std::list< std::pair< std::string, std::string > > keys_list
Typedef defining the key-value pair list for section entries.
Definition: IniFileLines.h:44
section_map::const_iterator section_citer
Section map const iterator typedef.
Definition: IniFile.h:295
std::list< std::shared_ptr< Line > > line_list
Line list typedef.
Definition: IniFileLines.h:244
File containing declarations relating the IniFile support classes.
The core_lib namespace.
Definition: AsioDefines.h:59
Ini file class.
Definition: IniFile.h:72
section_map::iterator section_iter
Section map iterator typedef.
Definition: IniFile.h:293
if_private::line_list m_lines
Line list.
Definition: IniFile.h:297
std::map< std::string, if_private::SectionDetails > section_map
Section map typedef.
Definition: IniFile.h:289
section_map m_sectionMap
Sectin map.
Definition: IniFile.h:291