Added global options to CConfig (needed for heartbeat option).
This commit is contained in:
parent
366537dc22
commit
aef50800e3
|
@ -244,42 +244,69 @@ CConfig::setHTTPAddress(const CNetworkAddress& addr)
|
||||||
bool
|
bool
|
||||||
CConfig::addOption(const CString& name, OptionID option, OptionValue value)
|
CConfig::addOption(const CString& name, OptionID option, OptionValue value)
|
||||||
{
|
{
|
||||||
// find cell
|
// find options
|
||||||
CCellMap::iterator index = m_map.find(name);
|
CScreenOptions* options = NULL;
|
||||||
if (index == m_map.end()) {
|
if (name.empty()) {
|
||||||
|
options = &m_globalOptions;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CCellMap::iterator index = m_map.find(name);
|
||||||
|
if (index != m_map.end()) {
|
||||||
|
options = &index->second.m_options;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (options == NULL) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// add option
|
// add option
|
||||||
index->second.m_options.insert(std::make_pair(option, value));
|
options->insert(std::make_pair(option, value));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
CConfig::removeOption(const CString& name, OptionID option)
|
CConfig::removeOption(const CString& name, OptionID option)
|
||||||
{
|
{
|
||||||
// find cell
|
// find options
|
||||||
CCellMap::iterator index = m_map.find(name);
|
CScreenOptions* options = NULL;
|
||||||
if (index == m_map.end()) {
|
if (name.empty()) {
|
||||||
|
options = &m_globalOptions;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CCellMap::iterator index = m_map.find(name);
|
||||||
|
if (index != m_map.end()) {
|
||||||
|
options = &index->second.m_options;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (options == NULL) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove option
|
// remove option
|
||||||
index->second.m_options.erase(option);
|
options->erase(option);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
CConfig::removeOptions(const CString& name)
|
CConfig::removeOptions(const CString& name)
|
||||||
{
|
{
|
||||||
// find cell
|
// find options
|
||||||
CCellMap::iterator index = m_map.find(name);
|
CScreenOptions* options = NULL;
|
||||||
if (index == m_map.end()) {
|
if (name.empty()) {
|
||||||
|
options = &m_globalOptions;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CCellMap::iterator index = m_map.find(name);
|
||||||
|
if (index != m_map.end()) {
|
||||||
|
options = &index->second.m_options;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (options == NULL) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove option
|
// remove options
|
||||||
index->second.m_options.clear();
|
options->clear();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -405,14 +432,20 @@ CConfig::getHTTPAddress() const
|
||||||
const CConfig::CScreenOptions*
|
const CConfig::CScreenOptions*
|
||||||
CConfig::getOptions(const CString& name) const
|
CConfig::getOptions(const CString& name) const
|
||||||
{
|
{
|
||||||
// find cell
|
// find options
|
||||||
CCellMap::const_iterator index = m_map.find(name);
|
const CScreenOptions* options = NULL;
|
||||||
if (index == m_map.end()) {
|
if (name.empty()) {
|
||||||
return NULL;
|
options = &m_globalOptions;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CCellMap::const_iterator index = m_map.find(name);
|
||||||
|
if (index != m_map.end()) {
|
||||||
|
options = &index->second.m_options;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// return options
|
// return options
|
||||||
return &index->second.m_options;
|
return options;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -433,6 +466,11 @@ CConfig::operator==(const CConfig& x) const
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// compare global options
|
||||||
|
if (m_globalOptions != x.m_globalOptions) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
for (CCellMap::const_iterator index1 = m_map.begin(),
|
for (CCellMap::const_iterator index1 = m_map.begin(),
|
||||||
index2 = x.m_map.begin();
|
index2 = x.m_map.begin();
|
||||||
index1 != m_map.end(); ++index1, ++index2) {
|
index1 != m_map.end(); ++index1, ++index2) {
|
||||||
|
|
|
@ -308,6 +308,7 @@ private:
|
||||||
CNameMap m_nameToCanonicalName;
|
CNameMap m_nameToCanonicalName;
|
||||||
CNetworkAddress m_synergyAddress;
|
CNetworkAddress m_synergyAddress;
|
||||||
CNetworkAddress m_httpAddress;
|
CNetworkAddress m_httpAddress;
|
||||||
|
CScreenOptions m_globalOptions;
|
||||||
};
|
};
|
||||||
|
|
||||||
//! Configuration stream read exception
|
//! Configuration stream read exception
|
||||||
|
|
Loading…
Reference in New Issue