RTI Connext DDS Micro  Version 2.4.6
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
dds_c_topic.h
Go to the documentation of this file.
1 /*
2  * FILE: dds_c_topic.h - DDS topic module
3  *
4  * (c) Copyright, Real-Time Innovations, 2008-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  * 29jun2015,tk MICRO-1351/PR#15141 Removed prototypes for non-Cert function
16  * 20sep2014,as Explicitly define public support functions for Status types
17  * 07may2014,as MICRO-784 Expose get_X_status API in C++
18  * 19jul2013,as Added support for C++
19  * 30apr2008 Created
20  */
21 /*ce
22  * \file
23  * \brief DDS topic module
24  * @addtogroup DDSDomainModule
25  * @ingroup DDSCModule
26  */
27 #ifndef dds_c_topic_h
28 #define dds_c_topic_h
29 
30 #ifndef dds_c_dll_h
31 #include "dds_c/dds_c_dll.h"
32 #endif
33 #include "dds_c_config.h"
34 #ifndef dds_c_common_h
35 #include "dds_c/dds_c_common.h"
36 #endif
37 #ifndef dds_c_sequence_h
38 #include "dds_c/dds_c_sequence.h"
39 #endif
40 #ifndef dds_c_infrastructure_h
42 #endif
43 
44 /* ================================================================= */
45 /* Basic Types */
46 /* ================================================================= */
47 
48 /*e \dref_InstanceId_t
49  */
51 
52 
53 /* ================================================================= */
54 /* Status */
55 /* ================================================================= */
56 
57 /*e \dref_InconsistentTopicStatus
58  */
59 struct DDSCPPDllExport DDS_InconsistentTopicStatus
60 {
61  /*i \dref_InconsistentTopicStatus_total_count
62  */
63  DDS_Long total_count;
64 
65  /*i \dref_InconsistentTopicStatus_total_count_change
66  */
67  DDS_Long total_count_change;
68 
69  DDSC_CPP_SUPPORT_METHODS_BASIC(DDS_InconsistentTopicStatus)
70 };
71 
72 #ifdef __cplusplus
73 extern "C"
74 {
75 #endif
76 
77 /*ci
78  * \brief Initialize a DDS_InconsistentTopicStatus structure
79  *
80  * \param[in] self DDS_InconsistentTopicStatus to initialize.
81  *
82  * \return DDS_RETCODE_OK on success, one of the standard error codes on
83  * failure
84  */
85 DDSCDllExport DDS_ReturnCode_t
86 DDS_InconsistentTopicStatus_initialize(
87  struct DDS_InconsistentTopicStatus *self);
88 
89 /*ce \dref_InconsistentTopicStatus_INITIALIZER
90  */
91 #define DDS_InconsistentTopicStatus_INITIALIZER { 0L, 0L }
92 
93 /*ci
94  * \brief Reset the changed counters in DDS_InconsistentTopicStatus
95  *
96  * \param[in] s Structure to clear
97  */
98 DDSCDllExport void
99 DDS_InconsistentTopicStatus_reset(struct DDS_InconsistentTopicStatus *s);
100 
101 #ifdef __cplusplus
102 } /* extern "C" */
103 #endif
104 
105 /* ================================================================= */
106 /* QoS */
107 /* ================================================================= */
108 
109 /*e \dref_TopicQos
110  */
111 struct DDSCPPDllExport DDS_TopicQos
112 {
113  /*i \dref_TopicQos_management
114  */
115  struct RTI_ManagementQosPolicy management;
116 
117  DDSC_CPP_SUPPORT_METHODS_EXTENDED(DDS_TopicQos)
118 };
119 
120 #ifdef __cplusplus
121 extern "C" {
122 #endif
123 
124 /*ce \dref_TopicQos_initialize
125  */
126 DDSCDllExport DDS_ReturnCode_t
128 
129 /* #if INCLUDE_API_QOS */
130 /*ce \dref_TopicQos_copy
131  */
132 DDSCDllExport DDS_ReturnCode_t
133 DDS_TopicQos_copy(struct DDS_TopicQos *self,
134  const struct DDS_TopicQos *source);
135 
136 #ifndef RTI_CERT
137 /*ce \dref_TopicQos_finalize
138  */
139 DDSCDllExport DDS_ReturnCode_t
140 DDS_TopicQos_finalize(struct DDS_TopicQos *self);
141 #endif /* !RTI_CERT */
142 
143 /*ci
144  * \brief Compare two DDS_TopicQos policies for equality
145  *
146  * \param[in] left The left side of the comparison
147  * \param[in] right The right side of the comparison
148  *
149  * \return DDS_BOOLEAN_TRUE if the structures are equal,
150  * DDS_BOOLEAN_FALSE otherwise
151  */
152 DDSCDllExport DDS_Boolean
153 DDS_TopicQos_is_equal(const struct DDS_TopicQos *left,
154  const struct DDS_TopicQos *right);
155 
156 /*ce \dref_TopicQos_INITIALIZER
157  */
158 #define DDS_TopicQos_INITIALIZER { \
159  RTI_MANAGEMENT_QOS_POLICY_DEFAULT \
160 }
161 
162 /* ================================================================= */
163 /* DDS_TopicDescription */
164 /* ================================================================= */
165 
166 /*ce \dref_TopicDescription
167  */
168 typedef struct DDS_TopicDescriptionImpl DDS_TopicDescription;
169 
170 /*ce \dref_TopicDescription_get_type_name
171  */
172 DDSCDllExport const char*
174 
175 /*ce \dref_TopicDescription_get_name
176  */
177 DDSCDllExport const char*
179 
180 /*ce \dref_TopicDescription_get_participant
181  */
182 DDSCDllExport DDS_DomainParticipant*
184 
185 /*ce \dref_Topic
186  */
187 typedef struct DDS_TopicImpl DDS_Topic;
188 
189 /* ================================================================= */
190 /* Listeners */
191 /* ================================================================= */
192 
193 /*ce \dref_TopicListener_InconsistentTopicCallback
194  */
195 typedef void
197  void *listener_data,
198  DDS_Topic *topic,
199  const struct DDS_InconsistentTopicStatus *status);
200 
201 /*ce \dref_TopicListener
202  */
204 {
205  /*ce \dref_TopicListener_as_listener
206  */
208 
209  /*ce \dref_TopicListener_on_inconsistent_topic
210  */
212 };
213 
214 /*ce \dref_TopicListener_INITIALIZER
215  */
216 #define DDS_TopicListener_INITIALIZER \
217 { DDS_Listener_INITIALIZER, (DDS_TopicListener_InconsistentTopicCallback)NULL}
218 
219 /* ================================================================= */
220 /* Topic */
221 /* ================================================================= */
222 /*ce \dref_Topic_as_entity
223  */
224 DDSCDllExport DDS_Entity*
226 
227 /*ce \dref_Topic_as_topicdescription
228  */
229 DDSCDllExport DDS_TopicDescription*
231 
232 /*ce \dref_Topic_narrow
233  */
234 DDSCDllExport DDS_Topic*
236 
237 /*ce \dref_Topic_get_inconsistent_topic_status
238 */
239 DDSCDllExport DDS_ReturnCode_t
241  DDS_Topic *self,
242  struct DDS_InconsistentTopicStatus *status);
243 
244 #if INCLUDE_API_QOS
245 /*ce \dref_Topic_set_qos
246  */
247 DDSCDllExport DDS_ReturnCode_t
249  DDS_Topic *self,
250  const struct DDS_TopicQos *qos);
251 
252 /*ce \dref_Topic_get_qos
253  */
254 DDSCDllExport DDS_ReturnCode_t
255 DDS_Topic_get_qos(DDS_Topic * self,struct DDS_TopicQos *qos);
256 #endif
257 
258 #ifndef RTI_CERT
259 /*ce \dref_Topic_set_listener
260  */
261 DDSCDllExport DDS_ReturnCode_t
263  DDS_Topic *self,
264  const struct DDS_TopicListener *l,
265  DDS_StatusMask mask);
266 #endif
267 
268 #ifndef RTI_CERT
269 /*ce \dref_Topic_get_listener
270  */
271 DDSCDllExport struct DDS_TopicListener
273 #endif
274 
275 /* ----------------------------------------------------------------- */
276 
277 #ifdef __cplusplus
278 } /* extern "C" */
279 #endif
280 
281 
282 #endif /* dds_c_topic_h */

RTI Connext DDS Micro Version 2.4.6 Copyright © Mon Jan 25 2016 Real-Time Innovations, Inc