RTI Connext Micro  Version 2.4.1.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
dds_c_publication.h
Go to the documentation of this file.
1 /*
2  * FILE: dds_c_publication.h - DDS publication module
3  *
4  * (c) Copyright, Real-Time Innovations, 2012-2014.
5  *
6  * All rights reserved.
7  *
8  * No duplications, whole or partial, manual or electronic, may be made
9  * without express written permission. Any such copies, or
10  * revisions thereof, must display this notice unaltered.
11  * This code contains trade secrets of Real-Time Innovations, Inc.
12  *
13  * Modification History
14  * --------------------
15  * 20sep2014,as Explicitly define public support functions for Status types
16  * 07may2014,as MICRO-784 Expose get_X_status API in C++
17  * 19mar2014,tk MICRO-74: Support endpoint specific transport
18  * 04mar2014,tk MICRO-84: Added C listener for writer-side notification of
19  * unacknowledged samples
20  * 19jul2013,as Added support for C++
21  * 06feb2013,eh MICRO-262: add writer_resource_limits
22  * 30apr2012,tk Written
23  */
24 /*ce
25  * \file
26  * \brief DDS publication module
27  */
28 /*e
29  @addtogroup DDSPublicationModule
30  @ingroup DDSCModule
31 
32  @brief Defines the \dds publication package
33 */
34 #ifndef dds_c_publication_h
35 #define dds_c_publication_h
36 
37 #include "dds_c_sequence.h"
38 
39 #ifndef db_api_h
40 #include "db/db_api.h"
41 #endif
42 #ifndef dds_c_topic_h
43 #include "dds_c/dds_c_topic.h"
44 #endif
45 
46 #ifdef __cplusplus
47 extern "C"
48 {
49 #endif
50 
51 
52 /* ================================================================= */
53 /* Typedef for DataWriter */
54 /* ================================================================= */
55 
56 /*ce \dref_DataWriter
57  */
58 typedef struct DDS_DataWriterImpl DDS_DataWriter;
59 
60 /* ================================================================= */
61 /* Typedef for Publisher */
62 /* ================================================================= */
63 
64 /*ce \dref_Publisher
65  */
66 typedef struct DDS_PublisherImpl DDS_Publisher;
67 
68 /*i @ingroup DDSPublicationModule
69  @brief Pointer to DDS_Publisher.
70  */
71 typedef DDS_Publisher *DDS_Publisher_ptr;
72 
73 DDS_SEQUENCE(DDS_PublisherSeq, DDS_Publisher_ptr)
74 
75 #ifdef DOXYGEN_DOCUMENTATION_ONLY
76 /*ce \dref_PublisherSeq
77  */
78 struct DDS_PublisherSeq {};
79 #endif
80 
81 /* ================================================================= */
82 /* Status */
83 /* ================================================================= */
84 
85 /*e \dref_OfferedDeadlineMissedStatus
86  */
88 {
89  /*e \dref_OfferedDeadlineMissedStatus_total_count
90  *
91  * \brief total count
92  */
94 
95  /*e \dref_OfferedDeadlineMissedStatus_total_count_change
96  */
98 
99  /*e \dref_OfferedDeadlineMissedStatus_last_instance_handle
100  */
102 
103  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_OfferedDeadlineMissedStatus)
104 };
105 
106 /*ce \dref_OfferedDeadlineMissedStatus_INITIALIZER
107  */
108 #define DDS_OfferedDeadlineMissedStatus_INITIALIZER \
109  { 0L, 0L, DDS_HANDLE_NIL_NATIVE }
110 
111 /*ci \dref_OfferedDeadlineMissedStatus_reset
112  */
113 #define DDS_OfferedDeadlineMissedStatus_reset(_s) \
114 {\
115  (_s)->total_count_change = 0;\
116 }
117 
118 /* ----------------------------------------------------------------- */
119 
120 /*e \dref_LivelinessLostStatus
121  */
123 {
124  /*e \dref_LivelinessLostStatus_total_count
125  */
127 
128  /*e \dref_LivelinessLostStatus_total_count_change
129  */
131 
132  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_LivelinessLostStatus)
133 };
134 
135 /*ce \dref_LivelinessLostStatus_INITIALIZER
136  */
137 #define DDS_LivelinessLostStatus_INITIALIZER { 0L, 0L }
138 
139 /*ci \dref_LivelinessLostStatus_reset
140  */
141 #define DDS_LivelinessLostStatus_reset(_s) \
142 {\
143  (_s)->total_count_change = 0;\
144 }
145 
146 /* ----------------------------------------------------------------- */
147 
148 /*e \dref_OfferedIncompatibleQosStatus
149  */
151 {
152  /*e \dref_OfferedIncompatibleQosStatus_total_count
153  */
155 
156  /*e \dref_OfferedIncompatibleQosStatus_total_count_change
157  */
159 
160  /*e \dref_OfferedIncompatibleQosStatus_last_policy_id
161  */
163 
164  /*e \dref_OfferedIncompatibleQosStatus_policies
165  */
166  struct DDS_QosPolicyCountSeq policies;
167 
168  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_OfferedIncompatibleQosStatus)
169 };
170 
171 /*ce \dref_OfferedIncompatibleQosStatus_INITIALIZER
172  */
173 #define DDS_OfferedIncompatibleQosStatus_INITIALIZER \
174  { 0L, 0L,DDS_INVALID_QOS_POLICY_ID, DDS_SEQUENCE_INITIALIZER(struct DDS_QosPolicyCount) }
175 
176 /*ci \dref_OfferedIncompatibleQosStatus_reset
177  */
178 #define DDS_OfferedIncompatibleQosStatus_reset(_s) \
179 {\
180  (_s)->total_count_change = 0;\
181 }
182 
183 /* ----------------------------------------------------------------- */
184 
185 /*e \dref_PublicationMatchedStatus
186  */
188 {
189  /*e \dref_PublicationMatchedStatus_total_count
190  */
192 
193  /*e \dref_PublicationMatchedStatus_total_count_change
194  */
196 
197  /*e \dref_PublicationMatchedStatus_current_count
198  */
200 
201  /*e \dref_PublicationMatchedStatus_current_count_change
202  */
204 
205  /*e \dref_PublicationMatchedStatus_last_subscription_handle
206  */
208 
209  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_PublicationMatchedStatus)
210 };
211 
212 /*ce \dref_PublicationMatchedStatus_INITIALIZER
213  */
214 #define DDS_PublicationMatchedStatus_INITIALIZER \
215  { 0L, 0L, 0L, 0L, DDS_HANDLE_NIL_NATIVE }
216 
217 /*ci \dref_PublicationMatchedStatus_reset
218  */
219 #define DDS_PublicationMatchedStatus_reset(_s) \
220 {\
221  (_s)->total_count_change = 0;\
222  (_s)->current_count_change = 0;\
223 }
224 
225 /* ------------------------------------------------------------------------ */
226 
227 /*e \dref_ReliableReaderActivityChangedStatus
228  */
230 {
231  /*e \dref_ReliableReaderActivityChangedStatus_active_count
232  */
234 
235  /*e \dref_ReliableReaderActivityChangedStatus_inactive_count
236  */
238 
239  /*e \dref_ReliableReaderActivityChangedStatus_active_count_change
240  */
242 
243  /*e \dref_ReliableReaderActivityChangedStatus_inactive_count_change
244  */
246 
247  /*e \dref_ReliableReaderActivityChangedStatus_last_instance_handle
248  */
250 
251  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_ReliableReaderActivityChangedStatus)
252 };
253 
254 /*e \dref_ReliableReaderActivityChangedStatus_INITIALIZER
255  */
256 #define DDS_ReliableReaderActivityChangedStatus_INITIALIZER \
257  {0, 0, 0, 0,DDS_HANDLE_NIL_NATIVE}
258 
259 /*ci \dref_ReliableReaderActivityChangedStatus_reset
260  */
261 #define DDS_ReliableReaderActivityChangedStatus_reset(_s) \
262 {\
263  (_s)->active_count_change = 0;\
264  (_s)->inactive_count_change = 0;\
265 }
266 
267 /* ------------------------------------------------------------------------ */
268 
269 /*i \dref_ReliableSampleUnacknowledgedStatus
270  */
271 struct DDS_ReliableSampleUnacknowledgedStatus
272 {
273  /*i \dref_ReliableSampleUnacknowledgedStatus_sequence_number
274  */
275  struct DDS_SequenceNumber_t sequence_number;
276 
277  /*i \dref_ReliableSampleUnacknowledgedStatus_unacknowledged_count
278  */
279  DDS_Long unacknowledged_count;
280 
281  /*i \dref_ReliableSampleUnacknowledgedStatus_instance_handle
282  */
283  DDS_InstanceHandle_t instance_handle;
284 };
285 
286 /*i \dref_ReliableSampleUnacknowledgedStatus_INITIALIZER
287  */
288 #define DDS_ReliableSampleUnacknowledgedStatus_INITIALIZER \
289 {\
290  {0,0},\
291  0,\
292  DDS_HANDLE_NIL_NATIVE\
293 }
294 
295 /*i \dref_OfferedDeadlineMissedStatus_initialize
296  */
297 DDSCDllExport DDS_ReturnCode_t
298 DDS_OfferedDeadlineMissedStatus_initialize(
299  struct DDS_OfferedDeadlineMissedStatus *self);
300 
301 /*i \dref_OfferedIncompatibleQosStatus_initialize
302  */
303 DDSCDllExport DDS_ReturnCode_t
304 DDS_OfferedIncompatibleQosStatus_initialize(
305  struct DDS_OfferedIncompatibleQosStatus *self);
306 
307 /*i \dref_PublicationMatchedStatus_initialize
308  */
309 DDSCDllExport DDS_ReturnCode_t
310 DDS_PublicationMatchedStatus_initialize(
311  struct DDS_PublicationMatchedStatus *self);
312 
313 /*i \dref_LivelinessLostStatus_initialize
314  */
315 DDSCDllExport DDS_ReturnCode_t
316 DDS_LivelinessLostStatus_initialize(
317  struct DDS_LivelinessLostStatus *self);
318 
319 /*i \dref_ReliableReaderActivityChangedStatus_initialize
320  */
321 DDSCDllExport DDS_ReturnCode_t
322 DDS_ReliableReaderActivityChangedStatus_initialize(
324 
325 /* ----------------------------------------------------------------- */
326 
327 #ifdef __cplusplus
328 } /* extern "C" */
329 #endif
330 
331 /* ================================================================= */
332 /* QoS */
333 /* ================================================================= */
334 
335 /*i \dref_DataWriterData
336  */
337 struct DDS_DataWriterData
338 {
339  struct DDS_LocatorSeq *unicast_locator;
340 };
341 
342 /*e \dref_DataWriterQos
343  */
345 {
346  /*e \dref_DataWriterQos_deadline
347  */
349 
350  /*e \dref_DataWriterQos_liveliness
351  */
353 
354  /*e \dref_DataWriterQos_history
355  */
357 
358  /*e \dref_DataWriterQos_resource_limits
359  */
361 
362  /*e \dref_DataWriterQos_ownership
363  */
365 
366  /*e \dref_DataWriterQos_ownership_strength
367  */
369 
370  /*e \dref_DataWriterQos_reliability
371  */
373 
374  /*e \dref_DataWriterQos_durability
375  */
377 
378  /* --- Extensions: ---------------------------------------------------- */
379 
380  /*e \dref_DataWriterQos_protocol
381  */
383 
384  /*i \dref_DataWriterQos_type_support
385  */
386  struct DDS_TypeSupportQosPolicy type_support;
387 
388  /*e \dref_DataWriterQos_transport
389  */
391 
392  /*i \dref_DataWriterQos_management
393  */
394  struct RTI_ManagementQosPolicy management;
395 
396  /*i \dref_DataWriterQos_writer_resource_limits
397  */
398  struct DDS_DataWriterResourceLimitsQosPolicy writer_resource_limits;
399 
400  struct DDS_DataWriterData *data;
401 
402  DDSC_CPP_SUPPORT_METHODS_EXTENDED(DDS_DataWriterQos)
403 };
404 
405 #ifdef __cplusplus
406 extern "C" {
407 #endif
408 
409 /* #if INCLUDE_API_QOS */
410 /*ce \dref_DataWriterQos_initialize
411  */
412 DDSCDllExport DDS_ReturnCode_t
414 
415 /* #if INCLUDE_API_QOS */
416 /*ce \dref_DataWriterQos_copy
417  */
418 DDSCDllExport DDS_ReturnCode_t
420  const struct DDS_DataWriterQos *source);
421 
422 
423 /*i \dref_DataWriterQos_is_equal
424  */
425 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
426 DDS_DataWriterQos_is_equal(const struct DDS_DataWriterQos *left,
427  const struct DDS_DataWriterQos *right);
428 
429 #ifndef RTI_CERT
430 /*ce \dref_DataWriterQos_finalize
431  */
432 DDSCDllExport DDS_ReturnCode_t
434 #endif /* !RTI_CERT */
435 
436 /*ce \dref_DataWriterQos_INITIALIZER
437  */
438 #define DDS_DataWriterQos_INITIALIZER { \
439  DDS_DEADLINE_QOS_POLICY_DEFAULT, \
440  DDS_LIVELINESS_QOS_POLICY_DEFAULT, \
441  DDS_HISTORY_QOS_POLICY_DEFAULT, \
442  DDS_RESOURCE_LIMITS_QOS_POLICY_DEFAULT, \
443  DDS_OWNERSHIP_QOS_POLICY_DEFAULT, \
444  DDS_OWNERSHIP_STRENGTH_QOS_POLICY_DEFAULT, \
445  DDS_RELIABILITY_QOS_POLICY_DEFAULT, \
446  DDS_DURABILITY_QOS_POLICY_DEFAULT, \
447  DDS_DATA_WRITER_PROTOCOL_QOS_POLICY_DEFAULT, \
448  DDS_TYPESUPPORT_QOS_POLICY_DEFAULT, \
449  DDS_TRANSPORT_QOS_POLICY_DEFAULT, \
450  RTI_MANAGEMENT_QOS_POLICY_DEFAULT, \
451  DDS_DATAWRITERRESOURCE_LIMITS_QOS_POLICY_DEFAULT, \
452  NULL \
453 }
454 
455 #ifdef __cplusplus
456 } /* extern "C" */
457 #endif
458 
459 /* ----------------------------------------------------------------- */
460 
461 /*e \dref_PublisherQos
462  */
464 {
465  /*e \dref_PublisherQos_entity_factory
466  */
468 
469  /*i \dref_PublisherQos_management
470  */
471  struct RTI_ManagementQosPolicy management;
472 
473  DDSC_CPP_SUPPORT_METHODS_EXTENDED(DDS_PublisherQos)
474 };
475 
476 #ifdef __cplusplus
477 extern "C" {
478 #endif
479 
480 /*ce \dref_PublisherQos_initialize
481  */
482 /* #if INCLUDE_API_QOS */
483 DDSCDllExport DDS_ReturnCode_t
485 
486 /*ce \dref_PublisherQos_copy
487  */
488 DDSCDllExport DDS_ReturnCode_t
490  const struct DDS_PublisherQos *source);
491 
492 /*i \dref_PublisherQos_is_equal
493  */
494 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
495 DDS_PublisherQos_is_equal(const struct DDS_PublisherQos *left,
496  const struct DDS_PublisherQos *right);
497 
498 #ifndef RTI_CERT
499 /*ce \dref_PublisherQos_finalize
500  */
501 DDSCDllExport DDS_ReturnCode_t
503 #endif
504 
505 /*ce \dref_PublisherQos_INITIALIZER
506  */
507 #define DDS_PublisherQos_INITIALIZER { \
508  DDS_ENTITY_FACTORY_QOS_POLICY_DEFAULT, \
509  RTI_MANAGEMENT_QOS_POLICY_DEFAULT \
510 }
511 
512 /* ================================================================= */
513 /* Listeners */
514 /* ================================================================= */
515 
516 /*ce \dref_DataWriterListener_OfferedDeadlineMissedCallback
517  */
518 typedef void
520  void *listener_data,
521  DDS_DataWriter* writer,
522  const struct DDS_OfferedDeadlineMissedStatus* status);
523 
524 /* ----------------------------------------------------------------- */
525 /*ce \dref_DataWriterListener_LivelinessLostCallback
526  */
527 typedef void
529  void *listener_data,
530  DDS_DataWriter *writer,
531  const struct DDS_LivelinessLostStatus *status);
532 
533 /* ----------------------------------------------------------------- */
534 /*ce \dref_DataWriterListener_OfferedIncompatibleQosCallback
535  */
536 typedef void
538  void *listener_data,
539  DDS_DataWriter* writer,
540  const struct DDS_OfferedIncompatibleQosStatus *status);
541 
542 /* ----------------------------------------------------------------- */
543 /*ce \dref_DataWriterListener_PublicationMatchedCallback
544  */
546  void *listener_data,
547  DDS_DataWriter *writer,
548  const struct DDS_PublicationMatchedStatus *status);
549 
550 /* ------------------------------------------------------------------------ */
551 /*e \dref_DataWriterListener_ReliableReaderActivityChangedCallback
552  */
553 typedef void
555  void *listener_data,
556  DDS_DataWriter * writer,
557  const struct DDS_ReliableReaderActivityChangedStatus * status);
558 
559 /* ------------------------------------------------------------------------ */
560 /*i \dref_DataWriterListener_ReliableSampleUnacknowledgedCallback
561  */
562 typedef void
563 (*DDS_DataWriterListener_ReliableSampleUnacknowledgedCallback)(
564  void *listener_data,
565  DDS_DataWriter *writer,
566  const struct DDS_ReliableSampleUnacknowledgedStatus *status);
567 
568 /* ----------------------------------------------------------------- */
569 /*ce \dref_DataWriterListener
570  */
572 {
573  /*ce \dref_DataWriterListener_as_listener
574  */
576 
577  /*ce \dref_DataWriterListener_on_offered_deadline_missed
578  */
581 
582  /*ce \dref_DataWriterListener_on_offered_incompatible_qos
583  */
586 
587  /*ce \dref_DataWriterListener_on_liveliness_lost
588  */
590 
591  /*ce \dref_DataWriterListener_on_publication_matched
592  */
595 
596  /*e \dref_DataWriterListener_on_reliable_reader_activity_changed
597  */
600 
601  /*i \dref_DataWriterListener_on_reliable_sample_unacknowledged
602  */
603  DDS_DataWriterListener_ReliableSampleUnacknowledgedCallback
604  on_reliable_sample_unacknowledged;
605 };
606 
607 /*ce \dref_DataWriterListener_INITIALIZER
608  */
609 #define DDS_DataWriterListener_INITIALIZER { \
610  DDS_Listener_INITIALIZER, \
611  (DDS_DataWriterListener_OfferedDeadlineMissedCallback)NULL, \
612  (DDS_DataWriterListener_OfferedIncompatibleQosCallback)NULL, \
613  (DDS_DataWriterListener_LivelinessLostCallback)NULL, \
614  (DDS_DataWriterListener_PublicationMatchedCallback)NULL,\
615  NULL,\
616  NULL\
617 }
618 
619 /* ----------------------------------------------------------------- */
620 /*ce \dref_PublisherListener
621  */
623 {
624  /*ce \dref_PublisherListener_as_datawriterlistener
625  */
627 };
628 
629 /*ce \dref_PublisherListener_INITIALIZER
630  */
631 #define DDS_PublisherListener_INITIALIZER { \
632  DDS_DataWriterListener_INITIALIZER }
633 
634 /* ================================================================= */
635 /* Publisher */
636 /* ================================================================= */
637 
638 /* ----------------------------------------------------------------- */
639 
640 /*e \dref_DATAWRITER_QOS_DEFAULT
641  */
642 extern DDSCDllVariable const struct DDS_DataWriterQos
644 
645 /* ----------------------------------------------------------------- */
646 #define DDS_Publisher_as_entity(publisherPtr) \
647  ((DDS_Entity*) publisherPtr)
648 
649 #ifdef DOXYGEN_DOCUMENTATION_ONLY
650 /*ce \dref_Publisher_as_entity
651  */
653 #endif /*DOXYGEN_DOCUMENTATION_ONLY */
654 
655 /* ----------------------------------------------------------------- */
656 /* #if INCLUDE_API_QOS */
657 /*ce \dref_Publisher_get_default_datawriter_qos
658  */
659 DDSCDllExport DDS_ReturnCode_t
661  DDS_Publisher *self,
662  struct DDS_DataWriterQos *qos);
663 
664 /* ----------------------------------------------------------------- */
665 /* #if INCLUDE_API_QOS */
666 /*ce \dref_Publisher_set_default_datawriter_qos
667  */
668 DDSCDllExport DDS_ReturnCode_t
670  DDS_Publisher * self,
671  const struct DDS_DataWriterQos
672  *qos);
673 
674 /* ----------------------------------------------------------------- */
675 /*ce \dref_Publisher_create_datawriter
676  */
677 DDSCDllExport DDS_DataWriter*
679  DDS_Publisher *self,
680  DDS_Topic *topic,
681  const struct DDS_DataWriterQos *qos,
682  const struct DDS_DataWriterListener *listener,
683  DDS_StatusMask mask);
684 
685 /* ----------------------------------------------------------------- */
686 /*ce \dref_Publisher_enable
687  */
688 DDSCDllExport DDS_ReturnCode_t
690 
691 /* ----------------------------------------------------------------- */
692 #ifndef RTI_CERT
693 /*ce \dref_Publisher_delete_datawriter
694  */
695 DDSCDllExport DDS_ReturnCode_t
697  DDS_Publisher *self,
698  DDS_DataWriter *a_datawriter);
699 #endif
700 
701 /* ----------------------------------------------------------------- */
702 /*ce \dref_Publisher_lookup_datawriter
703  */
704 /* #if INCLUDE_API_LOOKUP || RTI_CERT */
705 DDSCDllExport DDS_DataWriter*
707  DDS_Publisher *self,
708  const char *topic_name);
709 
710 /* ----------------------------------------------------------------- */
711 /*ce \dref_Publisher_get_participant
712  */
713 DDSCDllExport DDS_DomainParticipant*
715 
716 /* ----------------------------------------------------------------- */
717 
718 /*ce \dref_Publisher_delete_contained_entities
719  */
720 DDSCDllExport DDS_ReturnCode_t
722 
723 
724 /* ----------------------------------------------------------------- */
725 /* #if INCLUDE_API_QOS */
726 /*ce \dref_Publisher_set_qos
727  */
728 DDSCDllExport DDS_ReturnCode_t
730  DDS_Publisher *self,
731  const struct DDS_PublisherQos *qos);
732 
733 /* ----------------------------------------------------------------- */
734 /* #if INCLUDE_API_QOS */
735 /*ce \dref_Publisher_get_qos
736  */
737 DDSCDllExport DDS_ReturnCode_t
739  DDS_Publisher *self,
740  struct DDS_PublisherQos *qos);
741 
742 /* ----------------------------------------------------------------- */
743 /*ce \dref_Publisher_set_listener
744  */
745 /* called internally by Pub_new() */
746 DDSCDllExport DDS_ReturnCode_t
748  DDS_Publisher * self,
749  const struct DDS_PublisherListener *l,
750  DDS_StatusMask mask);
751 
752 
753 /*ce \dref_Publisher_get_listener
754  */
755 DDSCDllExport struct DDS_PublisherListener
757 
758 /* ================================================================= */
759 /* Data Writer */
760 /* ================================================================= */
761 
762 /* ----------------------------------------------------------------- */
763 #define DDS_DataWriter_as_entity(dataWriterPtr) \
764  ((DDS_Entity*) dataWriterPtr)
765 
766 #ifdef DOXYGEN_DOCUMENTATION_ONLY
767 /*ce \dref_DataWriter_as_entity
768  */
770 #endif /*DOXYGEN_DOCUMENTATION_ONLY */
771 
772 /* ----------------------------------------------------------------- */
773 /*ce \dref_DataWriter_enable
774 */
775 DDSCDllExport DDS_ReturnCode_t
777 
778 /*ce \dref_DataWriter_assert_liveliness
779  */
780 DDSCDllExport DDS_ReturnCode_t
782 
783 /* ----------------------------------------------------------------- */
784 #if INCLUDE_API_LOOKUP
785 /*ce \dref_DataWriter_get_matched_subscriptions
786  */
787 DDSCDllExport DDS_ReturnCode_t
788 DDS_DataWriter_get_matched_subscriptions(
789  DDS_DataWriter *self,
790  struct DDS_InstanceHandleSeq *subscription_handles);
791 #endif /* INCLUDE_API_LOOKUP */
792 
793 struct DDS_SubscriptionBuiltinTopicData;
794 
795 /* ----------------------------------------------------------------- */
796 #if INCLUDE_API_LOOKUP
797 /*ce \dref_DataWriter_get_matched_subscription_data
798  */
799 DDSCDllExport DDS_ReturnCode_t
800 DDS_DataWriter_get_matched_subscription_data(
801  DDS_DataWriter *self,
802  struct DDS_SubscriptionBuiltinTopicData *subscription_data,
803  const DDS_InstanceHandle_t *subscription_handle);
804 #endif /* INCLUDE_API_LOOKUP */
805 
806 /* ----------------------------------------------------------------- */
807 /*ce \dref_DataWriter_get_topic
808  */
809 DDSCDllExport DDS_Topic*
811 
812 /* ----------------------------------------------------------------- */
813 /*ce \dref_DataWriter_get_publisher
814  */
815 DDSCDllExport DDS_Publisher*
817 
818 /* ----------------------------------------------------------------- */
819 /*ce \dref_DataWriter_get_liveliness_lost_status
820  */
821 DDSCDllExport DDS_ReturnCode_t
823  DDS_DataWriter *self,
824  struct DDS_LivelinessLostStatus *status);
825 
826 /* ----------------------------------------------------------------- */
827 /*ce \dref_DataWriter_get_offered_deadline_missed_status
828  */
829 DDSCDllExport DDS_ReturnCode_t
831  DDS_DataWriter *self,
832  struct DDS_OfferedDeadlineMissedStatus *status);
833 
834 /* ----------------------------------------------------------------- */
835 /*ce \dref_DataWriter_get_offered_incompatible_qos_status
836  */
837 DDSCDllExport DDS_ReturnCode_t
839  DDS_DataWriter *self,
840  struct DDS_OfferedIncompatibleQosStatus *status);
841 
842 /* ----------------------------------------------------------------- */
843 /*ce \dref_DataWriter_get_publication_matched_status
844  */
845 DDSCDllExport DDS_ReturnCode_t
847  DDS_DataWriter *self,
848  struct DDS_PublicationMatchedStatus *status);
849 
850 /* ------------------------------------------------------------------------ */
851 /*e \dref_DataWriter_get_reliable_reader_activity_changed_status
852  */
853 DDSCDllExport DDS_ReturnCode_t
855  DDS_DataWriter *self,
857 
858 /* ----------------------------------------------------------------- */
859 /* #if INCLUDE_API_QOS */
860 /*ce \dref_DataWriter_set_qos
861  */
862 DDSCDllExport DDS_ReturnCode_t
864  DDS_DataWriter *self,
865  const struct DDS_DataWriterQos *qos);
866 
867 
868 /* ----------------------------------------------------------------- */
869 /* #if INCLUDE_API_QOS */
870 /*ce \dref_DataWriter_get_qos
871  */
872 DDSCDllExport DDS_ReturnCode_t
874  struct DDS_DataWriterQos *qos);
875 
876 /* ----------------------------------------------------------------- */
877 /*ce \dref_DataWriter_set_listener
878  */
879 DDSCDllExport DDS_ReturnCode_t
881  DDS_DataWriter * self,
882  const struct DDS_DataWriterListener *l,
883  DDS_StatusMask mask);
884 
885 
886 /*ce \dref_DataWriter_get_listener
887  */
888 DDSCDllExport struct DDS_DataWriterListener
890 
891 
892 /********************* Untyped Writer API ****************************/
893 /* #ifdef INCLUDE_API_INSTANCE */
894 /*e \dref_DataWriter_register_instance
895  */
896 DDSCDllExport DDS_InstanceHandle_t
898  DDS_DataWriter * self,
899  const void *instance_data);
900 
901 /* #ifdef INCLUDE_API_INSTANCE */
902 /*e \dref_DataWriter_register_instance_w_timestamp
903  */
904 DDSCDllExport DDS_InstanceHandle_t
906  DDS_DataWriter * self,
907  const void *instance_data,
908  const struct DDS_Time_t *source_timestamp);
909 
910 /* #ifdef INCLUDE_API_INSTANCE */
911 /*ce \dref_DataWriter_unregister_instance
912  */
913 DDSCDllExport DDS_ReturnCode_t
915  DDS_DataWriter *self,
916  const void *instance_data,
917  const DDS_InstanceHandle_t *handle);
918 
919 /* #ifdef INCLUDE_API_INSTANCE */
920 /*ce \dref_DataWriter_unregister_instance_w_timestamp
921  */
922 DDSCDllExport DDS_ReturnCode_t
924  DDS_DataWriter *self,
925  const void *instance_data,
926  const DDS_InstanceHandle_t *handle,
927  const struct DDS_Time_t *source_timestamp);
928 
929 /* #ifdef INCLUDE_API_INSTANCE */
930 /*ce \dref_DataWriter_dispose
931  */
932 DDSCDllExport DDS_ReturnCode_t
934  DDS_DataWriter *self,
935  const void *instance_data,
936  const DDS_InstanceHandle_t *handle);
937 
938 /*ce \dref_DataWriter_dispose_w_timestamp
939  */
940 DDSCDllExport DDS_ReturnCode_t
942  DDS_DataWriter *self,
943  const void *instance_data,
944  const DDS_InstanceHandle_t *handle,
945  const struct DDS_Time_t *source_timestamp);
946 
947 /*ce \dref_DataWriter_write
948  */
949 DDSCDllExport DDS_ReturnCode_t
951  DDS_DataWriter *self,
952  const void *instance_data,
953  const DDS_InstanceHandle_t * handle);
954 
955 /*ce \dref_DataWriter_write_w_timestamp
956  */
957 DDSCDllExport DDS_ReturnCode_t
959  DDS_DataWriter *self,
960  const void *instance_data,
961  const DDS_InstanceHandle_t *handle,
962  const struct DDS_Time_t *source_timestamp);
963 
964 /*ce \dref_DataWriter_write_w_params
965  */
966 DDSCDllExport DDS_ReturnCode_t
968  DDS_DataWriter *self,
969  const void *instance_data,
970  struct DDS_WriteParams_t *params);
971 
972 /*i \dref_DataWriteR_get_liveliness_count
973  */
974 DDSCDllExport DDS_Long
975 DDS_DataWriter_get_liveliness_count(DDS_DataWriter * self);
976 
977 /****************** Additional Internal APIs **************************/
978 
979 /*i \dref_DataWriter_advance_sn
980  */
981 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
982 DDS_DataWriter_advance_sn(DDS_DataWriter * self);
983 
984 /*i \dref_DataWriter_add_anonymous_locator
985  */
986 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
987 DDS_DataWriter_add_anonymous_locator(DDS_DataWriter * self,
988  struct DDS_Locator_t *locator);
989 
990 /*i \dref_DataWriter_add_anonymous_peer
991  */
992 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
993 DDS_DataWriter_add_anonymous_peer(DDS_DataWriter *datawriter,
994  struct NETIO_Address *dst_reader,
995  const char *address);
996 
997 /*i \dref_DataWriter_delete_anonymous_peer
998  */
999 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
1000 DDS_DataWriter_delete_anonymous_peer(DDS_DataWriter *datawriter,
1001  struct NETIO_Address *dst_reader,
1002  const char *address);
1003 
1004 /*i \dref_DataWriter_add_anonymous_route
1005  */
1006 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
1007 DDS_DataWriter_add_anonymous_route(DDS_DataWriter *datawriter,
1008  struct NETIO_Address *dst_reader,
1009  struct NETIO_Address *via_address);
1010 
1011 /*i \dref_DataWriter_delete_anonymous_route
1012  */
1013 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
1014 DDS_DataWriter_delete_anonymous_route(DDS_DataWriter *datawriter,
1015  struct NETIO_Address *dst_reader,
1016  struct NETIO_Address *via_address);
1017 
1018 /* ----------------------------------------------------------------- */
1019 
1020 #ifdef __cplusplus
1021 } /* extern "C" */
1022 #endif
1023 
1024 #ifndef dds_c_w_history_plugin_h
1025 #include "dds_c/dds_c_wh_plugin.h"
1026 #endif
1027 
1028 
1029 #endif /* dds_c_publication_h */

RTI Connext Micro Version 2.4.1.0 Copyright © Thu Nov 20 2014 Real-Time Innovations, Inc