diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-10-05 17:26:44 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-10-05 17:26:44 +0200 |
commit | 44c8fc867ecb65daeddc5aa121ccb4baad16007d (patch) | |
tree | d778cff1613749c372f612927c0d02086a68ee0a /cpp/src/Ice/MetricsAdminI.cpp | |
parent | Update IceGridGUI requirements in java/README (diff) | |
download | ice-44c8fc867ecb65daeddc5aa121ccb4baad16007d.tar.bz2 ice-44c8fc867ecb65daeddc5aa121ccb4baad16007d.tar.xz ice-44c8fc867ecb65daeddc5aa121ccb4baad16007d.zip |
Fixed property validations, added C# metrics test
Diffstat (limited to 'cpp/src/Ice/MetricsAdminI.cpp')
-rw-r--r-- | cpp/src/Ice/MetricsAdminI.cpp | 59 |
1 files changed, 25 insertions, 34 deletions
diff --git a/cpp/src/Ice/MetricsAdminI.cpp b/cpp/src/Ice/MetricsAdminI.cpp index 74b84487842..3e371db2a32 100644 --- a/cpp/src/Ice/MetricsAdminI.cpp +++ b/cpp/src/Ice/MetricsAdminI.cpp @@ -26,7 +26,7 @@ using namespace IceMX; namespace { -const string viewSuffixes[] = +const string suffixes[] = { "Disabled", "GroupBy", @@ -36,23 +36,15 @@ const string viewSuffixes[] = "Map.*", }; -const string mapSuffixes[] = -{ - "GroupBy", - "Accept.*", - "Reject.*", - "RetainDetached", -}; - void -validateProperties(const string& prefix, const PropertiesPtr& properties, const string* suffixes, int cnt) +validateProperties(const string& prefix, const PropertiesPtr& properties) { vector<string> unknownProps; PropertyDict props = properties->getPropertiesForPrefix(prefix); for(PropertyDict::const_iterator p = props.begin(); p != props.end(); ++p) { bool valid = false; - for(int i = 0; i < cnt; ++i) + for(int i = 0; i < sizeof(suffixes) / sizeof(*suffixes); ++i) { string prop = prefix + suffixes[i]; if(IceUtilInternal::match(p->first, prop)) @@ -135,6 +127,8 @@ MetricsMapI::MetricsMapI(const std::string& mapPrefix, const PropertiesPtr& prop _accept(parseRule(properties, mapPrefix + "Accept")), _reject(parseRule(properties, mapPrefix + "Reject")) { + validateProperties(mapPrefix, properties); + string groupBy = properties->getPropertyWithDefault(mapPrefix + "GroupBy", "id"); vector<string>& groupByAttributes = const_cast<vector<string>&>(_groupByAttributes); vector<string>& groupBySeparators = const_cast<vector<string>&>(_groupBySeparators); @@ -189,25 +183,6 @@ MetricsMapI::MetricsMapI(const MetricsMapI& map) : { } -void -MetricsMapI::validateProperties(const string& prefix, const Ice::PropertiesPtr& props, const vector<string>& subMaps) -{ - if(subMaps.empty()) - { - ::validateProperties(prefix, props, mapSuffixes, sizeof(mapSuffixes) / sizeof(*mapSuffixes)); - return; - } - - vector<string> suffixes(mapSuffixes, mapSuffixes + sizeof(mapSuffixes) / sizeof(*mapSuffixes)); - for(vector<string>::const_iterator p = subMaps.begin(); p != subMaps.end(); ++p) - { - const string suffix = "Map." + *p + "."; - ::validateProperties(prefix + suffix, props, mapSuffixes, sizeof(mapSuffixes) / sizeof(*mapSuffixes)); - suffixes.push_back(suffix + '*'); - } - ::validateProperties(prefix, props, &suffixes[0], suffixes.size()); -} - const Ice::PropertyDict& MetricsMapI::getProperties() const { @@ -249,8 +224,13 @@ MetricsViewI::addOrUpdateMap(const PropertiesPtr& properties, const string& mapN if(mapProps.empty()) { // This map isn't configured for this view. - _maps.erase(mapName); - return true; + map<string, MetricsMapIPtr>::iterator q = _maps.find(mapName); + if(q != _maps.end()) + { + _maps.erase(q); + return true; + } + return false; } } else @@ -259,6 +239,18 @@ MetricsViewI::addOrUpdateMap(const PropertiesPtr& properties, const string& mapN mapProps = properties->getPropertiesForPrefix(mapPrefix); } + if(properties->getPropertyAsInt(mapPrefix + "Disabled") > 0) + { + // This map is disabled for this view. + map<string, MetricsMapIPtr>::iterator q = _maps.find(mapName); + if(q != _maps.end()) + { + _maps.erase(q); + return true; + } + return false; + } + map<string, MetricsMapIPtr>::iterator q = _maps.find(mapName); if(q != _maps.end() && q->second->getProperties() == mapProps) { @@ -384,8 +376,7 @@ MetricsAdminI::updateViews() continue; // View already configured. } - validateProperties(viewsPrefix + viewName + ".", _properties, viewSuffixes, sizeof(viewSuffixes) / - sizeof(*viewSuffixes)); + validateProperties(viewsPrefix + viewName + ".", _properties); if(_properties->getPropertyAsIntWithDefault(viewsPrefix + viewName + ".Disabled", 0) > 0) { |