20 #include <znc/zncconfig.h> 38 CConfig() : m_ConfigEntries(), m_SubConfigs() {}
47 EntryMapIterator
BeginEntries()
const {
return m_ConfigEntries.begin(); }
48 EntryMapIterator
EndEntries()
const {
return m_ConfigEntries.end(); }
51 return m_SubConfigs.begin();
53 SubConfigMapIterator
EndSubConfigs()
const {
return m_SubConfigs.end(); }
56 if (sName.empty() || sValue.empty()) {
60 m_ConfigEntries[sName].push_back(sValue);
65 SubConfig& conf = m_SubConfigs[sTag];
66 SubConfig::const_iterator it = conf.find(sName);
68 if (it != conf.end()) {
78 EntryMap::iterator it = m_ConfigEntries.find(sName);
80 if (it == m_ConfigEntries.end())
return false;
84 m_ConfigEntries.erase(it);
92 EntryMap::iterator it = m_ConfigEntries.find(sName);
94 if (it == m_ConfigEntries.end() || it->second.empty())
return false;
95 sRes = it->second.front();
96 it->second.erase(it->second.begin());
97 if (it->second.empty()) m_ConfigEntries.erase(it);
102 bool bDefault =
false) {
104 if (FindStringEntry(sName, s)) {
113 unsigned int uDefault = 0) {
115 if (FindStringEntry(sName, s)) {
124 unsigned short uDefault = 0) {
126 if (FindStringEntry(sName, s)) {
135 double fDefault = 0) {
137 if (FindStringEntry(sName, s)) {
146 bool bErase =
true) {
147 SubConfigMap::iterator it = m_SubConfigs.find(sName);
148 if (it == m_SubConfigs.end()) {
155 m_SubConfigs.erase(it);
162 return m_ConfigEntries.empty() && m_SubConfigs.empty();
166 void Write(
CFile& file,
unsigned int iIndentation = 0);
169 EntryMap m_ConfigEntries;
170 SubConfigMap m_SubConfigs;
173 #endif // !ZNC_CONFIG_H bool FindBoolEntry(const CString &sName, bool &bRes, bool bDefault=false)
Definition: Config.h:101
bool FindStringEntry(const CString &sName, CString &sRes, const CString &sDefault="")
Definition: Config.h:90
CConfigEntry & operator=(const CConfigEntry &other)
std::map< CString, SubConfig > SubConfigMap
Definition: Config.h:42
EntryMap::const_iterator EntryMapIterator
Definition: Config.h:44
bool FindStringVector(const CString &sName, VCString &vsList, bool bErase=true)
Definition: Config.h:76
void AddKeyValuePair(const CString &sName, const CString &sValue)
Definition: Config.h:55
std::map< CString, CConfigEntry > SubConfig
Definition: Config.h:41
bool FindDoubleEntry(const CString &sName, double &fRes, double fDefault=0)
Definition: Config.h:134
std::map< CString, VCString > EntryMap
Definition: Config.h:40
CConfig * m_pSubConfig
Definition: Config.h:33
bool empty() const
Definition: Config.h:161
Definition: FileUtils.h:30
std::vector< CString > VCString
Definition: ZNCString.h:38
SubConfigMap::const_iterator SubConfigMapIterator
Definition: Config.h:45
String class that is used inside ZNC.
Definition: ZNCString.h:68
bool AddSubConfig(const CString &sTag, const CString &sName, CConfig Config)
Definition: Config.h:63
bool FindSubConfig(const CString &sName, SubConfig &Config, bool bErase=true)
Definition: Config.h:145
CConfig()
Definition: Config.h:38
bool FindUIntEntry(const CString &sName, unsigned int &uRes, unsigned int uDefault=0)
Definition: Config.h:112
unsigned int ToUInt() const
SubConfigMapIterator BeginSubConfigs() const
Definition: Config.h:50
EntryMapIterator BeginEntries() const
Definition: Config.h:47
bool FindUShortEntry(const CString &sName, unsigned short &uRes, unsigned short uDefault=0)
Definition: Config.h:123
unsigned short ToUShort() const
SubConfigMapIterator EndSubConfigs() const
Definition: Config.h:53
EntryMapIterator EndEntries() const
Definition: Config.h:48