#include <DiscoveryBase.h>
Definition at line 1545 of file DiscoveryBase.h.
typedef DCPS::RcHandle<Participant> OpenDDS::DCPS::PeerDiscovery< Participant >::ParticipantHandle [protected] |
Definition at line 1884 of file DiscoveryBase.h.
typedef Participant::TopicDetails OpenDDS::DCPS::PeerDiscovery< Participant >::TopicDetails |
Definition at line 1547 of file DiscoveryBase.h.
OpenDDS::DCPS::PeerDiscovery< Participant >::PeerDiscovery | ( | const RepoKey & | key | ) | [inline, explicit] |
Definition at line 1549 of file DiscoveryBase.h.
OpenDDS::DCPS::PeerDiscovery< Participant >::~PeerDiscovery | ( | ) | [inline] |
Definition at line 1551 of file DiscoveryBase.h.
01551 { 01552 reactor_runner_.end(); 01553 }
virtual OpenDDS::DCPS::RepoId OpenDDS::DCPS::PeerDiscovery< Participant >::add_publication | ( | DDS::DomainId_t | domainId, | |
const OpenDDS::DCPS::RepoId & | participantId, | |||
const OpenDDS::DCPS::RepoId & | topicId, | |||
DCPS::DataWriterCallbacks * | publication, | |||
const DDS::DataWriterQos & | qos, | |||
const DCPS::TransportLocatorSeq & | transInfo, | |||
const DDS::PublisherQos & | publisherQos | |||
) | [inline, virtual] |
add the passed in publication into discovery. Discovery does not participate in memory management for the publication pointer, so it requires that the publication pointer remain valid until remove_publication is called.
Implements OpenDDS::DCPS::Discovery.
Definition at line 1779 of file DiscoveryBase.h.
01786 { 01787 return get_part(domainId, participantId)->add_publication(topicId, publication, qos, transInfo, publisherQos); 01788 }
virtual OpenDDS::DCPS::RepoId OpenDDS::DCPS::PeerDiscovery< Participant >::add_subscription | ( | DDS::DomainId_t | domainId, | |
const OpenDDS::DCPS::RepoId & | participantId, | |||
const OpenDDS::DCPS::RepoId & | topicId, | |||
DCPS::DataReaderCallbacks * | subscription, | |||
const DDS::DataReaderQos & | qos, | |||
const DCPS::TransportLocatorSeq & | transInfo, | |||
const DDS::SubscriberQos & | subscriberQos, | |||
const char * | filterClassName, | |||
const char * | filterExpression, | |||
const DDS::StringSeq & | exprParams | |||
) | [inline, virtual] |
add the passed in subscription into discovery. Discovery does not participate in memory management for the subscription pointer, so it requires that the subscription pointer remain valid until remove_subscription is called.
Implements OpenDDS::DCPS::Discovery.
Definition at line 1816 of file DiscoveryBase.h.
01826 { 01827 return get_part(domainId, participantId)->add_subscription(topicId, subscription, qos, transInfo, subscriberQos, filterClassName, filterExpr, params); 01828 }
virtual DCPS::TopicStatus OpenDDS::DCPS::PeerDiscovery< Participant >::assert_topic | ( | OpenDDS::DCPS::RepoId_out | topicId, | |
DDS::DomainId_t | domainId, | |||
const OpenDDS::DCPS::RepoId & | participantId, | |||
const char * | topicName, | |||
const char * | dataTypeName, | |||
const DDS::TopicQos & | qos, | |||
bool | hasDcpsKey | |||
) | [inline, virtual] |
Definition at line 1665 of file DiscoveryBase.h.
01672 { 01673 ACE_GUARD_RETURN(ACE_Thread_Mutex, g, lock_, DCPS::INTERNAL_ERROR); 01674 typename OPENDDS_MAP(DDS::DomainId_t, 01675 OPENDDS_MAP(OPENDDS_STRING, TopicDetails) )::iterator topic_it = 01676 topics_.find(domainId); 01677 if (topic_it != topics_.end()) { 01678 const typename OPENDDS_MAP(OPENDDS_STRING, TopicDetails)::iterator it = 01679 topic_it->second.find(topicName); 01680 if (it != topic_it->second.end() 01681 && it->second.data_type_ != dataTypeName) { 01682 topicId = GUID_UNKNOWN; 01683 return DCPS::CONFLICTING_TYPENAME; 01684 } 01685 } 01686 01687 // Verified its safe to hold lock during call to assert_topic 01688 const DCPS::TopicStatus stat = 01689 participants_[domainId][participantId]->assert_topic(topicId, topicName, 01690 dataTypeName, qos, 01691 hasDcpsKey); 01692 if (stat == DCPS::CREATED || stat == DCPS::FOUND) { // qos change (FOUND) 01693 TopicDetails& td = topics_[domainId][topicName]; 01694 td.data_type_ = dataTypeName; 01695 td.qos_ = qos; 01696 td.repo_id_ = topicId; 01697 ++topic_use_[domainId][topicName]; 01698 } 01699 return stat; 01700 }
virtual void OpenDDS::DCPS::PeerDiscovery< Participant >::association_complete | ( | DDS::DomainId_t | domainId, | |
const OpenDDS::DCPS::RepoId & | participantId, | |||
const OpenDDS::DCPS::RepoId & | localId, | |||
const OpenDDS::DCPS::RepoId & | remoteId | |||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1863 of file DiscoveryBase.h.
01867 { 01868 get_part(domainId, participantId)->association_complete(localId, remoteId); 01869 }
virtual bool OpenDDS::DCPS::PeerDiscovery< Participant >::attach_participant | ( | DDS::DomainId_t | , | |
const OpenDDS::DCPS::RepoId & | ||||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1620 of file DiscoveryBase.h.
virtual OpenDDS::DCPS::RepoId OpenDDS::DCPS::PeerDiscovery< Participant >::bit_key_to_repo_id | ( | DCPS::DomainParticipantImpl * | participant, | |
const char * | bit_topic_name, | |||
const DDS::BuiltinTopicKey_t & | key | |||
) | const [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1612 of file DiscoveryBase.h.
Referenced by OpenDDS::DCPS::PeerDiscovery< Spdp >::bit_key_to_repo_id().
01615 { 01616 return get_part(participant->get_domain_id(), participant->get_id()) 01617 ->bit_key_to_repo_id(bit_topic_name, key); 01618 }
void OpenDDS::DCPS::PeerDiscovery< Participant >::create_bit_dr | ( | DDS::TopicDescription_ptr | topic, | |
const char * | type, | |||
DCPS::SubscriberImpl * | sub, | |||
const DDS::DataReaderQos & | qos | |||
) | [inline, protected] |
Definition at line 1904 of file DiscoveryBase.h.
Referenced by OpenDDS::DCPS::PeerDiscovery< Spdp >::init_bit().
01907 { 01908 using namespace DCPS; 01909 TopicDescriptionImpl* bit_topic_i = 01910 dynamic_cast<TopicDescriptionImpl*>(topic); 01911 01912 DDS::DomainParticipant_var participant = sub->get_participant(); 01913 DomainParticipantImpl* participant_i = 01914 dynamic_cast<DomainParticipantImpl*>(participant.in()); 01915 01916 TypeSupport_var type_support = 01917 Registered_Data_Types->lookup(participant, type); 01918 01919 DDS::DataReader_var dr = type_support->create_datareader(); 01920 OpenDDS::DCPS::DataReaderImpl* dri = dynamic_cast<OpenDDS::DCPS::DataReaderImpl*>(dr.in()); 01921 01922 dri->init(bit_topic_i, qos, 0 /*listener*/, 0 /*mask*/, participant_i, sub); 01923 dri->disable_transport(); 01924 dri->enable(); 01925 }
virtual DCPS::TopicStatus OpenDDS::DCPS::PeerDiscovery< Participant >::find_topic | ( | DDS::DomainId_t | domainId, | |
const char * | topicName, | |||
CORBA::String_out | dataTypeName, | |||
DDS::TopicQos_out | qos, | |||
OpenDDS::DCPS::RepoId_out | topicId | |||
) | [inline, virtual] |
Definition at line 1702 of file DiscoveryBase.h.
01705 { 01706 ACE_GUARD_RETURN(ACE_Thread_Mutex, g, lock_, DCPS::INTERNAL_ERROR); 01707 typename OPENDDS_MAP(DDS::DomainId_t, 01708 OPENDDS_MAP(OPENDDS_STRING, TopicDetails) )::iterator topic_it = 01709 topics_.find(domainId); 01710 if (topic_it == topics_.end()) { 01711 return DCPS::NOT_FOUND; 01712 } 01713 typename OPENDDS_MAP(OPENDDS_STRING, TopicDetails)::iterator iter = 01714 topic_it->second.find(topicName); 01715 if (iter == topic_it->second.end()) { 01716 return DCPS::NOT_FOUND; 01717 } 01718 TopicDetails& td = iter->second; 01719 dataTypeName = td.data_type_.c_str(); 01720 qos = new DDS::TopicQos(td.qos_); 01721 topicId = td.repo_id_; 01722 ++topic_use_[domainId][topicName]; 01723 return DCPS::FOUND; 01724 }
virtual void OpenDDS::DCPS::PeerDiscovery< Participant >::fini_bit | ( | DCPS::DomainParticipantImpl * | participant | ) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1607 of file DiscoveryBase.h.
Referenced by OpenDDS::DCPS::PeerDiscovery< Spdp >::fini_bit().
ParticipantHandle OpenDDS::DCPS::PeerDiscovery< Participant >::get_part | ( | const DDS::DomainId_t | domain_id, | |
const OpenDDS::DCPS::RepoId & | part_id | |||
) | const [inline, protected] |
Definition at line 1889 of file DiscoveryBase.h.
Referenced by OpenDDS::DCPS::PeerDiscovery< Spdp >::add_publication(), OpenDDS::DCPS::PeerDiscovery< Spdp >::add_subscription(), OpenDDS::DCPS::PeerDiscovery< Spdp >::association_complete(), OpenDDS::DCPS::PeerDiscovery< Spdp >::bit_key_to_repo_id(), OpenDDS::DCPS::PeerDiscovery< Spdp >::fini_bit(), OpenDDS::DCPS::PeerDiscovery< Spdp >::ignore_domain_participant(), OpenDDS::DCPS::PeerDiscovery< Spdp >::ignore_publication(), OpenDDS::DCPS::PeerDiscovery< Spdp >::ignore_subscription(), OpenDDS::DCPS::PeerDiscovery< Spdp >::ignore_topic(), OpenDDS::DCPS::PeerDiscovery< Spdp >::init_bit(), OpenDDS::DCPS::PeerDiscovery< Spdp >::remove_publication(), OpenDDS::DCPS::PeerDiscovery< Spdp >::remove_subscription(), OpenDDS::DCPS::PeerDiscovery< Spdp >::update_domain_participant_qos(), OpenDDS::DCPS::PeerDiscovery< Spdp >::update_publication_qos(), OpenDDS::DCPS::PeerDiscovery< Spdp >::update_subscription_params(), and OpenDDS::DCPS::PeerDiscovery< Spdp >::update_subscription_qos().
01891 { 01892 ACE_GUARD_RETURN(ACE_Thread_Mutex, g, lock_, ParticipantHandle()); 01893 typename DomainParticipantMap::const_iterator domain = participants_.find(domain_id); 01894 if (domain == participants_.end()) { 01895 return ParticipantHandle(); 01896 } 01897 typename ParticipantMap::const_iterator part = domain->second.find(part_id); 01898 if (part == domain->second.end()) { 01899 return ParticipantHandle(); 01900 } 01901 return part->second; 01902 }
virtual bool OpenDDS::DCPS::PeerDiscovery< Participant >::ignore_domain_participant | ( | DDS::DomainId_t | domain, | |
const OpenDDS::DCPS::RepoId & | myParticipantId, | |||
const OpenDDS::DCPS::RepoId & | ignoreId | |||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1650 of file DiscoveryBase.h.
01653 { 01654 get_part(domain, myParticipantId)->ignore_domain_participant(ignoreId); 01655 return true; 01656 }
virtual bool OpenDDS::DCPS::PeerDiscovery< Participant >::ignore_publication | ( | DDS::DomainId_t | domainId, | |
const OpenDDS::DCPS::RepoId & | participantId, | |||
const OpenDDS::DCPS::RepoId & | ignoreId | |||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1798 of file DiscoveryBase.h.
01801 { 01802 get_part(domainId, participantId)->ignore_publication(ignoreId); 01803 return true; 01804 }
virtual bool OpenDDS::DCPS::PeerDiscovery< Participant >::ignore_subscription | ( | DDS::DomainId_t | domainId, | |
const OpenDDS::DCPS::RepoId & | participantId, | |||
const OpenDDS::DCPS::RepoId & | ignoreId | |||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1838 of file DiscoveryBase.h.
01841 { 01842 get_part(domainId, participantId)->ignore_subscription(ignoreId); 01843 return true; 01844 }
virtual bool OpenDDS::DCPS::PeerDiscovery< Participant >::ignore_topic | ( | DDS::DomainId_t | domainId, | |
const OpenDDS::DCPS::RepoId & | myParticipantId, | |||
const OpenDDS::DCPS::RepoId & | ignoreId | |||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1758 of file DiscoveryBase.h.
01760 { 01761 get_part(domainId, myParticipantId)->ignore_topic(ignoreId); 01762 return true; 01763 }
virtual DDS::Subscriber_ptr OpenDDS::DCPS::PeerDiscovery< Participant >::init_bit | ( | DomainParticipantImpl * | participant | ) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1555 of file DiscoveryBase.h.
Referenced by OpenDDS::DCPS::PeerDiscovery< Spdp >::init_bit().
01555 { 01556 using namespace DCPS; 01557 if (create_bit_topics(participant) != DDS::RETCODE_OK) { 01558 return 0; 01559 } 01560 01561 DDS::Subscriber_var bit_subscriber = 01562 participant->create_subscriber(SUBSCRIBER_QOS_DEFAULT, 01563 DDS::SubscriberListener::_nil(), 01564 DEFAULT_STATUS_MASK); 01565 SubscriberImpl* sub = dynamic_cast<SubscriberImpl*>(bit_subscriber.in()); 01566 01567 DDS::DataReaderQos dr_qos; 01568 sub->get_default_datareader_qos(dr_qos); 01569 dr_qos.durability.kind = DDS::TRANSIENT_LOCAL_DURABILITY_QOS; 01570 01571 #ifndef DDS_HAS_MINIMUM_BIT 01572 DDS::TopicDescription_var bit_part_topic = 01573 participant->lookup_topicdescription(BUILT_IN_PARTICIPANT_TOPIC); 01574 create_bit_dr(bit_part_topic, BUILT_IN_PARTICIPANT_TOPIC_TYPE, 01575 sub, dr_qos); 01576 01577 DDS::TopicDescription_var bit_topic_topic = 01578 participant->lookup_topicdescription(BUILT_IN_TOPIC_TOPIC); 01579 create_bit_dr(bit_topic_topic, BUILT_IN_TOPIC_TOPIC_TYPE, 01580 sub, dr_qos); 01581 01582 DDS::TopicDescription_var bit_pub_topic = 01583 participant->lookup_topicdescription(BUILT_IN_PUBLICATION_TOPIC); 01584 create_bit_dr(bit_pub_topic, BUILT_IN_PUBLICATION_TOPIC_TYPE, 01585 sub, dr_qos); 01586 01587 DDS::TopicDescription_var bit_sub_topic = 01588 participant->lookup_topicdescription(BUILT_IN_SUBSCRIPTION_TOPIC); 01589 create_bit_dr(bit_sub_topic, BUILT_IN_SUBSCRIPTION_TOPIC_TYPE, 01590 sub, dr_qos); 01591 01592 const DDS::ReturnCode_t ret = bit_subscriber->enable(); 01593 if (ret != DDS::RETCODE_OK) { 01594 if (DCPS_debug_level) { 01595 ACE_DEBUG((LM_INFO, ACE_TEXT("(%P|%t) PeerDiscovery::init_bit") 01596 ACE_TEXT(" - Error %d enabling subscriber\n"), ret)); 01597 } 01598 return 0; 01599 } 01600 #endif /* DDS_HAS_MINIMUM_BIT */ 01601 01602 get_part(participant->get_domain_id(), participant->get_id())->init_bit(bit_subscriber); 01603 01604 return bit_subscriber._retn(); 01605 }
OpenDDS::DCPS::PeerDiscovery< Participant >::OPENDDS_MAP | ( | DDS::DomainId_t | , | |
OPENDDS_MAP(OPENDDS_STRING, unsigned int) | ||||
) | [protected] |
OpenDDS::DCPS::PeerDiscovery< Participant >::OPENDDS_MAP | ( | DDS::DomainId_t | , | |
OPENDDS_MAP(OPENDDS_STRING, TopicDetails) | ||||
) | [protected] |
typedef OpenDDS::DCPS::PeerDiscovery< Participant >::OPENDDS_MAP | ( | DDS::DomainId_t | , | |
ParticipantMap | ||||
) | [protected] |
Referenced by OpenDDS::DCPS::PeerDiscovery< Spdp >::assert_topic(), OpenDDS::DCPS::PeerDiscovery< Spdp >::find_topic(), and OpenDDS::DCPS::PeerDiscovery< Spdp >::remove_topic().
typedef OpenDDS::DCPS::PeerDiscovery< Participant >::OPENDDS_MAP_CMP | ( | DCPS::RepoId | , | |
ParticipantHandle | , | |||
DCPS::GUID_tKeyLessThan | ||||
) | [protected] |
ACE_Reactor* OpenDDS::DCPS::PeerDiscovery< Participant >::reactor | ( | void | ) | [inline] |
Definition at line 1872 of file DiscoveryBase.h.
Referenced by OpenDDS::RTPS::Spdp::reactor().
01873 { 01874 ACE_GUARD_RETURN(ACE_Thread_Mutex, g, reactor_runner_.mtx_, 0); 01875 if (!reactor_runner_.reactor_) { 01876 reactor_runner_.reactor_.reset(new ACE_Reactor(new ACE_Select_Reactor, true)); 01877 reactor_runner_.activate(); 01878 } 01879 return reactor_runner_.reactor_.get(); 01880 }
virtual bool OpenDDS::DCPS::PeerDiscovery< Participant >::remove_domain_participant | ( | DDS::DomainId_t | domain_id, | |
const OpenDDS::DCPS::RepoId & | participantId | |||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1626 of file DiscoveryBase.h.
01628 { 01629 // Use reference counting to ensure participant 01630 // does not get deleted until lock as been released. 01631 ParticipantHandle participant; 01632 ACE_GUARD_RETURN(ACE_Thread_Mutex, g, lock_, false); 01633 typename DomainParticipantMap::iterator domain = participants_.find(domain_id); 01634 if (domain == participants_.end()) { 01635 return false; 01636 } 01637 typename ParticipantMap::iterator part = domain->second.find(participantId); 01638 if (part == domain->second.end()) { 01639 return false; 01640 } 01641 participant = part->second; 01642 domain->second.erase(part); 01643 if (domain->second.empty()) { 01644 participants_.erase(domain); 01645 } 01646 01647 return true; 01648 }
virtual bool OpenDDS::DCPS::PeerDiscovery< Participant >::remove_publication | ( | DDS::DomainId_t | domainId, | |
const OpenDDS::DCPS::RepoId & | participantId, | |||
const OpenDDS::DCPS::RepoId & | publicationId | |||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1790 of file DiscoveryBase.h.
01793 { 01794 get_part(domainId, participantId)->remove_publication(publicationId); 01795 return true; 01796 }
virtual bool OpenDDS::DCPS::PeerDiscovery< Participant >::remove_subscription | ( | DDS::DomainId_t | domainId, | |
const OpenDDS::DCPS::RepoId & | participantId, | |||
const OpenDDS::DCPS::RepoId & | subscriptionId | |||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1830 of file DiscoveryBase.h.
01833 { 01834 get_part(domainId, participantId)->remove_subscription(subscriptionId); 01835 return true; 01836 }
virtual DCPS::TopicStatus OpenDDS::DCPS::PeerDiscovery< Participant >::remove_topic | ( | DDS::DomainId_t | domainId, | |
const OpenDDS::DCPS::RepoId & | participantId, | |||
const OpenDDS::DCPS::RepoId & | topicId | |||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1726 of file DiscoveryBase.h.
01729 { 01730 ACE_GUARD_RETURN(ACE_Thread_Mutex, g, lock_, DCPS::INTERNAL_ERROR); 01731 typename OPENDDS_MAP(DDS::DomainId_t, 01732 OPENDDS_MAP(OPENDDS_STRING, TopicDetails) )::iterator topic_it = 01733 topics_.find(domainId); 01734 if (topic_it == topics_.end()) { 01735 return DCPS::NOT_FOUND; 01736 } 01737 01738 OPENDDS_STRING name; 01739 // Safe to hold lock while calling remove topic 01740 const DCPS::TopicStatus stat = 01741 participants_[domainId][participantId]->remove_topic(topicId, name); 01742 01743 if (stat == DCPS::REMOVED) { 01744 if (0 == --topic_use_[domainId][name]) { 01745 topic_use_[domainId].erase(name); 01746 if (topic_it->second.empty()) { 01747 topic_use_.erase(domainId); 01748 } 01749 topic_it->second.erase(name); 01750 if (topic_it->second.empty()) { 01751 topics_.erase(topic_it); 01752 } 01753 } 01754 } 01755 return stat; 01756 }
virtual bool OpenDDS::DCPS::PeerDiscovery< Participant >::update_domain_participant_qos | ( | DDS::DomainId_t | domain, | |
const OpenDDS::DCPS::RepoId & | participant, | |||
const DDS::DomainParticipantQos & | qos | |||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1658 of file DiscoveryBase.h.
01661 { 01662 return get_part(domain, participant)->update_domain_participant_qos(qos); 01663 }
virtual bool OpenDDS::DCPS::PeerDiscovery< Participant >::update_publication_qos | ( | DDS::DomainId_t | domainId, | |
const OpenDDS::DCPS::RepoId & | partId, | |||
const OpenDDS::DCPS::RepoId & | dwId, | |||
const DDS::DataWriterQos & | qos, | |||
const DDS::PublisherQos & | publisherQos | |||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1806 of file DiscoveryBase.h.
01811 { 01812 return get_part(domainId, partId)->update_publication_qos(dwId, qos, 01813 publisherQos); 01814 }
virtual bool OpenDDS::DCPS::PeerDiscovery< Participant >::update_subscription_params | ( | DDS::DomainId_t | domainId, | |
const OpenDDS::DCPS::RepoId & | partId, | |||
const OpenDDS::DCPS::RepoId & | subId, | |||
const DDS::StringSeq & | params | |||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1855 of file DiscoveryBase.h.
01859 { 01860 return get_part(domainId, partId)->update_subscription_params(subId, params); 01861 }
virtual bool OpenDDS::DCPS::PeerDiscovery< Participant >::update_subscription_qos | ( | DDS::DomainId_t | domainId, | |
const OpenDDS::DCPS::RepoId & | partId, | |||
const OpenDDS::DCPS::RepoId & | drId, | |||
const DDS::DataReaderQos & | qos, | |||
const DDS::SubscriberQos & | subQos | |||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1846 of file DiscoveryBase.h.
01851 { 01852 return get_part(domainId, partId)->update_subscription_qos(drId, qos, subQos); 01853 }
virtual bool OpenDDS::DCPS::PeerDiscovery< Participant >::update_topic_qos | ( | const OpenDDS::DCPS::RepoId & | topicId, | |
DDS::DomainId_t | domainId, | |||
const OpenDDS::DCPS::RepoId & | participantId, | |||
const DDS::TopicQos & | qos | |||
) | [inline, virtual] |
Implements OpenDDS::DCPS::Discovery.
Definition at line 1765 of file DiscoveryBase.h.
Referenced by OpenDDS::DCPS::PeerDiscovery< Spdp >::update_topic_qos().
01767 { 01768 ACE_GUARD_RETURN(ACE_Thread_Mutex, g, lock_, false); 01769 OPENDDS_STRING name; 01770 // Safe to hold lock while calling update_topic_qos 01771 if (participants_[domainId][participantId]->update_topic_qos(topicId, 01772 qos, name)) { 01773 topics_[domainId][name].qos_ = qos; 01774 return true; 01775 } 01776 return false; 01777 }
ACE_Thread_Mutex OpenDDS::DCPS::PeerDiscovery< Participant >::lock_ [mutable, protected] |
Definition at line 1927 of file DiscoveryBase.h.
Referenced by OpenDDS::DCPS::PeerDiscovery< Spdp >::assert_topic(), OpenDDS::DCPS::PeerDiscovery< Spdp >::find_topic(), OpenDDS::DCPS::PeerDiscovery< Spdp >::get_part(), OpenDDS::DCPS::PeerDiscovery< Spdp >::remove_domain_participant(), OpenDDS::DCPS::PeerDiscovery< Spdp >::remove_topic(), and OpenDDS::DCPS::PeerDiscovery< Spdp >::update_topic_qos().
DomainParticipantMap OpenDDS::DCPS::PeerDiscovery< Participant >::participants_ [protected] |
Definition at line 1953 of file DiscoveryBase.h.
Referenced by OpenDDS::DCPS::PeerDiscovery< Spdp >::assert_topic(), OpenDDS::DCPS::PeerDiscovery< Spdp >::get_part(), OpenDDS::DCPS::PeerDiscovery< Spdp >::remove_domain_participant(), OpenDDS::DCPS::PeerDiscovery< Spdp >::remove_topic(), and OpenDDS::DCPS::PeerDiscovery< Spdp >::update_topic_qos().
OpenDDS::DCPS::PeerDiscovery::ReactorRunner OpenDDS::DCPS::PeerDiscovery< Participant >::reactor_runner_ [protected] |