Working with domain partcipants.
More...
Working with domain participants.
- Get the DDS_DomainParticipantFactory instance:
- Create DDS_DomainParticipant:
struct DDS_DomainParticipantQos participant_qos =
DDS_DomainParticipantQos_INITIALIZER;
DDS_DomainParticipant* participant;
struct DDS_DomainParticipantListener participant_listener =
DDS_DomainParticipantListener_INITIALIZER;
DDS_ReturnCode_t retcode;
const char* NDDS_DISCOVERY_INITIAL_PEERS[] = {
"host1",
"10.10.30.192",
"1@localhost",
"2@host2",
"my://",
"2@shmem://",
"FF00:ABCD::0",
"sf://0/0/R",
"1@FF00:0:1234::0",
"225.1.2.3",
"3@225.1.0.55",
"FAA0::0#0/0/R",
};
const long NDDS_DISCOVERY_INITIAL_PEERS_LENGTH =
sizeof(NDDS_DISCOVERY_INITIAL_PEERS)/sizeof(const char*);
participant_listener.as_topiclistener.on_inconsistent_topic =
MyDomainParticipantListener_InconsistentTopic;
participant_listener.as_publisherlistener.as_datawriterlistener.on_offered_deadline_missed =
MyDomainParticipantListener_OfferedDeadlineMissed;
participant_listener.as_publisherlistener.as_datawriterlistener.on_offered_incompatible_qos =
MyDomainParticipantListener_OfferedIncompatibleQos;
participant_listener.as_publisherlistener.as_datawriterlistener.on_liveliness_lost =
MyDomainParticipantListener_LivelinessLost;
participant_listener.as_publisherlistener.as_datawriterlistener.on_publication_matched =
MyDomainParticipantListener_PublicationMatch;
participant_listener.as_subscriberlistener.on_data_on_readers =
MyDomainParticipantListener_DataOnReaders;
participant_listener.as_subscriberlistener.as_datareaderlistener.on_requested_deadline_missed =
MyDomainParticipantListener_RequestedDeadlineMissed;
participant_listener.as_subscriberlistener.as_datareaderlistener.on_requested_incompatible_qos =
MyDomainParticipantListener_RequestedIncompatibleQos;
participant_listener.as_subscriberlistener.as_datareaderlistener.on_sample_rejected =
MyDomainParticipantListener_SampleRejected;
participant_listener.as_subscriberlistener.as_datareaderlistener.on_liveliness_changed =
MyDomainParticipantListener_LivelinessChanged;
participant_listener.as_subscriberlistener.as_datareaderlistener.on_data_available =
MyDomainParticipantListener_DataAvailable;
participant_listener.as_subscriberlistener.as_datareaderlistener.on_subscription_matched =
MyDomainParticipantListener_SubscriptionMatched;
participant_listener.as_subscriberlistener.as_datareaderlistener.on_sample_lost =
MyDomainParticipantListener_SampleLost;
retcode = DDS_DomainParticipantFactory_get_default_participant_qos(factory,
&participant_qos);
if (retcode != DDS_RETCODE_OK) {
printf("***Error: failed to get default participant qos\n");
}
if (!DDS_StringSeq_from_array(&participant_qos.discovery.initial_peers,
NDDS_DISCOVERY_INITIAL_PEERS,
NDDS_DISCOVERY_INITIAL_PEERS_LENGTH)) {
printf("***Error: failed to set discovery.initial_peers qos\n");
}
participant =
DDS_DomainParticipantFactory_create_participant(factory,
domain_id,
&participant_qos,
&participant_listener ,
DDS_STATUS_MASK_ALL);
if (participant == NULL) {
printf("***Error: failed to create domain participant\n");
}
return participant;
- Delete DDS_DomainParticipant: