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

RTI Connext DDS Micro Version 2.4.10 Copyright © Fri Jun 30 2017 Real-Time Innovations, Inc