struct DDS_PublisherQos publisher_qos = DDS_PublisherQos_INITIALIZER; DDS_Publisher* publisher; struct DDS_PublisherListener publisher_listener = DDS_PublisherListener_INITIALIZER; DDS_ReturnCode_t retcode; /* MyPublisherListener_* functions are user defined to match DDS_PublisherListener functions */ publisher_listener.as_datawriterlistener.on_offered_deadline_missed = MyPublisherListener_OfferedDeadlineMissed; publisher_listener.as_datawriterlistener.on_offered_incompatible_qos = MyPublisherListener_OfferedIncompatibleQos; publisher_listener.as_datawriterlistener.on_liveliness_lost = MyPublisherListener_LivelinessLost; publisher_listener.as_datawriterlistener.on_publication_matched = MyPublisherListener_PublicationMatch; retcode = DDS_DomainParticipant_get_default_publisher_qos(participant, &publisher_qos); if (retcode != DDS_RETCODE_OK) { printf("***Error: failed to get default publisher qos\n"); } publisher = DDS_DomainParticipant_create_publisher(participant, &publisher_qos, &publisher_listener /* or NULL */, DDS_STATUS_MASK_ALL); if (publisher == NULL) { printf("***Error: failed to create publisher\n"); }
DDS_ReturnCode_t retcode; retcode = DDS_DomainParticipant_delete_publisher(participant, publisher); if (retcode != DDS_RETCODE_OK) { printf("***Error: failed to delete publisher\n"); }