RTI Connext Micro  Version 2.4.1.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
dds_c_discovery.h
Go to the documentation of this file.
1 /*
2  * FILE: dds_c_discovery.h - DDS discovery data definitions
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  * 23jan2012,tk Written
16  */
17 /*ce
18  * \file
19  * \brief DDS discovery data definitions
20  */
21 /*e
22  @ingroup DDSDiscoveryModule
23 */
24 #ifndef dds_c_discovery_h
25 #define dds_c_discovery_h
26 
27 #ifndef dds_c_dll_h
28 #include "dds_c/dds_c_dll.h"
29 #endif
30 #ifndef dds_c_infrastructure_h
32 #endif
33 #ifndef dds_c_domain_h
34 #include "dds_c/dds_c_domain.h"
35 #endif
36 #ifndef dds_c_type_h
37 #include "dds_c/dds_c_type.h"
38 #endif
39 
40 #ifdef __cplusplus
41 extern "C"
42 {
43 #endif
44 
45 #define DDS_BUILTIN_ENDPOINT_PARTICIPANT_ANNOUNCER 0x00000001 << 0
46 #define DDS_BUILTIN_ENDPOINT_PARTICIPANT_DETECTOR 0x00000001 << 1
47 #define DDS_BUILTIN_ENDPOINT_PUBLICATION_ANNOUNCER 0x00000001 << 2
48 #define DDS_BUILTIN_ENDPOINT_PUBLICATION_DETECTOR 0x00000001 << 3
49 #define DDS_BUILTIN_ENDPOINT_SUBSCRIPTION_ANNOUNCER 0x00000001 << 4
50 #define DDS_BUILTIN_ENDPOINT_SUBSCRIPTION_DETECTOR 0x00000001 << 5
51 
52 #define DDSC_PARTICIPANT_ADDRESS_COUNT_MAX RTPS_PID_USERDATA_IPADDRESS_COUNT_MAX
53 
54 #if 0
55 /*e \dref_ParticipantBuiltInTopicGroupDocs
56  */
57  #endif
58 
59 #define DDS_BUILTIN_TOPIC_KEY_OBJECT_ID 3
60 
61 /*e \dref_ParticipantBuiltinTopicData
62  */
64 {
65  /*e \dref_ParticipantBuiltinTopicData_key
66  */
68 
69  /*e \dref_ParticipantBuiltinTopicData_participant_name
70  */
72 
73  /*e \dref_ParticipantBuiltinTopicData_dds_builtin_endpoints
74  */
76 
77  /*e \dref_ParticipantBuiltinTopicData_rtps_protocol_version
78  */
80 
81  /*e \dref_ParticipantBuiltinTopicData_rtps_vendor_id
82  */
84 
85  /*e \dref_ParticipantBuiltinTopicData_default_unicast_locators
86  */
88 
89  /*e \dref_ParticipantBuiltinTopicData_default_multicast_locators
90  */
92 
93  /*e \dref_ParticipantBuiltinTopicData_metatraffic_unicast_locators
94  */
96 
97  /*e \dref_ParticipantBuiltinTopicData_metatraffic_multicast_locators
98  */
100 
101  /*e \dref_ParticipantBuiltinTopicData_liveliness_lease_duration
102  */
104 
105  /*e \dref_ParticipantBuiltinTopicData_product_version
106  */
108 
109 };
110 
111 DDSC_VARIABLE_LENGTH_VALUE_TYPE_SUPPORT_FULL(DDS_ParticipantBuiltinTopicData);
112 
113 /*i \dref_DDS_ParticipantBuiltinTopicData_INITIALIZER
114  */
115 #define DDS_ParticipantBuiltinTopicData_INITIALIZER { \
116  DDS_BuiltinTopicKey_t_INITIALIZER, \
117  DDS_ENTITY_NAME_QOS_POLICY_DEFAULT, \
118  0, /* builtin endpoints */ \
119  DDS_PROTOCOL_VERSION_DEFAULT, \
120  DDS_VENDOR_ID_DEFAULT, \
121  DDS_SEQUENCE_INITIALIZER(struct DDS_Locator), \
122  DDS_SEQUENCE_INITIALIZER(struct DDS_Locator), \
123  DDS_SEQUENCE_INITIALIZER(struct DDS_Locator), \
124  DDS_SEQUENCE_INITIALIZER(struct DDS_Locator), \
125  {100L,0L}, /* participant_liveliness_lease_duration */\
126  DDS_PRODUCTVERSION_UNKNOWN }
127 
128 DDS_SEQUENCE(DDS_ParticipantBuiltinTopicDataSeq,
130 
131 #define DDS_ParticipantBuiltinTopicDataSeq_INITIALIZER \
132 DDS_SEQUENCE_INITIALIZER(struct DDS_ParticipantBuiltinTopicData)
133 
134 
135 /*e \dref_PublicationBuiltInTopicGroupDocs
136  */
137 
138 /*e \dref_PublicationBuiltinTopicData
139  */
140 struct DDS_PublicationBuiltinTopicData
141 {
142  /*e \dref_PublicationBuiltinTopicData_key
143  */
144  struct DDS_BuiltinTopicKey_t key;
145 
146  /*e \dref_PublicationBuiltinTopicData_participant_key
147  */
148  struct DDS_BuiltinTopicKey_t participant_key;
149 
150  /*e \dref_PublicationBuiltinTopicData_topic_name
151  */
152  char *topic_name;
153 
154  /*e \dref_PublicationBuiltinTopicData_type_name
155  */
156  char *type_name;
157 
158  /*e \dref_PublicationBuiltinTopicData_deadline
159  */
160  struct DDS_DeadlineQosPolicy deadline;
161 
162  /*e \dref_PublicationBuiltinTopicData_ownership
163  */
164  struct DDS_OwnershipQosPolicy ownership;
165 
166  /*e \dref_PublicationBuiltinTopicData_ownership_strength
167  */
168  struct DDS_OwnershipStrengthQosPolicy ownership_strength;
169 
170  /*e \dref_PublicationBuiltinTopicData_reliability
171  */
172  struct DDS_ReliabilityQosPolicy reliability;
173 
174  /*e \dref_PublicationBuiltinTopicData_liveliness
175  */
176  struct DDS_LivelinessQosPolicy liveliness;
177 
178  /*e \dref_PublicationBuiltinTopicData_durability
179  */
180  struct DDS_DurabilityQosPolicy durability;
181 
182  /*e \dref_PublicationBuiltinTopicData_unicast_locator
183  */
184  struct DDS_LocatorSeq unicast_locator;
185 
186  /*i \dref_PublicationBuiltinTopicData_send_queue_size
187  */
188  DDS_Long send_queue_size;
189 };
190 
191 DDSC_VARIABLE_LENGTH_VALUE_TYPE_SUPPORT_FULL(DDS_PublicationBuiltinTopicData);
192 
193 /*i \dref_PublicationBuiltinTopicData_INITIALIZER
194  */
195 #define DDS_PublicationBuiltinTopicData_INITIALIZER { \
196  DDS_BuiltinTopicKey_t_INITIALIZER, \
197  DDS_BuiltinTopicKey_t_INITIALIZER, \
198  NULL,\
199  NULL,\
200  DDS_DEADLINE_QOS_POLICY_DEFAULT, \
201  DDS_OWNERSHIP_QOS_POLICY_DEFAULT,\
202  DDS_OWNERSHIP_STRENGTH_QOS_POLICY_DEFAULT, \
203  DDS_RELIABILITY_QOS_POLICY_DEFAULT,\
204  DDS_LIVELINESS_QOS_POLICY_DEFAULT, \
205  DDS_DURABILITY_QOS_POLICY_DEFAULT, \
206  DDS_SEQUENCE_INITIALIZER(struct DDS_Locator),\
207  256\
208 }
209 
210 DDS_SEQUENCE(DDS_PublicationBuiltinTopicDataSeq,
211  struct DDS_PublicationBuiltinTopicData)
212 
213 #define DDS_PublicationBuiltinTopicDataSeq_INITIALIZER \
214 DDS_SEQUENCE_INITIALIZER(struct DDS_PublicationBuiltinTopicData)
215 
216 /*e \dref_SubscriptionBuiltInTopicGroupDocs
217  */
218 
219 /*e \dref_SubscriptionBuiltinTopicData
220  */
221 struct DDS_SubscriptionBuiltinTopicData
222 {
223  /*e \dref_SubscriptionBuiltinTopicData_key
224  * Key GUID must be first
225  */
226  struct DDS_BuiltinTopicKey_t key;
227 
228  /*e \dref_SubscriptionBuiltinTopicData_participant_key
229  */
230  struct DDS_BuiltinTopicKey_t participant_key;
231 
232  /*e \dref_SubscriptionBuiltinTopicData_topic_name
233  */
234  char *topic_name;
235 
236  /*e \dref_SubscriptionBuiltinTopicData_type_name
237  */
238  char *type_name;
239 
240  /*e \dref_SubscriptionBuiltinTopicData_deadline
241  */
242  struct DDS_DeadlineQosPolicy deadline;
243 
244  /*e \dref_SubscriptionBuiltinTopicData_ownership
245  */
246  struct DDS_OwnershipQosPolicy ownership;
247 
248  /*e \dref_SubscriptionBuiltinTopicData_reliability
249  */
250  struct DDS_ReliabilityQosPolicy reliability;
251 
252  /*e \dref_SubscriptionBuiltinTopicData_liveliness
253  */
254  struct DDS_LivelinessQosPolicy liveliness;
255 
256  /*e \dref_SubscriptionBuiltinTopicData_durability
257  */
258  struct DDS_DurabilityQosPolicy durability;
259 
260  /*e \dref_SubscriptionBuiltinTopicData_unicast_locator
261  */
262  struct DDS_LocatorSeq unicast_locator;
263 
264  /*e \dref_SubscriptionBuiltinTopicData_multicast_locator
265  */
266  struct DDS_LocatorSeq multicast_locator;
267 };
268 
269 DDSC_VARIABLE_LENGTH_VALUE_TYPE_SUPPORT_FULL(DDS_SubscriptionBuiltinTopicData);
270 
271 /*i \dref_DDS_SubscriptionBuiltinTopicData_INITIALIZER
272  */
273 #define DDS_SubscriptionBuiltinTopicData_INITIALIZER { \
274  DDS_BuiltinTopicKey_t_INITIALIZER, \
275  DDS_BuiltinTopicKey_t_INITIALIZER, \
276  NULL,\
277  NULL,\
278  DDS_DEADLINE_QOS_POLICY_DEFAULT, \
279  DDS_OWNERSHIP_QOS_POLICY_DEFAULT ,\
280  DDS_RELIABILITY_QOS_POLICY_DEFAULT,\
281  DDS_LIVELINESS_QOS_POLICY_DEFAULT, \
282  DDS_DURABILITY_QOS_POLICY_DEFAULT, \
283  DDS_SEQUENCE_INITIALIZER(struct DDS_Locator),\
284  DDS_SEQUENCE_INITIALIZER(struct DDS_Locator)\
285 }
286 
287 DDS_SEQUENCE(DDS_SubscriptionBuiltinTopicDataSeq,
288  struct DDS_SubscriptionBuiltinTopicData)
289 
290 #define DDS_SubscriptionBuiltinTopicDataSeq_INITIALIZER \
291 DDS_SEQUENCE_INITIALIZER(struct DDS_SubscriptionBuiltinTopicData)
292 
293 struct NDDS_RemoteEntityImpl;
294 typedef struct NDDS_RemoteEntityImpl NDDS_RemoteEntity;
295 struct DDS_RemotePublicationImpl;
296 typedef struct DDS_RemotePublicationImpl DDS_RemotePublication;
297 typedef struct DDS_RemoteSubscriptionImpl DDS_RemoteSubscription;
298 typedef struct DDS_RemoteParticipantImpl DDS_RemoteParticipant;
299 
300 /*ci \dref_RemoteParticipant_assert
301  */
302 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
303 NDDS_DomainParticipant_assert_remote_participant(
304  DDS_DomainParticipant *const participant,
305  struct DDS_ParticipantBuiltinTopicData *const data,
306  DDS_Boolean *const is_new);
307 
308 /*ci \dref_RemoteParticipant_liveliness_refresh
309  */
310 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
311 NDDS_DomainParticipant_refresh_remote_participant_liveliness(
312  DDS_DomainParticipant * const participant,
313  const struct DDS_BuiltinTopicKey_t *const key);
314 
315 /*ci \dref_RemoteParticipant_reset
316  */
317 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
318 NDDS_DomainParticipant_reset_remote_participant(
319  DDS_DomainParticipant *const participant,
320  const struct DDS_BuiltinTopicKey_t *const key);
321 
322 /*ci \dref_RemoteParticipant_remove
323  */
324 SHOULD_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
325 NDDS_DomainParticipant_remove_remote_participant(
326  DDS_DomainParticipant *const participant,
327  const DDS_BuiltinTopicKey_t *const key);
328 
329 /*ci \dref_RemoteParticipant_enable_name
330  */
331 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
332 NDDS_DomainParticipant_enable_remote_participant_name(
333  DDS_DomainParticipant * const participant,
334  const struct DDS_ParticipantBuiltinTopicData *const data);
335 
336 /*ci \dref_RemoteParticipant_enable_name
337  */
338 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
339 NDDS_DomainParticipant_enable_remote_participant_guid(
340  DDS_DomainParticipant * const participant,
341  const struct DDS_ParticipantBuiltinTopicData *const data);
342 
343 /*ci \dref_RemotePublication_assert
344  */
345 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
346 NDDS_DomainParticipant_assert_remote_publication(
347  DDS_DomainParticipant *const participant,
348  const char *const participant_name,
349  const struct DDS_PublicationBuiltinTopicData *const data,
350  NDDS_TypePluginKeyKind key_kind);
351 
352 /*ci \dref_RemotePublication_remove
353  */
354 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
355 NDDS_DomainParticipant_remove_remote_publication(
356  DDS_DomainParticipant *const participant,
357  const DDS_BuiltinTopicKey_t *const key);
358 
359 /*ci \dref_RemoteSubscription_assert
360  */
361 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
362 NDDS_DomainParticipant_assert_remote_subscription(
363  DDS_DomainParticipant* const participant,
364  const char *const participant_name,
365  const struct DDS_SubscriptionBuiltinTopicData *const data,
366  NDDS_TypePluginKeyKind key_kind);
367 
368 /*ci \dref_RemoteSubscription_remove
369  */
370 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
371 NDDS_DomainParticipant_remove_remote_subscription(
372  DDS_DomainParticipant* const participant,
373  const DDS_BuiltinTopicKey_t* const key);
374 
375 #ifdef __cplusplus
376 } /* extern "C" */
377 #endif
378 
379 
380 #endif /* dds_c_discovery_h */

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