diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-09-11 13:02:32 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-09-11 13:02:32 +0200 |
commit | cedcb5c1047b94890c80a2d71afb808898233b9b (patch) | |
tree | 637b78cd06171738a3300043b0af43b43d17b0dc /cpp/src/IceStorm/TopicManagerI.cpp | |
parent | Merge remote-tracking branch 'origin/encoding11' into withoutsync (diff) | |
download | ice-cedcb5c1047b94890c80a2d71afb808898233b9b.tar.bz2 ice-cedcb5c1047b94890c80a2d71afb808898233b9b.tar.xz ice-cedcb5c1047b94890c80a2d71afb808898233b9b.zip |
Support for IceBox services MetricsAdmin and IceStorm metrics
Diffstat (limited to 'cpp/src/IceStorm/TopicManagerI.cpp')
-rw-r--r-- | cpp/src/IceStorm/TopicManagerI.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/cpp/src/IceStorm/TopicManagerI.cpp b/cpp/src/IceStorm/TopicManagerI.cpp index a1756deed63..9601d004481 100644 --- a/cpp/src/IceStorm/TopicManagerI.cpp +++ b/cpp/src/IceStorm/TopicManagerI.cpp @@ -296,6 +296,11 @@ TopicManagerImpl::TopicManagerImpl(const InstancePtr& instance) : { __setNoDelete(true); + if(_instance->observer()) + { + _instance->observer()->setObserverUpdater(this); + } + // TODO: If we want to improve the performance of the // non-replicated case we could allocate a null-topic manager impl // here. @@ -861,6 +866,26 @@ TopicManagerImpl::getServant() const return _managerImpl; } +void +TopicManagerImpl::updateTopicObservers() +{ + Lock sync(*this); + for(map<string, TopicImplPtr>::const_iterator p = _topics.begin(); p != _topics.end(); ++p) + { + p->second->updateObserver(); + } +} + +void +TopicManagerImpl::updateSubscriberObservers() +{ + Lock sync(*this); + for(map<string, TopicImplPtr>::const_iterator p = _topics.begin(); p != _topics.end(); ++p) + { + p->second->updateSubscriberObservers(); + } +} + TopicPrx TopicManagerImpl::installTopic(const string& name, const Ice::Identity& id, bool create, const IceStorm::SubscriberRecordSeq& subscribers) |