diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-09-06 18:37:10 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-09-06 18:37:10 +0200 |
commit | be9faf978df7819d37f873b6e3d241ceb35b08ad (patch) | |
tree | 7e9b91b05f5b0e2e7fcb4aeb8238bbc7c87db1eb /cpp/src/Ice/MetricsAdminI.cpp | |
parent | Performance improvments (diff) | |
download | ice-be9faf978df7819d37f873b6e3d241ceb35b08ad.tar.bz2 ice-be9faf978df7819d37f873b6e3d241ceb35b08ad.tar.xz ice-be9faf978df7819d37f873b6e3d241ceb35b08ad.zip |
Fix
Diffstat (limited to 'cpp/src/Ice/MetricsAdminI.cpp')
-rw-r--r-- | cpp/src/Ice/MetricsAdminI.cpp | 195 |
1 files changed, 0 insertions, 195 deletions
diff --git a/cpp/src/Ice/MetricsAdminI.cpp b/cpp/src/Ice/MetricsAdminI.cpp index 341c8f852f7..8b6ae36586b 100644 --- a/cpp/src/Ice/MetricsAdminI.cpp +++ b/cpp/src/Ice/MetricsAdminI.cpp @@ -71,57 +71,6 @@ MetricsMapI::RegExp::match(const MetricsHelper& helper) #endif } -MetricsMapI::Entry::Entry(MetricsMapI* map, const MetricsPtr& object, const list<Entry*>::iterator& pos) : - _object(object), _map(map), _detachedPos(pos) -{ -} - -void -MetricsMapI::Entry::destroy() -{ - Lock sync(*this); - _map = 0; -} - -void -MetricsMapI::Entry::failed(const string& exceptionName) -{ - Lock sync(*this); - ++_object->failures; - ++_failures[exceptionName]; -} - -MetricsFailures -MetricsMapI::Entry::getFailures() const -{ - MetricsFailures f; - - Lock sync(*this); - f.id = _object->id; - f.failures = _failures; - return f; -} - -MetricsPtr -MetricsMapI::Entry::clone() const -{ - Lock sync(*this); - return dynamic_cast<Metrics*>(_object->ice_clone().get()); -} - -const string& -MetricsMapI::Entry::id() const -{ - return _object->id; -} - -MetricsMapI::Entry* -MetricsMapI::Entry::getMatching(const string&, const MetricsHelper&) -{ - return 0; -} - - MetricsMapI::MetricsMapI(const std::string& mapPrefix, const Ice::PropertiesPtr& properties) : _properties(properties->getPropertiesForPrefix(mapPrefix)), _retain(properties->getPropertyAsIntWithDefault(mapPrefix + "RetainDetached", 10)), @@ -178,150 +127,6 @@ MetricsMapI::MetricsMapI(const MetricsMapI& map) : _reject(map._reject) { } - -MetricsMapI::~MetricsMapI() -{ - for(map<string, EntryPtr>::const_iterator p = _objects.begin(); p != _objects.end(); ++p) - { - p->second->destroy(); - } -} - -MetricsMap -MetricsMapI::getMetrics() const -{ - MetricsMap objects; - - Lock sync(*this); - for(map<string, EntryPtr>::const_iterator p = _objects.begin(); p != _objects.end(); ++p) - { - objects.push_back(p->second->clone()); - } - return objects; -} - -MetricsFailuresSeq -MetricsMapI::getFailures() -{ - MetricsFailuresSeq failures; - - Lock sync(*this); - for(map<string, EntryPtr>::const_iterator p = _objects.begin(); p != _objects.end(); ++p) - { - MetricsFailures f = p->second->getFailures(); - if(!f.failures.empty()) - { - failures.push_back(f); - } - } - return failures; -} - -MetricsFailures -MetricsMapI::getFailures(const string& id) -{ - Lock sync(*this); - map<string, EntryPtr>::const_iterator p = _objects.begin(); - if(p != _objects.end()) - { - return p->second->getFailures(); - } - return MetricsFailures(); -} - -MetricsMapI::EntryPtr -MetricsMapI::getMatching(const MetricsHelper& helper) -{ - for(vector<RegExpPtr>::const_iterator p = _accept.begin(); p != _accept.end(); ++p) - { - if(!(*p)->match(helper)) - { - return 0; - } - } - - for(vector<RegExpPtr>::const_iterator p = _reject.begin(); p != _reject.end(); ++p) - { - if((*p)->match(helper)) - { - return 0; - } - } - - string key; - if(_groupByAttributes.size() == 1) - { - key = helper(_groupByAttributes.front()); - } - else - { - ostringstream os; - vector<string>::const_iterator q = _groupBySeparators.begin(); - for(vector<string>::const_iterator p = _groupByAttributes.begin(); p != _groupByAttributes.end(); ++p) - { - os << helper(*p); - if(q != _groupBySeparators.end()) - { - os << *q++; - } - } - key = os.str(); - } - - Lock sync(*this); - map<string, EntryPtr>::const_iterator p = _objects.find(key); - if(p == _objects.end()) - { - p = _objects.insert(make_pair(key, newEntry(key))).first; - } - return p->second; -} - -void -MetricsMapI::detached(Entry* entry) -{ - if(_retain == 0) - { - return; - } - - Lock sync(*this); - assert(static_cast<int>(_detachedQueue.size()) <= _retain); - - if(entry->_detachedPos != _detachedQueue.end()) - { - _detachedQueue.splice(_detachedQueue.end(), _detachedQueue, entry->_detachedPos); - entry->_detachedPos = --_detachedQueue.end(); - return; - } - - if(static_cast<int>(_detachedQueue.size()) == _retain) - { - // Remove entries which are no longer detached - list<Entry*>::iterator p = _detachedQueue.begin(); - while(p != _detachedQueue.end()) - { - if(!(*p)->isDetached()) - { - p = _detachedQueue.erase(p); - } - else - { - ++p; - } - } - } - - if(static_cast<int>(_detachedQueue.size()) == _retain) - { - // Remove oldest entry if there's still no room - _objects.erase(_detachedQueue.front()->id()); - _detachedQueue.pop_front(); - } - - _detachedQueue.push_back(entry); - entry->_detachedPos = --_detachedQueue.end(); -} MetricsViewI::MetricsViewI(const string& name) : _name(name) { |