The specification already provides the operations get_matched_publication_data and get_matched_subscription_data on the DataReader and DataWriter. These operations allow applications to look up information about entities that exist in the domain without having to use the built-in DataReaders directly. It would be useful to have the corresponding ability to look up information about remote DomainParticipants and Topics; however, no such operations exist.
Proposed Resolution:
Add the following operations:
· ReturnCode_t DomainParticipant::get_discovered_participants(inout InstanceHandle_t[] participant_handles)
· ReturnCode_t DomainParticipant::get_discovered_participant_data(inout ParticipantBuiltinTopicData publication_data, InstanceHandle_t participant_handle)
· ReturnCode_t DomainParticipant::get_discovered_topics(inout InstanceHandle_t[]topic_handles)
· ReturnCode_t DomainParticipant::get_discovered_topic_data(inout TopicBuiltinTopicData topic_data, InstanceHandle_t topic_handle)
Proposed Revised Text:
Add the names of the aforementioned new operations to figure 2-6.
Append the following rows to the DomainParticipant Class table in 2.1.2.2.1:
get_discovered_participant_data ReturnCode_t
inout: publication_data ParticipantBuiltinTopicData
participant_handle InstanceHandle
get_discovered_participants ReturnCode_t
inout: participant_handles InstanceHandle_t []
get_discovered_topic_data ReturnCode_t
inout: topic_data TopicBuiltinTopicData
topic_handle InstanceHandle
get_discovered_topics ReturnCode_t
inout: topic_handles InstanceHandle_t []
Insert new sections to describe the new operations:
2.1.2.2.1.26 get_discovered_participant_data
This operation retrieves information on a DomainParticipant that has been discovered on the network. The participant must be in the same domain as the participant on which this operation is invoked and must not have been "ignored" by means of the DomainParticipant ignore_participant operation.
The participant_handle must correspond to such a DomainParticipant. Otherwise, the operation will fail and return PRECONDITION_NOT_MET.
Use the operation get_matched_participants to find the DomainParticipants that are currently discovered.
The operation may also fail if the infrastructure does not hold the information necessary to fill in the participant_data. In this case the operation will return UNSUPPORTED.
2.1.2.2.1.27 get_discovered_participants
This operation retrieves the list of DomainParticipants that have been discovered in the domain and that the application has not indicated should be "ignored" by means of the DomainParticipant ignore_participant operation.
The operation may fail if the infrastructure does not locally maintain the connectivity information. In this case the operation will return UNSUPPORTED.
2.1.2.2.1.26 get_discovered_topic_data
This operation retrieves information on a Topic that has been discovered on the network. The topic must have been created by a participant in the same domain as the participant on which this operation is invoked and must not have been "ignored" by means of the DomainParticipant ignore_topic operation.
The topic_handle must correspond to such a topic. Otherwise, the operation will fail and return PRECONDITION_NOT_MET.
Use the operation get_discovered_topics to find the topics that are currently discovered.
The operation may also fail if the infrastructure does not hold the information necessary to fill in the topic_data. In this case the operation will return UNSUPPORTED.
2.1.2.2.1.27 get_discovered_topics
This operation retrieves the list of Topics that have been discovered in the domain and that the application has not indicated should be "ignored" by means of the DomainParticipant ignore_topic operation.
The operation may fail if the infrastructure does not locally maintain the connectivity information. In this case the operation will return UNSUPPORTED.