#include <Discovery.h>
Inheritance diagram for OpenDDS::DCPS::Discovery:
Public Types | |
typedef OPENDDS_STRING | RepoKey |
Public Member Functions | |
Discovery (const RepoKey &key) | |
virtual bool | active () |
virtual DDS::Subscriber_ptr | init_bit (DomainParticipantImpl *participant)=0 |
virtual void | fini_bit (DCPS::DomainParticipantImpl *participant)=0 |
virtual RepoId | bit_key_to_repo_id (DomainParticipantImpl *participant, const char *bit_topic_name, const DDS::BuiltinTopicKey_t &key) const =0 |
RepoKey | key () const |
virtual bool | attach_participant (DDS::DomainId_t domainId, const RepoId &participantId)=0 |
virtual AddDomainStatus | add_domain_participant (DDS::DomainId_t domain, const DDS::DomainParticipantQos &qos)=0 |
virtual bool | remove_domain_participant (DDS::DomainId_t domainId, const RepoId &participantId)=0 |
virtual bool | ignore_domain_participant (DDS::DomainId_t domainId, const RepoId &myParticipantId, const RepoId &ignoreId)=0 |
virtual bool | update_domain_participant_qos (DDS::DomainId_t domain, const RepoId &participantId, const DDS::DomainParticipantQos &qos)=0 |
virtual TopicStatus | assert_topic (RepoId_out topicId, DDS::DomainId_t domainId, const RepoId &participantId, const char *topicName, const char *dataTypeName, const DDS::TopicQos &qos, bool hasDcpsKey)=0 |
virtual TopicStatus | find_topic (DDS::DomainId_t domainId, const char *topicName, CORBA::String_out dataTypeName, DDS::TopicQos_out qos, RepoId_out topicId)=0 |
virtual TopicStatus | remove_topic (DDS::DomainId_t domainId, const RepoId &participantId, const RepoId &topicId)=0 |
virtual bool | ignore_topic (DDS::DomainId_t domainId, const RepoId &myParticipantId, const RepoId &ignoreId)=0 |
virtual bool | update_topic_qos (const RepoId &topicId, DDS::DomainId_t domainId, const RepoId &participantId, const DDS::TopicQos &qos)=0 |
virtual void | pre_writer (DataWriterImpl *) |
virtual RepoId | add_publication (DDS::DomainId_t domainId, const RepoId &participantId, const RepoId &topicId, DataWriterCallbacks *publication, const DDS::DataWriterQos &qos, const TransportLocatorSeq &transInfo, const DDS::PublisherQos &publisherQos)=0 |
virtual bool | remove_publication (DDS::DomainId_t domainId, const RepoId &participantId, const RepoId &publicationId)=0 |
virtual bool | ignore_publication (DDS::DomainId_t domainId, const RepoId &myParticipantId, const RepoId &ignoreId)=0 |
virtual bool | update_publication_qos (DDS::DomainId_t domainId, const RepoId &partId, const RepoId &dwId, const DDS::DataWriterQos &qos, const DDS::PublisherQos &publisherQos)=0 |
virtual void | pre_reader (DataReaderImpl *) |
virtual RepoId | add_subscription (DDS::DomainId_t domainId, const RepoId &participantId, const RepoId &topicId, DataReaderCallbacks *subscription, const DDS::DataReaderQos &qos, const TransportLocatorSeq &transInfo, const DDS::SubscriberQos &subscriberQos, const char *filterClassName, const char *filterExpression, const DDS::StringSeq &exprParams)=0 |
virtual bool | remove_subscription (DDS::DomainId_t domainId, const RepoId &participantId, const RepoId &subscriptionId)=0 |
virtual bool | ignore_subscription (DDS::DomainId_t domainId, const RepoId &myParticipantId, const RepoId &ignoreId)=0 |
virtual bool | update_subscription_qos (DDS::DomainId_t domainId, const RepoId &partId, const RepoId &drId, const DDS::DataReaderQos &qos, const DDS::SubscriberQos &subscriberQos)=0 |
virtual bool | update_subscription_params (DDS::DomainId_t domainId, const RepoId &participantId, const RepoId &subscriptionId, const DDS::StringSeq ¶ms)=0 |
virtual void | association_complete (DDS::DomainId_t domainId, const RepoId &participantId, const RepoId &localId, const RepoId &remoteId)=0 |
virtual bool | supports_liveliness () const |
virtual void | signal_liveliness (const DDS::DomainId_t, const RepoId &, DDS::LivelinessQosPolicyKind) |
Static Public Attributes | |
static const char | DEFAULT_REPO [] = "DEFAULT_REPO" |
Key value for the default repository IOR. | |
static const char | DEFAULT_RTPS [] = "DEFAULT_RTPS" |
static const char | DEFAULT_STATIC [] = "DEFAULT_STATIC" |
Protected Member Functions | |
DDS::ReturnCode_t | create_bit_topics (DomainParticipantImpl *participant) |
Private Attributes | |
RepoKey | key_ |
Classes | |
class | Config |
This class is an abstract class that acts as an interface for both InfoRepo-based discovery and RTPS Discovery.
Definition at line 46 of file Discovery.h.
typedef OPENDDS_STRING OpenDDS::DCPS::Discovery::RepoKey |
Key type for storing discovery objects. Probably should just be Discovery::Key
Definition at line 50 of file Discovery.h.
OpenDDS::DCPS::Discovery::Discovery | ( | const RepoKey & | key | ) | [inline, explicit] |
virtual bool OpenDDS::DCPS::Discovery::active | ( | ) | [inline, virtual] |
virtual AddDomainStatus OpenDDS::DCPS::Discovery::add_domain_participant | ( | DDS::DomainId_t | domain, | |
const DDS::DomainParticipantQos & | qos | |||
) | [pure virtual] |
Implemented in OpenDDS::DCPS::InfoRepoDiscovery, OpenDDS::RTPS::RtpsDiscovery, and OpenDDS::DCPS::StaticDiscovery.
virtual RepoId OpenDDS::DCPS::Discovery::add_publication | ( | DDS::DomainId_t | domainId, | |
const RepoId & | participantId, | |||
const RepoId & | topicId, | |||
DataWriterCallbacks * | publication, | |||
const DDS::DataWriterQos & | qos, | |||
const TransportLocatorSeq & | transInfo, | |||
const DDS::PublisherQos & | publisherQos | |||
) | [pure 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.
Implemented in OpenDDS::DCPS::PeerDiscovery< Participant >, OpenDDS::DCPS::InfoRepoDiscovery, OpenDDS::DCPS::PeerDiscovery< OpenDDS::RTPS::Spdp >, and OpenDDS::DCPS::PeerDiscovery< OpenDDS::DCPS::StaticParticipant >.
virtual RepoId OpenDDS::DCPS::Discovery::add_subscription | ( | DDS::DomainId_t | domainId, | |
const RepoId & | participantId, | |||
const RepoId & | topicId, | |||
DataReaderCallbacks * | subscription, | |||
const DDS::DataReaderQos & | qos, | |||
const TransportLocatorSeq & | transInfo, | |||
const DDS::SubscriberQos & | subscriberQos, | |||
const char * | filterClassName, | |||
const char * | filterExpression, | |||
const DDS::StringSeq & | exprParams | |||
) | [pure 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.
Implemented in OpenDDS::DCPS::PeerDiscovery< Participant >, OpenDDS::DCPS::InfoRepoDiscovery, OpenDDS::DCPS::PeerDiscovery< OpenDDS::RTPS::Spdp >, and OpenDDS::DCPS::PeerDiscovery< OpenDDS::DCPS::StaticParticipant >.
virtual TopicStatus OpenDDS::DCPS::Discovery::assert_topic | ( | RepoId_out | topicId, | |
DDS::DomainId_t | domainId, | |||
const RepoId & | participantId, | |||
const char * | topicName, | |||
const char * | dataTypeName, | |||
const DDS::TopicQos & | qos, | |||
bool | hasDcpsKey | |||
) | [pure virtual] |
virtual void OpenDDS::DCPS::Discovery::association_complete | ( | DDS::DomainId_t | domainId, | |
const RepoId & | participantId, | |||
const RepoId & | localId, | |||
const RepoId & | remoteId | |||
) | [pure virtual] |
virtual bool OpenDDS::DCPS::Discovery::attach_participant | ( | DDS::DomainId_t | domainId, | |
const RepoId & | participantId | |||
) | [pure virtual] |
virtual RepoId OpenDDS::DCPS::Discovery::bit_key_to_repo_id | ( | DomainParticipantImpl * | participant, | |
const char * | bit_topic_name, | |||
const DDS::BuiltinTopicKey_t & | key | |||
) | const [pure virtual] |
DDS::ReturnCode_t OpenDDS::DCPS::Discovery::create_bit_topics | ( | DomainParticipantImpl * | participant | ) | [protected] |
Definition at line 28 of file Discovery.cpp.
References OpenDDS::DCPS::BUILT_IN_PARTICIPANT_TOPIC, OpenDDS::DCPS::BUILT_IN_PARTICIPANT_TOPIC_TYPE, OpenDDS::DCPS::BUILT_IN_PUBLICATION_TOPIC, OpenDDS::DCPS::BUILT_IN_PUBLICATION_TOPIC_TYPE, OpenDDS::DCPS::BUILT_IN_SUBSCRIPTION_TOPIC, OpenDDS::DCPS::BUILT_IN_SUBSCRIPTION_TOPIC_TYPE, OpenDDS::DCPS::BUILT_IN_TOPIC_TOPIC, OpenDDS::DCPS::BUILT_IN_TOPIC_TOPIC_TYPE, OpenDDS::DCPS::DomainParticipantImpl::create_topic(), OpenDDS::DCPS::DEFAULT_STATUS_MASK, Registered_Data_Types, DDS::RETCODE_ERROR, DDS::RETCODE_OK, and TOPIC_QOS_DEFAULT.
Referenced by OpenDDS::DCPS::InfoRepoDiscovery::init_bit().
00029 { 00030 #ifndef DDS_HAS_MINIMUM_BIT 00031 00032 TypeSupport_var type_support = 00033 Registered_Data_Types->lookup(participant, BUILT_IN_PARTICIPANT_TOPIC_TYPE); 00034 00035 if (CORBA::is_nil(type_support)) { 00036 // Participant topic 00037 DDS::ParticipantBuiltinTopicDataTypeSupport_var ts = 00038 new DDS::ParticipantBuiltinTopicDataTypeSupportImpl; 00039 00040 DDS::ReturnCode_t ret = ts->register_type(participant, 00041 BUILT_IN_PARTICIPANT_TOPIC_TYPE); 00042 00043 if (ret != DDS::RETCODE_OK) { 00044 ACE_ERROR_RETURN((LM_ERROR, 00045 ACE_TEXT("(%P|%t) ") 00046 ACE_TEXT("Discovery::create_bit_topics, ") 00047 ACE_TEXT("register BUILT_IN_PARTICIPANT_TOPIC_TYPE returned %d.\n"), 00048 ret), 00049 ret); 00050 } 00051 } 00052 00053 DDS::Topic_var bit_part_topic = 00054 participant->create_topic(BUILT_IN_PARTICIPANT_TOPIC, 00055 BUILT_IN_PARTICIPANT_TOPIC_TYPE, 00056 TOPIC_QOS_DEFAULT, 00057 DDS::TopicListener::_nil(), 00058 DEFAULT_STATUS_MASK); 00059 00060 if (CORBA::is_nil(bit_part_topic)) { 00061 ACE_ERROR_RETURN((LM_ERROR, 00062 ACE_TEXT("(%P|%t) ") 00063 ACE_TEXT("Discovery::create_bit_topics, ") 00064 ACE_TEXT("Nil %C Topic\n"), 00065 BUILT_IN_PARTICIPANT_TOPIC), 00066 DDS::RETCODE_ERROR); 00067 } 00068 00069 // Topic topic 00070 type_support = 00071 Registered_Data_Types->lookup(participant, BUILT_IN_TOPIC_TOPIC_TYPE); 00072 00073 if (CORBA::is_nil(type_support)) { 00074 DDS::TopicBuiltinTopicDataTypeSupport_var ts = 00075 new DDS::TopicBuiltinTopicDataTypeSupportImpl; 00076 00077 DDS::ReturnCode_t ret = ts->register_type(participant, 00078 BUILT_IN_TOPIC_TOPIC_TYPE); 00079 00080 if (ret != DDS::RETCODE_OK) { 00081 ACE_ERROR_RETURN((LM_ERROR, 00082 ACE_TEXT("(%P|%t) ") 00083 ACE_TEXT("Discovery::create_bit_topics, ") 00084 ACE_TEXT("register BUILT_IN_TOPIC_TOPIC_TYPE returned %d.\n"), 00085 ret), 00086 ret); 00087 } 00088 } 00089 00090 DDS::Topic_var bit_topic_topic = 00091 participant->create_topic(BUILT_IN_TOPIC_TOPIC, 00092 BUILT_IN_TOPIC_TOPIC_TYPE, 00093 TOPIC_QOS_DEFAULT, 00094 DDS::TopicListener::_nil(), 00095 DEFAULT_STATUS_MASK); 00096 00097 if (CORBA::is_nil(bit_topic_topic)) { 00098 ACE_ERROR_RETURN((LM_ERROR, 00099 ACE_TEXT("(%P|%t) ") 00100 ACE_TEXT("Discovery::create_bit_topics, ") 00101 ACE_TEXT("Nil %C Topic\n"), 00102 BUILT_IN_TOPIC_TOPIC), 00103 DDS::RETCODE_ERROR); 00104 } 00105 00106 // Subscription topic 00107 type_support = 00108 Registered_Data_Types->lookup(participant, BUILT_IN_SUBSCRIPTION_TOPIC_TYPE); 00109 00110 if (CORBA::is_nil(type_support)) { 00111 DDS::SubscriptionBuiltinTopicDataTypeSupport_var ts = 00112 new DDS::SubscriptionBuiltinTopicDataTypeSupportImpl; 00113 00114 DDS::ReturnCode_t ret = ts->register_type(participant, 00115 BUILT_IN_SUBSCRIPTION_TOPIC_TYPE); 00116 00117 if (ret != DDS::RETCODE_OK) { 00118 ACE_ERROR_RETURN((LM_ERROR, 00119 ACE_TEXT("(%P|%t) ") 00120 ACE_TEXT("Discovery::create_bit_topics, ") 00121 ACE_TEXT("register BUILT_IN_SUBSCRIPTION_TOPIC_TYPE returned %d.\n"), 00122 ret), 00123 ret); 00124 } 00125 } 00126 00127 DDS::Topic_var bit_sub_topic = 00128 participant->create_topic(BUILT_IN_SUBSCRIPTION_TOPIC, 00129 BUILT_IN_SUBSCRIPTION_TOPIC_TYPE, 00130 TOPIC_QOS_DEFAULT, 00131 DDS::TopicListener::_nil(), 00132 DEFAULT_STATUS_MASK); 00133 00134 if (CORBA::is_nil(bit_sub_topic)) { 00135 ACE_ERROR_RETURN((LM_ERROR, 00136 ACE_TEXT("(%P|%t) ") 00137 ACE_TEXT("Discovery::create_bit_topics, ") 00138 ACE_TEXT("Nil %C Topic\n"), 00139 BUILT_IN_SUBSCRIPTION_TOPIC), 00140 DDS::RETCODE_ERROR); 00141 } 00142 00143 // Publication topic 00144 type_support = 00145 Registered_Data_Types->lookup(participant, BUILT_IN_PUBLICATION_TOPIC_TYPE); 00146 00147 if (CORBA::is_nil(type_support)) { 00148 DDS::PublicationBuiltinTopicDataTypeSupport_var ts = 00149 new DDS::PublicationBuiltinTopicDataTypeSupportImpl; 00150 00151 DDS::ReturnCode_t ret = ts->register_type(participant, 00152 BUILT_IN_PUBLICATION_TOPIC_TYPE); 00153 00154 if (ret != DDS::RETCODE_OK) { 00155 ACE_ERROR_RETURN((LM_ERROR, 00156 ACE_TEXT("(%P|%t) ") 00157 ACE_TEXT("Discovery::create_bit_topics, ") 00158 ACE_TEXT("register BUILT_IN_PUBLICATION_TOPIC_TYPE returned %d.\n"), 00159 ret), 00160 ret); 00161 } 00162 } 00163 00164 DDS::Topic_var bit_pub_topic = 00165 participant->create_topic(BUILT_IN_PUBLICATION_TOPIC, 00166 BUILT_IN_PUBLICATION_TOPIC_TYPE, 00167 TOPIC_QOS_DEFAULT, 00168 DDS::TopicListener::_nil(), 00169 DEFAULT_STATUS_MASK); 00170 00171 if (CORBA::is_nil(bit_pub_topic)) { 00172 ACE_ERROR_RETURN((LM_ERROR, 00173 ACE_TEXT("(%P|%t) ERROR: Discovery::create_bit_topics, ") 00174 ACE_TEXT("Nil %C Topic\n"), 00175 BUILT_IN_PUBLICATION_TOPIC), 00176 DDS::RETCODE_ERROR); 00177 } 00178 #else 00179 ACE_UNUSED_ARG(participant); 00180 #endif /* DDS_HAS_MINIMUM_BIT */ 00181 00182 return DDS::RETCODE_OK; 00183 }
virtual TopicStatus OpenDDS::DCPS::Discovery::find_topic | ( | DDS::DomainId_t | domainId, | |
const char * | topicName, | |||
CORBA::String_out | dataTypeName, | |||
DDS::TopicQos_out | qos, | |||
RepoId_out | topicId | |||
) | [pure virtual] |
virtual void OpenDDS::DCPS::Discovery::fini_bit | ( | DCPS::DomainParticipantImpl * | participant | ) | [pure virtual] |
virtual bool OpenDDS::DCPS::Discovery::ignore_domain_participant | ( | DDS::DomainId_t | domainId, | |
const RepoId & | myParticipantId, | |||
const RepoId & | ignoreId | |||
) | [pure virtual] |
virtual bool OpenDDS::DCPS::Discovery::ignore_publication | ( | DDS::DomainId_t | domainId, | |
const RepoId & | myParticipantId, | |||
const RepoId & | ignoreId | |||
) | [pure virtual] |
virtual bool OpenDDS::DCPS::Discovery::ignore_subscription | ( | DDS::DomainId_t | domainId, | |
const RepoId & | myParticipantId, | |||
const RepoId & | ignoreId | |||
) | [pure virtual] |
virtual bool OpenDDS::DCPS::Discovery::ignore_topic | ( | DDS::DomainId_t | domainId, | |
const RepoId & | myParticipantId, | |||
const RepoId & | ignoreId | |||
) | [pure virtual] |
virtual DDS::Subscriber_ptr OpenDDS::DCPS::Discovery::init_bit | ( | DomainParticipantImpl * | participant | ) | [pure virtual] |
RepoKey OpenDDS::DCPS::Discovery::key | ( | ) | const [inline] |
Definition at line 70 of file Discovery.h.
Referenced by OpenDDS::DCPS::InfoRepoDiscovery::bit_config(), OpenDDS::DCPS::InfoRepoDiscovery::bit_key_to_repo_id(), OpenDDS::DCPS::InfoRepoDiscovery::get_dcps_info(), and OpenDDS::DCPS::InfoRepoDiscovery::init_bit().
00070 { return this->key_; }
virtual void OpenDDS::DCPS::Discovery::pre_reader | ( | DataReaderImpl * | ) | [inline, virtual] |
virtual void OpenDDS::DCPS::Discovery::pre_writer | ( | DataWriterImpl * | ) | [inline, virtual] |
virtual bool OpenDDS::DCPS::Discovery::remove_domain_participant | ( | DDS::DomainId_t | domainId, | |
const RepoId & | participantId | |||
) | [pure virtual] |
virtual bool OpenDDS::DCPS::Discovery::remove_publication | ( | DDS::DomainId_t | domainId, | |
const RepoId & | participantId, | |||
const RepoId & | publicationId | |||
) | [pure virtual] |
virtual bool OpenDDS::DCPS::Discovery::remove_subscription | ( | DDS::DomainId_t | domainId, | |
const RepoId & | participantId, | |||
const RepoId & | subscriptionId | |||
) | [pure virtual] |
virtual TopicStatus OpenDDS::DCPS::Discovery::remove_topic | ( | DDS::DomainId_t | domainId, | |
const RepoId & | participantId, | |||
const RepoId & | topicId | |||
) | [pure virtual] |
virtual void OpenDDS::DCPS::Discovery::signal_liveliness | ( | const DDS::DomainId_t | , | |
const RepoId & | , | |||
DDS::LivelinessQosPolicyKind | ||||
) | [inline, virtual] |
virtual bool OpenDDS::DCPS::Discovery::supports_liveliness | ( | ) | const [inline, virtual] |
virtual bool OpenDDS::DCPS::Discovery::update_domain_participant_qos | ( | DDS::DomainId_t | domain, | |
const RepoId & | participantId, | |||
const DDS::DomainParticipantQos & | qos | |||
) | [pure virtual] |
virtual bool OpenDDS::DCPS::Discovery::update_publication_qos | ( | DDS::DomainId_t | domainId, | |
const RepoId & | partId, | |||
const RepoId & | dwId, | |||
const DDS::DataWriterQos & | qos, | |||
const DDS::PublisherQos & | publisherQos | |||
) | [pure virtual] |
virtual bool OpenDDS::DCPS::Discovery::update_subscription_params | ( | DDS::DomainId_t | domainId, | |
const RepoId & | participantId, | |||
const RepoId & | subscriptionId, | |||
const DDS::StringSeq & | params | |||
) | [pure virtual] |
virtual bool OpenDDS::DCPS::Discovery::update_subscription_qos | ( | DDS::DomainId_t | domainId, | |
const RepoId & | partId, | |||
const RepoId & | drId, | |||
const DDS::DataReaderQos & | qos, | |||
const DDS::SubscriberQos & | subscriberQos | |||
) | [pure virtual] |
virtual bool OpenDDS::DCPS::Discovery::update_topic_qos | ( | const RepoId & | topicId, | |
DDS::DomainId_t | domainId, | |||
const RepoId & | participantId, | |||
const DDS::TopicQos & | qos | |||
) | [pure virtual] |
const char OpenDDS::DCPS::Discovery::DEFAULT_REPO = "DEFAULT_REPO" [static] |
Key value for the default repository IOR.
Definition at line 55 of file Discovery.h.
Referenced by OpenDDS::DCPS::InfoRepoDiscovery::Config::discovery_config(), OpenDDS::DCPS::Service_Participant::domain_to_repo(), OpenDDS::DCPS::Service_Participant::get_discovery(), InfoRepo::init(), OpenDDS::DCPS::Service_Participant::load_common_configuration(), OpenDDS::DCPS::Service_Participant::load_domain_configuration(), OpenDDS::DCPS::Service_Participant::parse_args(), OpenDDS::DCPS::Service_Participant::set_repo_domain(), and OpenDDS::DCPS::Service_Participant::set_repo_ior().
const char OpenDDS::DCPS::Discovery::DEFAULT_RTPS = "DEFAULT_RTPS" [static] |
Definition at line 56 of file Discovery.h.
Referenced by OpenDDS::DCPS::Service_Participant::get_discovery(), and OpenDDS::DCPS::Service_Participant::load_domain_configuration().
const char OpenDDS::DCPS::Discovery::DEFAULT_STATIC = "DEFAULT_STATIC" [static] |
Definition at line 57 of file Discovery.h.
Referenced by OpenDDS::DCPS::Service_Participant::load_domain_configuration().
RepoKey OpenDDS::DCPS::Discovery::key_ [private] |
Definition at line 235 of file Discovery.h.