LinkInfoSeq TransientTopicImpl::getLinkInfoSeq(const Ice::Current&) const { Lock sync(*this); LinkInfoSeq seq; for(vector<SubscriberPtr>::const_iterator p = _subscribers.begin(); p != _subscribers.end(); ++p) { SubscriberRecord record = (*p)->record(); if(record.link && !(*p)->errored()) { LinkInfo info; info.name = IceStormInternal::identityToTopicName(record.theTopic->ice_getIdentity()); info.cost = record.cost; info.theTopic = record.theTopic; seq.push_back(info); } } return seq; }
LinkInfoSeq TopicImpl::getLinkInfoSeq() const { IceUtil::Mutex::Lock sync(_subscribersMutex); LinkInfoSeq seq; for(vector<SubscriberPtr>::const_iterator p = _subscribers.begin(); p != _subscribers.end(); ++p) { SubscriberRecord record = (*p)->record(); if(record.link && !(*p)->errored()) { LinkInfo info; info.name = identityToTopicName(record.theTopic->ice_getIdentity()); info.cost = record.cost; info.theTopic = record.theTopic; seq.push_back(info); } } return seq; }