TopicDict TopicManagerImpl::retrieveAll() const { Lock sync(*this); TopicManagerImpl* This = const_cast<TopicManagerImpl*>(this); This->reap(); TopicDict all; for(map<string, TopicImplPtr>::const_iterator p = _topics.begin(); p != _topics.end(); ++p) { all.insert(TopicDict::value_type(p->first, p->second->proxy())); } return all; }
TopicPrx TopicManagerImpl::retrieve(const string& name) const { Lock sync(*this); TopicManagerImpl* This = const_cast<TopicManagerImpl*>(this); This->reap(); map<string, TopicImplPtr>::const_iterator p = _topics.find(name); if(p == _topics.end()) { throw NoSuchTopic(name); } return p->second->proxy(); }