RTI Connext Micro  Version 2.4.4.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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-2015.
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 /* ================================================================= */
69 /* Status */
70 /* ================================================================= */
71 
72 /*e \dref_OfferedDeadlineMissedStatus
73  */
74 struct DDSCPPDllExport DDS_OfferedDeadlineMissedStatus
75 {
76  /*e \dref_OfferedDeadlineMissedStatus_total_count
77  *
78  * \brief total count
79  */
81 
82  /*e \dref_OfferedDeadlineMissedStatus_total_count_change
83  */
85 
86  /*e \dref_OfferedDeadlineMissedStatus_last_instance_handle
87  */
89 
90  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_OfferedDeadlineMissedStatus)
91 };
92 
93 /*ce \dref_OfferedDeadlineMissedStatus_INITIALIZER
94  */
95 #define DDS_OfferedDeadlineMissedStatus_INITIALIZER \
96  { 0L, 0L, DDS_HANDLE_NIL_NATIVE }
97 
98 /*ci \dref_OfferedDeadlineMissedStatus_reset
99  */
100 DDSCDllExport void
101 DDS_OfferedDeadlineMissedStatus_reset(struct DDS_OfferedDeadlineMissedStatus *s);
102 
103 /* ----------------------------------------------------------------- */
104 
105 /*e \dref_LivelinessLostStatus
106  */
107 struct DDSCPPDllExport DDS_LivelinessLostStatus
108 {
109  /*e \dref_LivelinessLostStatus_total_count
110  */
112 
113  /*e \dref_LivelinessLostStatus_total_count_change
114  */
116 
117  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_LivelinessLostStatus)
118 };
119 
120 /*ce \dref_LivelinessLostStatus_INITIALIZER
121  */
122 #define DDS_LivelinessLostStatus_INITIALIZER { 0L, 0L }
123 
124 /*ci \dref_LivelinessLostStatus_reset
125  */
126 DDSCDllExport void
127 DDS_LivelinessLostStatus_reset(struct DDS_LivelinessLostStatus *s);
128 
129 /* ----------------------------------------------------------------- */
130 
131 /*e \dref_OfferedIncompatibleQosStatus
132  */
133 struct DDSCPPDllExport DDS_OfferedIncompatibleQosStatus
134 {
135  /*e \dref_OfferedIncompatibleQosStatus_total_count
136  */
138 
139  /*e \dref_OfferedIncompatibleQosStatus_total_count_change
140  */
142 
143  /*e \dref_OfferedIncompatibleQosStatus_last_policy_id
144  */
146 
147  /*e \dref_OfferedIncompatibleQosStatus_policies
148  */
149  struct DDS_QosPolicyCountSeq policies;
150 
151  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_OfferedIncompatibleQosStatus)
152 };
153 
154 /*ce \dref_OfferedIncompatibleQosStatus_INITIALIZER
155  */
156 #define DDS_OfferedIncompatibleQosStatus_INITIALIZER \
157  { 0L, 0L,DDS_INVALID_QOS_POLICY_ID, DDS_SEQUENCE_INITIALIZER(struct DDS_QosPolicyCount) }
158 
159 /*ci \dref_OfferedIncompatibleQosStatus_reset
160  */
161 DDSCDllExport void
162 DDS_OfferedIncompatibleQosStatus_reset(struct DDS_OfferedIncompatibleQosStatus *s);
163 
164 /* ----------------------------------------------------------------- */
165 
166 /*e \dref_PublicationMatchedStatus
167  */
168 struct DDSCPPDllExport DDS_PublicationMatchedStatus
169 {
170  /*e \dref_PublicationMatchedStatus_total_count
171  */
173 
174  /*e \dref_PublicationMatchedStatus_total_count_change
175  */
177 
178  /*e \dref_PublicationMatchedStatus_current_count
179  */
181 
182  /*e \dref_PublicationMatchedStatus_current_count_change
183  */
185 
186  /*e \dref_PublicationMatchedStatus_last_subscription_handle
187  */
189 
190  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_PublicationMatchedStatus)
191 };
192 
193 /*ce \dref_PublicationMatchedStatus_INITIALIZER
194  */
195 #define DDS_PublicationMatchedStatus_INITIALIZER \
196  { 0L, 0L, 0L, 0L, DDS_HANDLE_NIL_NATIVE }
197 
198 /*ci \dref_PublicationMatchedStatus_reset
199  */
200 DDSCDllExport void
201 DDS_PublicationMatchedStatus_reset(struct DDS_PublicationMatchedStatus *s);
202 
203 /* ------------------------------------------------------------------------ */
204 
205 /*e \dref_ReliableReaderActivityChangedStatus
206  */
208 {
209  /*e \dref_ReliableReaderActivityChangedStatus_active_count
210  */
212 
213  /*e \dref_ReliableReaderActivityChangedStatus_inactive_count
214  */
216 
217  /*e \dref_ReliableReaderActivityChangedStatus_active_count_change
218  */
220 
221  /*e \dref_ReliableReaderActivityChangedStatus_inactive_count_change
222  */
224 
225  /*e \dref_ReliableReaderActivityChangedStatus_last_instance_handle
226  */
228 
229  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_ReliableReaderActivityChangedStatus)
230 };
231 
232 /*e \dref_ReliableReaderActivityChangedStatus_INITIALIZER
233  */
234 #define DDS_ReliableReaderActivityChangedStatus_INITIALIZER \
235  {0, 0, 0, 0,DDS_HANDLE_NIL_NATIVE}
236 
237 DDSCDllExport void
238 DDS_ReliableReaderActivityChangedStatus_reset(struct DDS_ReliableReaderActivityChangedStatus *s);
239 
240 /* ------------------------------------------------------------------------ */
241 
242 /*i \dref_ReliableSampleUnacknowledgedStatus
243  */
244 struct DDSCPPDllExport DDS_ReliableSampleUnacknowledgedStatus
245 {
246  /*i \dref_ReliableSampleUnacknowledgedStatus_sequence_number
247  */
248  struct DDS_SequenceNumber_t sequence_number;
249 
250  /*i \dref_ReliableSampleUnacknowledgedStatus_unacknowledged_count
251  */
252  DDS_Long unacknowledged_count;
253 
254  /*i \dref_ReliableSampleUnacknowledgedStatus_instance_handle
255  */
256  DDS_InstanceHandle_t instance_handle;
257 };
258 
259 /*i \dref_ReliableSampleUnacknowledgedStatus_INITIALIZER
260  */
261 #define DDS_ReliableSampleUnacknowledgedStatus_INITIALIZER \
262 {\
263  {0,0},\
264  0,\
265  DDS_HANDLE_NIL_NATIVE\
266 }
267 
268 /*i \dref_OfferedDeadlineMissedStatus_initialize
269  */
270 DDSCDllExport DDS_ReturnCode_t
271 DDS_OfferedDeadlineMissedStatus_initialize(
272  struct DDS_OfferedDeadlineMissedStatus *self);
273 
274 /*i \dref_OfferedIncompatibleQosStatus_initialize
275  */
276 DDSCDllExport DDS_ReturnCode_t
277 DDS_OfferedIncompatibleQosStatus_initialize(
278  struct DDS_OfferedIncompatibleQosStatus *self);
279 
280 /*i \dref_PublicationMatchedStatus_initialize
281  */
282 DDSCDllExport DDS_ReturnCode_t
283 DDS_PublicationMatchedStatus_initialize(
284  struct DDS_PublicationMatchedStatus *self);
285 
286 /*i \dref_LivelinessLostStatus_initialize
287  */
288 DDSCDllExport DDS_ReturnCode_t
289 DDS_LivelinessLostStatus_initialize(
290  struct DDS_LivelinessLostStatus *self);
291 
292 /*i \dref_ReliableReaderActivityChangedStatus_initialize
293  */
294 DDSCDllExport DDS_ReturnCode_t
295 DDS_ReliableReaderActivityChangedStatus_initialize(
297 
298 /* ----------------------------------------------------------------- */
299 
300 #ifdef __cplusplus
301 } /* extern "C" */
302 #endif
303 
304 /* ================================================================= */
305 /* QoS */
306 /* ================================================================= */
307 
308 /*i \dref_DataWriterData
309  */
310 struct DDS_DataWriterData
311 {
312  struct DDS_LocatorSeq *unicast_locator;
313 };
314 
315 /*e \dref_DataWriterQos
316  */
317 struct DDSCPPDllExport DDS_DataWriterQos
318 {
319  /*e \dref_DataWriterQos_deadline
320  */
321  struct DDS_DeadlineQosPolicy deadline;
322 
323  /*e \dref_DataWriterQos_liveliness
324  */
325  struct DDS_LivelinessQosPolicy liveliness;
326 
327  /*e \dref_DataWriterQos_history
328  */
329  struct DDS_HistoryQosPolicy history;
330 
331  /*e \dref_DataWriterQos_resource_limits
332  */
333  struct DDS_ResourceLimitsQosPolicy resource_limits;
334 
335  /*e \dref_DataWriterQos_ownership
336  */
337  struct DDS_OwnershipQosPolicy ownership;
338 
339  /*e \dref_DataWriterQos_ownership_strength
340  */
341  struct DDS_OwnershipStrengthQosPolicy ownership_strength;
342 
343  /*e \dref_DataWriterQos_reliability
344  */
345  struct DDS_ReliabilityQosPolicy reliability;
346 
347  /*e \dref_DataWriterQos_durability
348  */
349  struct DDS_DurabilityQosPolicy durability;
350 
351  /* --- Extensions: ---------------------------------------------------- */
352 
353  /*e \dref_DataWriterQos_protocol
354  */
356 
357  /*i \dref_DataWriterQos_type_support
358  */
359  struct DDS_TypeSupportQosPolicy type_support;
360 
361  /*e \dref_DataWriterQos_transport
362  */
363  struct DDS_TransportQosPolicy transport;
364 
365  /*i \dref_DataWriterQos_management
366  */
367  struct RTI_ManagementQosPolicy management;
368 
369  /*i \dref_DataWriterQos_writer_resource_limits
370  */
371  struct DDS_DataWriterResourceLimitsQosPolicy writer_resource_limits;
372 
373  struct DDS_DataWriterData *data;
374 
375  DDSC_CPP_SUPPORT_METHODS_EXTENDED(DDS_DataWriterQos)
376 };
377 
378 #ifdef __cplusplus
379 extern "C" {
380 #endif
381 
382 /* #if INCLUDE_API_QOS */
383 /*ce \dref_DataWriterQos_initialize
384  */
385 DDSCDllExport DDS_ReturnCode_t
387 
388 /* #if INCLUDE_API_QOS */
389 /*ce \dref_DataWriterQos_copy
390  */
391 DDSCDllExport DDS_ReturnCode_t
393  const struct DDS_DataWriterQos *source);
394 
395 
396 /*i \dref_DataWriterQos_is_equal
397  */
398 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
399 DDS_DataWriterQos_is_equal(const struct DDS_DataWriterQos *left,
400  const struct DDS_DataWriterQos *right);
401 
402 #ifndef RTI_CERT
403 /*ce \dref_DataWriterQos_finalize
404  */
405 DDSCDllExport DDS_ReturnCode_t
407 #endif /* !RTI_CERT */
408 
409 /*ce \dref_DataWriterQos_INITIALIZER
410  */
411 #define DDS_DataWriterQos_INITIALIZER { \
412  DDS_DEADLINE_QOS_POLICY_DEFAULT, \
413  DDS_LIVELINESS_QOS_POLICY_DEFAULT, \
414  DDS_HISTORY_QOS_POLICY_DEFAULT, \
415  DDS_RESOURCE_LIMITS_QOS_POLICY_DEFAULT, \
416  DDS_OWNERSHIP_QOS_POLICY_DEFAULT, \
417  DDS_OWNERSHIP_STRENGTH_QOS_POLICY_DEFAULT, \
418  DDS_RELIABILITY_QOS_POLICY_DEFAULT, \
419  DDS_DURABILITY_QOS_POLICY_DEFAULT, \
420  DDS_DATA_WRITER_PROTOCOL_QOS_POLICY_DEFAULT, \
421  DDS_TYPESUPPORT_QOS_POLICY_DEFAULT, \
422  DDS_TRANSPORT_QOS_POLICY_DEFAULT, \
423  RTI_MANAGEMENT_QOS_POLICY_DEFAULT, \
424  DDS_DATAWRITERRESOURCE_LIMITS_QOS_POLICY_DEFAULT, \
425  NULL \
426 }
427 
428 #ifdef __cplusplus
429 } /* extern "C" */
430 #endif
431 
432 /* ----------------------------------------------------------------- */
433 
434 /*e \dref_PublisherQos
435  */
436 struct DDSCPPDllExport DDS_PublisherQos
437 {
438  /*e \dref_PublisherQos_entity_factory
439  */
440  struct DDS_EntityFactoryQosPolicy entity_factory;
441 
442  /*i \dref_PublisherQos_management
443  */
444  struct RTI_ManagementQosPolicy management;
445 
446  DDSC_CPP_SUPPORT_METHODS_EXTENDED(DDS_PublisherQos)
447 };
448 
449 #ifdef __cplusplus
450 extern "C" {
451 #endif
452 
453 /*ce \dref_PublisherQos_initialize
454  */
455 /* #if INCLUDE_API_QOS */
456 DDSCDllExport DDS_ReturnCode_t
458 
459 /*ce \dref_PublisherQos_copy
460  */
461 DDSCDllExport DDS_ReturnCode_t
463  const struct DDS_PublisherQos *source);
464 
465 /*i \dref_PublisherQos_is_equal
466  */
467 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
468 DDS_PublisherQos_is_equal(const struct DDS_PublisherQos *left,
469  const struct DDS_PublisherQos *right);
470 
471 #ifndef RTI_CERT
472 /*ce \dref_PublisherQos_finalize
473  */
474 DDSCDllExport DDS_ReturnCode_t
476 #endif
477 
478 /*ce \dref_PublisherQos_INITIALIZER
479  */
480 #define DDS_PublisherQos_INITIALIZER { \
481  DDS_ENTITY_FACTORY_QOS_POLICY_DEFAULT, \
482  RTI_MANAGEMENT_QOS_POLICY_DEFAULT \
483 }
484 
485 /* ================================================================= */
486 /* Listeners */
487 /* ================================================================= */
488 
489 /*ce \dref_DataWriterListener_OfferedDeadlineMissedCallback
490  */
491 typedef void
493  void *listener_data,
494  DDS_DataWriter* writer,
495  const struct DDS_OfferedDeadlineMissedStatus* status);
496 
497 /* ----------------------------------------------------------------- */
498 /*ce \dref_DataWriterListener_LivelinessLostCallback
499  */
500 typedef void
502  void *listener_data,
503  DDS_DataWriter *writer,
504  const struct DDS_LivelinessLostStatus *status);
505 
506 /* ----------------------------------------------------------------- */
507 /*ce \dref_DataWriterListener_OfferedIncompatibleQosCallback
508  */
509 typedef void
511  void *listener_data,
512  DDS_DataWriter* writer,
513  const struct DDS_OfferedIncompatibleQosStatus *status);
514 
515 /* ----------------------------------------------------------------- */
516 /*ce \dref_DataWriterListener_PublicationMatchedCallback
517  */
519  void *listener_data,
520  DDS_DataWriter *writer,
521  const struct DDS_PublicationMatchedStatus *status);
522 
523 /* ------------------------------------------------------------------------ */
524 /*e \dref_DataWriterListener_ReliableReaderActivityChangedCallback
525  */
526 typedef void
528  void *listener_data,
529  DDS_DataWriter * writer,
530  const struct DDS_ReliableReaderActivityChangedStatus * status);
531 
532 /* ------------------------------------------------------------------------ */
533 /*i \dref_DataWriterListener_ReliableSampleUnacknowledgedCallback
534  */
535 typedef void
536 (*DDS_DataWriterListener_ReliableSampleUnacknowledgedCallback)(
537  void *listener_data,
538  DDS_DataWriter *writer,
539  const struct DDS_ReliableSampleUnacknowledgedStatus *status);
540 
541 /* ----------------------------------------------------------------- */
542 /*ce \dref_DataWriterListener
543  */
545 {
546  /*ce \dref_DataWriterListener_as_listener
547  */
549 
550  /*ce \dref_DataWriterListener_on_offered_deadline_missed
551  */
554 
555  /*ce \dref_DataWriterListener_on_offered_incompatible_qos
556  */
559 
560  /*ce \dref_DataWriterListener_on_liveliness_lost
561  */
563 
564  /*ce \dref_DataWriterListener_on_publication_matched
565  */
568 
569  /*e \dref_DataWriterListener_on_reliable_reader_activity_changed
570  */
573 
574  /*i \dref_DataWriterListener_on_reliable_sample_unacknowledged
575  */
576  DDS_DataWriterListener_ReliableSampleUnacknowledgedCallback
577  on_reliable_sample_unacknowledged;
578 };
579 
580 /*ce \dref_DataWriterListener_INITIALIZER
581  */
582 #define DDS_DataWriterListener_INITIALIZER { \
583  DDS_Listener_INITIALIZER, \
584  (DDS_DataWriterListener_OfferedDeadlineMissedCallback)NULL, \
585  (DDS_DataWriterListener_OfferedIncompatibleQosCallback)NULL, \
586  (DDS_DataWriterListener_LivelinessLostCallback)NULL, \
587  (DDS_DataWriterListener_PublicationMatchedCallback)NULL,\
588  NULL,\
589  NULL\
590 }
591 
592 /* ----------------------------------------------------------------- */
593 /*ce \dref_PublisherListener
594  */
596 {
597  /*ce \dref_PublisherListener_as_datawriterlistener
598  */
600 };
601 
602 /*ce \dref_PublisherListener_INITIALIZER
603  */
604 #define DDS_PublisherListener_INITIALIZER { \
605  DDS_DataWriterListener_INITIALIZER }
606 
607 /* ================================================================= */
608 /* Publisher */
609 /* ================================================================= */
610 
611 /* ----------------------------------------------------------------- */
612 
613 /*e \dref_DATAWRITER_QOS_DEFAULT
614  */
615 extern DDSCDllVariable const struct DDS_DataWriterQos
617 
618 /* ----------------------------------------------------------------- */
619 #define DDS_Publisher_as_entity(publisherPtr) \
620  ((DDS_Entity*) publisherPtr)
621 
622 #ifdef DOXYGEN_DOCUMENTATION_ONLY
623 /*ce \dref_Publisher_as_entity
624  */
626 #endif /*DOXYGEN_DOCUMENTATION_ONLY */
627 
628 /* ----------------------------------------------------------------- */
629 /* #if INCLUDE_API_QOS */
630 /*ce \dref_Publisher_get_default_datawriter_qos
631  */
632 DDSCDllExport DDS_ReturnCode_t
634  DDS_Publisher *self,
635  struct DDS_DataWriterQos *qos);
636 
637 /* ----------------------------------------------------------------- */
638 /* #if INCLUDE_API_QOS */
639 /*ce \dref_Publisher_set_default_datawriter_qos
640  */
641 DDSCDllExport DDS_ReturnCode_t
643  DDS_Publisher * self,
644  const struct DDS_DataWriterQos
645  *qos);
646 
647 /* ----------------------------------------------------------------- */
648 /*ce \dref_Publisher_create_datawriter
649  */
650 DDSCDllExport DDS_DataWriter*
652  DDS_Publisher *self,
653  DDS_Topic *topic,
654  const struct DDS_DataWriterQos *qos,
655  const struct DDS_DataWriterListener *listener,
656  DDS_StatusMask mask);
657 
658 /* ----------------------------------------------------------------- */
659 /*ce \dref_Publisher_enable
660  */
661 DDSCDllExport DDS_ReturnCode_t
663 
664 /* ----------------------------------------------------------------- */
665 #ifndef RTI_CERT
666 /*ce \dref_Publisher_delete_datawriter
667  */
668 DDSCDllExport DDS_ReturnCode_t
670  DDS_Publisher *self,
671  DDS_DataWriter *a_datawriter);
672 #endif
673 
674 /* ----------------------------------------------------------------- */
675 /*ce \dref_Publisher_lookup_datawriter
676  */
677 /* #if INCLUDE_API_LOOKUP || RTI_CERT */
678 DDSCDllExport DDS_DataWriter*
680  DDS_Publisher *self,
681  const char *topic_name);
682 
683 /* ----------------------------------------------------------------- */
684 /*ce \dref_Publisher_get_participant
685  */
686 DDSCDllExport DDS_DomainParticipant*
688 
689 /* ----------------------------------------------------------------- */
690 
691 /*ce \dref_Publisher_delete_contained_entities
692  */
693 DDSCDllExport DDS_ReturnCode_t
695 
696 
697 /* ----------------------------------------------------------------- */
698 /* #if INCLUDE_API_QOS */
699 /*ce \dref_Publisher_set_qos
700  */
701 DDSCDllExport DDS_ReturnCode_t
703  DDS_Publisher *self,
704  const struct DDS_PublisherQos *qos);
705 
706 /* ----------------------------------------------------------------- */
707 /* #if INCLUDE_API_QOS */
708 /*ce \dref_Publisher_get_qos
709  */
710 DDSCDllExport DDS_ReturnCode_t
712  DDS_Publisher *self,
713  struct DDS_PublisherQos *qos);
714 
715 /* ----------------------------------------------------------------- */
716 #ifndef RTI_CERT
717 /*ce \dref_Publisher_set_listener
718  */
719 /* called internally by Pub_new() */
720 DDSCDllExport DDS_ReturnCode_t
722  DDS_Publisher * self,
723  const struct DDS_PublisherListener *l,
724  DDS_StatusMask mask);
725 #endif
726 
727 #ifndef RTI_CERT
728 /*ce \dref_Publisher_get_listener
729  */
730 DDSCDllExport struct DDS_PublisherListener
732 #endif
733 
734 /* ================================================================= */
735 /* Data Writer */
736 /* ================================================================= */
737 
738 /* ----------------------------------------------------------------- */
739 #define DDS_DataWriter_as_entity(dataWriterPtr) \
740  ((DDS_Entity*) dataWriterPtr)
741 
742 #ifdef DOXYGEN_DOCUMENTATION_ONLY
743 /*ce \dref_DataWriter_as_entity
744  */
746 #endif /*DOXYGEN_DOCUMENTATION_ONLY */
747 
748 /* ----------------------------------------------------------------- */
749 /*ce \dref_DataWriter_enable
750 */
751 DDSCDllExport DDS_ReturnCode_t
753 
754 /*ce \dref_DataWriter_assert_liveliness
755  */
756 DDSCDllExport DDS_ReturnCode_t
758 
759 /* ----------------------------------------------------------------- */
760 #if INCLUDE_API_LOOKUP
761 /*ce \dref_DataWriter_get_matched_subscriptions
762  */
763 DDSCDllExport DDS_ReturnCode_t
764 DDS_DataWriter_get_matched_subscriptions(
765  DDS_DataWriter *self,
766  struct DDS_InstanceHandleSeq *subscription_handles);
767 #endif /* INCLUDE_API_LOOKUP */
768 
770 
771 /* ----------------------------------------------------------------- */
772 #if INCLUDE_API_LOOKUP
773 /*ce \dref_DataWriter_get_matched_subscription_data
774  */
775 DDSCDllExport DDS_ReturnCode_t
776 DDS_DataWriter_get_matched_subscription_data(
777  DDS_DataWriter *self,
778  struct DDS_SubscriptionBuiltinTopicData *subscription_data,
779  const DDS_InstanceHandle_t *subscription_handle);
780 #endif /* INCLUDE_API_LOOKUP */
781 
782 /* ----------------------------------------------------------------- */
783 /*ce \dref_DataWriter_get_topic
784  */
785 DDSCDllExport DDS_Topic*
787 
788 /* ----------------------------------------------------------------- */
789 /*ce \dref_DataWriter_get_publisher
790  */
791 DDSCDllExport DDS_Publisher*
793 
794 /* ----------------------------------------------------------------- */
795 /*ce \dref_DataWriter_get_liveliness_lost_status
796  */
797 DDSCDllExport DDS_ReturnCode_t
799  DDS_DataWriter *self,
800  struct DDS_LivelinessLostStatus *status);
801 
802 /* ----------------------------------------------------------------- */
803 /*ce \dref_DataWriter_get_offered_deadline_missed_status
804  */
805 DDSCDllExport DDS_ReturnCode_t
807  DDS_DataWriter *self,
808  struct DDS_OfferedDeadlineMissedStatus *status);
809 
810 /* ----------------------------------------------------------------- */
811 /*ce \dref_DataWriter_get_offered_incompatible_qos_status
812  */
813 DDSCDllExport DDS_ReturnCode_t
815  DDS_DataWriter *self,
816  struct DDS_OfferedIncompatibleQosStatus *status);
817 
818 /* ----------------------------------------------------------------- */
819 /*ce \dref_DataWriter_get_publication_matched_status
820  */
821 DDSCDllExport DDS_ReturnCode_t
823  DDS_DataWriter *self,
824  struct DDS_PublicationMatchedStatus *status);
825 
826 /* ------------------------------------------------------------------------ */
827 /*e \dref_DataWriter_get_reliable_reader_activity_changed_status
828  */
829 DDSCDllExport DDS_ReturnCode_t
831  DDS_DataWriter *self,
833 
834 /* ----------------------------------------------------------------- */
835 /* #if INCLUDE_API_QOS */
836 /*ce \dref_DataWriter_set_qos
837  */
838 DDSCDllExport DDS_ReturnCode_t
840  DDS_DataWriter *self,
841  const struct DDS_DataWriterQos *qos);
842 
843 
844 /* ----------------------------------------------------------------- */
845 /* #if INCLUDE_API_QOS */
846 /*ce \dref_DataWriter_get_qos
847  */
848 DDSCDllExport DDS_ReturnCode_t
850  struct DDS_DataWriterQos *qos);
851 
852 /* ----------------------------------------------------------------- */
853 #ifndef RTI_CERT
854 /*ce \dref_DataWriter_set_listener
855  */
856 DDSCDllExport DDS_ReturnCode_t
858  DDS_DataWriter * self,
859  const struct DDS_DataWriterListener *l,
860  DDS_StatusMask mask);
861 #endif
862 
863 #ifndef RTI_CERT
864 /*ce \dref_DataWriter_get_listener
865  */
866 DDSCDllExport struct DDS_DataWriterListener
868 #endif
869 
870 /********************* Untyped Writer API ****************************/
871 /* #ifdef INCLUDE_API_INSTANCE */
872 /*e \dref_DataWriter_register_instance
873  */
874 DDSCDllExport DDS_InstanceHandle_t
876  DDS_DataWriter * self,
877  const void *instance_data);
878 
879 /* #ifdef INCLUDE_API_INSTANCE */
880 /*e \dref_DataWriter_register_instance_w_timestamp
881  */
882 DDSCDllExport DDS_InstanceHandle_t
884  DDS_DataWriter * self,
885  const void *instance_data,
886  const struct DDS_Time_t *source_timestamp);
887 
888 /* #ifdef INCLUDE_API_INSTANCE */
889 /*ce \dref_DataWriter_unregister_instance
890  */
891 DDSCDllExport DDS_ReturnCode_t
893  DDS_DataWriter *self,
894  const void *instance_data,
895  const DDS_InstanceHandle_t *handle);
896 
897 /* #ifdef INCLUDE_API_INSTANCE */
898 /*ce \dref_DataWriter_unregister_instance_w_timestamp
899  */
900 DDSCDllExport DDS_ReturnCode_t
902  DDS_DataWriter *self,
903  const void *instance_data,
904  const DDS_InstanceHandle_t *handle,
905  const struct DDS_Time_t *source_timestamp);
906 
907 /* #ifdef INCLUDE_API_INSTANCE */
908 /*ce \dref_DataWriter_dispose
909  */
910 DDSCDllExport DDS_ReturnCode_t
912  DDS_DataWriter *self,
913  const void *instance_data,
914  const DDS_InstanceHandle_t *handle);
915 
916 /*ce \dref_DataWriter_dispose_w_timestamp
917  */
918 DDSCDllExport DDS_ReturnCode_t
920  DDS_DataWriter *self,
921  const void *instance_data,
922  const DDS_InstanceHandle_t *handle,
923  const struct DDS_Time_t *source_timestamp);
924 
925 /*ce \dref_DataWriter_write
926  */
927 DDSCDllExport DDS_ReturnCode_t
929  DDS_DataWriter *self,
930  const void *instance_data,
931  const DDS_InstanceHandle_t * handle);
932 
933 /*ce \dref_DataWriter_write_w_timestamp
934  */
935 DDSCDllExport DDS_ReturnCode_t
937  DDS_DataWriter *self,
938  const void *instance_data,
939  const DDS_InstanceHandle_t *handle,
940  const struct DDS_Time_t *source_timestamp);
941 
942 /*ce \dref_DataWriter_write_w_params
943  */
944 DDSCDllExport DDS_ReturnCode_t
946  DDS_DataWriter *self,
947  const void *instance_data,
948  struct DDS_WriteParams_t *params);
949 
950 /*i \dref_DataWriteR_get_liveliness_count
951  */
952 DDSCDllExport DDS_Long
953 DDS_DataWriter_get_liveliness_count(DDS_DataWriter * self);
954 
955 /****************** Additional Internal APIs **************************/
956 
957 /*i \dref_DataWriter_advance_sn
958  */
959 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
960 DDS_DataWriter_advance_sn(DDS_DataWriter * self);
961 
962 /*i \dref_DataWriter_add_anonymous_locator
963  */
964 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
965 DDS_DataWriter_add_anonymous_locator(DDS_DataWriter * self,
966  struct DDS_Locator_t *locator);
967 
968 /*i \dref_DataWriter_add_anonymous_peer
969  */
970 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
971 DDS_DataWriter_add_anonymous_peer(DDS_DataWriter *datawriter,
972  struct NETIO_Address *dst_reader,
973  const char *address);
974 
975 #ifndef RTI_CERT
976 /*i \dref_DataWriter_delete_anonymous_peer
977  */
978 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
979 DDS_DataWriter_delete_anonymous_peer(DDS_DataWriter *datawriter,
980  struct NETIO_Address *dst_reader,
981  const char *address);
982 #endif /* !RTI_CERT */
983 
984 /*i \dref_DataWriter_add_anonymous_route
985  */
986 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
987 DDS_DataWriter_add_anonymous_route(DDS_DataWriter *datawriter,
988  struct NETIO_Address *dst_reader,
989  struct NETIO_Address *via_address);
990 
991 #ifndef RTI_CERT
992 /*i \dref_DataWriter_delete_anonymous_route
993  */
994 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
995 DDS_DataWriter_delete_anonymous_route(DDS_DataWriter *datawriter,
996  struct NETIO_Address *dst_reader,
997  struct NETIO_Address *via_address);
998 #endif
999 
1000 /*ci
1001  * \brief Check if a route exists from a data-writer to a data-reader
1002  *
1003  * \details
1004  * Check if a route exists from a data-writer to a data-reader using any of
1005  * the locators passed in. Note that there is an implicit assumption that
1006  * the protocol stack is DDS<->RTPS<->"transport" where transport can be
1007  * any NETIO_Interface compliant layer.
1008  *
1009  * \param[in] src_writer Source data-writer
1010  * \param[in] dst_reader Destination data-reader
1011  * \param[in] loc_seq Sequence of addresses the data-reader is located at
1012  *
1013  * \return DDS_BOOLEAN_TRUE if a path exists, DDS_BOOLEAN is no
1014  */
1015 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
1016 DDS_DataWriter_lookup_route(DDS_DataWriter *src_writer,
1017  struct NETIO_Address *dst_reader,
1018  const struct DDS_LocatorSeq *loc_seq);
1019 /* ----------------------------------------------------------------- */
1020 
1021 #ifdef __cplusplus
1022 } /* extern "C" */
1023 #endif
1024 
1025 #ifndef dds_c_w_history_plugin_h
1026 #include "dds_c/dds_c_wh_plugin.h"
1027 #endif
1028 
1029 
1030 #endif /* dds_c_publication_h */

RTI Connext Micro Version 2.4.4.0 Copyright © Thu Apr 30 2015 Real-Time Innovations, Inc