RTI Connext DDS Micro  Version 2.4.8
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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-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  * 04nov2015,tk MICRO-1505 Reduce memory footprint
16  * 19may2015,as MICRO-1193 Refactoring of Sequence API levels
17  * 15may2015,tk MICRO-1221/PR#14767 Removed send_queue_size
18  * 26jan2015,tk MICRO-1028/PR#13473 Added macros to test for builtin topics
19  * 23jan2012,tk Written
20  */
21 /*ce
22  * \file
23  * \brief DDS discovery data definitions
24  */
25 /*e
26  @ingroup DDSDiscoveryModule
27 */
28 #ifndef dds_c_discovery_h
29 #define dds_c_discovery_h
30 
31 #ifndef dds_c_dll_h
32 #include "dds_c/dds_c_dll.h"
33 #endif
34 #ifndef dds_c_infrastructure_h
36 #endif
37 #ifndef dds_c_domain_h
38 #include "dds_c/dds_c_domain.h"
39 #endif
40 #ifndef dds_c_type_h
41 #include "dds_c/dds_c_type.h"
42 #endif
43 
44 #ifdef __cplusplus
45 extern "C"
46 {
47 #endif
48 
49 #define DDS_BUILTIN_ENDPOINT_PARTICIPANT_ANNOUNCER 0x00000001 << 0
50 #define DDS_BUILTIN_ENDPOINT_PARTICIPANT_DETECTOR 0x00000001 << 1
51 #define DDS_BUILTIN_ENDPOINT_PUBLICATION_ANNOUNCER 0x00000001 << 2
52 #define DDS_BUILTIN_ENDPOINT_PUBLICATION_DETECTOR 0x00000001 << 3
53 #define DDS_BUILTIN_ENDPOINT_SUBSCRIPTION_ANNOUNCER 0x00000001 << 4
54 #define DDS_BUILTIN_ENDPOINT_SUBSCRIPTION_DETECTOR 0x00000001 << 5
55 
56 #define DDSC_PARTICIPANT_ADDRESS_COUNT_MAX RTPS_PID_USERDATA_IPADDRESS_COUNT_MAX
57 
58 /*ci
59  * \brief Array index for the object_id in a BuiltinTopicKey_t
60  */
61 #define DDS_BUILTIN_TOPIC_KEY_OBJECT_ID 3
62 
63 /*ci
64  * \brief Determine if an object id is a built-in topic or
65  * a user-defined topic
66  *
67  * \param[in] oid Object id to test
68  *
69  * \return DDS_BOOLEAN_FALSE if the test is false, DDS_BOOLEAN_TRUE otherwise
70  */
71 DDSCDllExport DDS_Boolean
72 DDS_ObjectId_is_builtin(DDS_Long oid);
73 
74 /*ci
75  * \brief Determine if a DDS_BuiltinTopicKey_t is a built-in topic or
76  * a user-defined topic
77  *
78  * \param[in] key DDS_BuiltinTopicKey_t to test
79  *
80  * \return DDS_BOOLEAN_FALSE if the test is false, DDS_BOOLEAN_TRUE otherwise
81  */
82 DDSCDllExport DDS_Boolean
83 DDS_BuiltinTopicKey_is_builtin(const struct DDS_BuiltinTopicKey_t *const key);
84 
85 /*e \dref_ParticipantBuiltinTopicData
86  */
87 struct DDSCPPDllExport DDS_ParticipantBuiltinTopicData
88 {
89  /*e \dref_ParticipantBuiltinTopicData_key
90  */
92 
93  /*e \dref_ParticipantBuiltinTopicData_participant_name
94  */
95  struct DDS_EntityNameQosPolicy participant_name;
96 
97  /*e \dref_ParticipantBuiltinTopicData_dds_builtin_endpoints
98  */
100 
101  /*e \dref_ParticipantBuiltinTopicData_rtps_protocol_version
102  */
104 
105  /*e \dref_ParticipantBuiltinTopicData_rtps_vendor_id
106  */
107  struct DDS_VendorId_t rtps_vendor_id;
108 
109  /*e \dref_ParticipantBuiltinTopicData_default_unicast_locators
110  */
111  struct DDS_LocatorSeq default_unicast_locators;
112 
113  /*e \dref_ParticipantBuiltinTopicData_default_multicast_locators
114  */
115  struct DDS_LocatorSeq default_multicast_locators;
116 
117  /*e \dref_ParticipantBuiltinTopicData_metatraffic_unicast_locators
118  */
119  struct DDS_LocatorSeq metatraffic_unicast_locators;
120 
121  /*e \dref_ParticipantBuiltinTopicData_metatraffic_multicast_locators
122  */
123  struct DDS_LocatorSeq metatraffic_multicast_locators;
124 
125  /*e \dref_ParticipantBuiltinTopicData_liveliness_lease_duration
126  */
127  struct DDS_Duration_t liveliness_lease_duration;
128 
129  /*e \dref_ParticipantBuiltinTopicData_product_version
130  */
131  struct DDS_ProductVersion_t product_version;
132 
133  DDSC_CPP_QOS_METHODS(DDS_ParticipantBuiltinTopicData)
134 };
135 
136 DDSC_VARIABLE_LENGTH_VALUE_TYPE_SUPPORT_FULL(DDS_ParticipantBuiltinTopicData);
137 
138 /*i \dref_DDS_ParticipantBuiltinTopicData_INITIALIZER
139  */
140 #define DDS_ParticipantBuiltinTopicData_INITIALIZER { \
141  DDS_BuiltinTopicKey_t_INITIALIZER, \
142  DDS_ENTITY_NAME_QOS_POLICY_DEFAULT, \
143  0, /* builtin endpoints */ \
144  DDS_PROTOCOL_VERSION_DEFAULT, \
145  DDS_VENDOR_ID_DEFAULT, \
146  DDS_SEQUENCE_INITIALIZER, \
147  DDS_SEQUENCE_INITIALIZER, \
148  DDS_SEQUENCE_INITIALIZER, \
149  DDS_SEQUENCE_INITIALIZER, \
150  {100L,0L}, /* participant_liveliness_lease_duration */\
151  DDS_PRODUCTVERSION_UNKNOWN }
152 
153 #define T struct DDS_ParticipantBuiltinTopicData
154 #define TSeq DDS_ParticipantBuiltinTopicDataSeq
155 #define REDA_SEQUENCE_USER_API
156 #include <reda/reda_sequence_decl.h>
157 
158 #define DDS_ParticipantBuiltinTopicDataSeq_INITIALIZER \
159 DDS_SEQUENCE_INITIALIZER
160 
161 
162 /*e \dref_PublicationBuiltInTopicGroupDocs
163  */
164 
165 /*e \dref_PublicationBuiltinTopicData
166  */
167 struct DDSCPPDllExport DDS_PublicationBuiltinTopicData
168 {
169  /*e \dref_PublicationBuiltinTopicData_key
170  */
172 
173  /*e \dref_PublicationBuiltinTopicData_participant_key
174  */
175  struct DDS_BuiltinTopicKey_t participant_key;
176 
177  /*e \dref_PublicationBuiltinTopicData_topic_name
178  */
179  char *topic_name;
180 
181  /*e \dref_PublicationBuiltinTopicData_type_name
182  */
183  char *type_name;
184 
185  /*e \dref_PublicationBuiltinTopicData_deadline
186  */
187  struct DDS_DeadlineQosPolicy deadline;
188 
189  /*e \dref_PublicationBuiltinTopicData_ownership
190  */
191  struct DDS_OwnershipQosPolicy ownership;
192 
193  /*e \dref_PublicationBuiltinTopicData_ownership_strength
194  */
195  struct DDS_OwnershipStrengthQosPolicy ownership_strength;
196 
197  /*e \dref_PublicationBuiltinTopicData_reliability
198  */
199  struct DDS_ReliabilityQosPolicy reliability;
200 
201  /*e \dref_PublicationBuiltinTopicData_liveliness
202  */
203  struct DDS_LivelinessQosPolicy liveliness;
204 
205  /*e \dref_PublicationBuiltinTopicData_durability
206  */
207  struct DDS_DurabilityQosPolicy durability;
208 
209  /*e \dref_PublicationBuiltinTopicData_unicast_locator
210  */
211  struct DDS_LocatorSeq unicast_locator;
212 
213  DDSC_CPP_QOS_METHODS(DDS_PublicationBuiltinTopicData)
214 };
215 
216 DDSC_VARIABLE_LENGTH_VALUE_TYPE_SUPPORT_FULL(DDS_PublicationBuiltinTopicData);
217 
218 /*i \dref_PublicationBuiltinTopicData_INITIALIZER
219  */
220 #define DDS_PublicationBuiltinTopicData_INITIALIZER { \
221  DDS_BuiltinTopicKey_t_INITIALIZER, \
222  DDS_BuiltinTopicKey_t_INITIALIZER, \
223  NULL,\
224  NULL,\
225  DDS_DEADLINE_QOS_POLICY_DEFAULT, \
226  DDS_OWNERSHIP_QOS_POLICY_DEFAULT,\
227  DDS_OWNERSHIP_STRENGTH_QOS_POLICY_DEFAULT, \
228  DDS_RELIABILITY_QOS_POLICY_DEFAULT,\
229  DDS_LIVELINESS_QOS_POLICY_DEFAULT, \
230  DDS_DURABILITY_QOS_POLICY_DEFAULT, \
231  DDS_SEQUENCE_INITIALIZER \
232 }
233 
234 #define T struct DDS_PublicationBuiltinTopicData
235 #define TSeq DDS_PublicationBuiltinTopicDataSeq
236 #define REDA_SEQUENCE_USER_API
237 #include <reda/reda_sequence_decl.h>
238 
239 #define DDS_PublicationBuiltinTopicDataSeq_INITIALIZER \
240 DDS_SEQUENCE_INITIALIZER
241 
242 /*e \dref_SubscriptionBuiltInTopicGroupDocs
243  */
244 
245 /*e \dref_SubscriptionBuiltinTopicData
246  */
247 struct DDSCPPDllExport DDS_SubscriptionBuiltinTopicData
248 {
249  /*e \dref_SubscriptionBuiltinTopicData_key
250  * Key GUID must be first
251  */
253 
254  /*e \dref_SubscriptionBuiltinTopicData_participant_key
255  */
256  struct DDS_BuiltinTopicKey_t participant_key;
257 
258  /*e \dref_SubscriptionBuiltinTopicData_topic_name
259  */
260  char *topic_name;
261 
262  /*e \dref_SubscriptionBuiltinTopicData_type_name
263  */
264  char *type_name;
265 
266  /*e \dref_SubscriptionBuiltinTopicData_deadline
267  */
268  struct DDS_DeadlineQosPolicy deadline;
269 
270  /*e \dref_SubscriptionBuiltinTopicData_ownership
271  */
272  struct DDS_OwnershipQosPolicy ownership;
273 
274  /*e \dref_SubscriptionBuiltinTopicData_reliability
275  */
276  struct DDS_ReliabilityQosPolicy reliability;
277 
278  /*e \dref_SubscriptionBuiltinTopicData_liveliness
279  */
280  struct DDS_LivelinessQosPolicy liveliness;
281 
282  /*e \dref_SubscriptionBuiltinTopicData_durability
283  */
284  struct DDS_DurabilityQosPolicy durability;
285 
286  /*e \dref_SubscriptionBuiltinTopicData_unicast_locator
287  */
288  struct DDS_LocatorSeq unicast_locator;
289 
290  /*e \dref_SubscriptionBuiltinTopicData_multicast_locator
291  */
292  struct DDS_LocatorSeq multicast_locator;
293 
294  DDSC_CPP_QOS_METHODS(DDS_SubscriptionBuiltinTopicData)
295 };
296 
297 DDSC_VARIABLE_LENGTH_VALUE_TYPE_SUPPORT_FULL(DDS_SubscriptionBuiltinTopicData);
298 
299 /*i \dref_DDS_SubscriptionBuiltinTopicData_INITIALIZER
300  */
301 #define DDS_SubscriptionBuiltinTopicData_INITIALIZER { \
302  DDS_BuiltinTopicKey_t_INITIALIZER, \
303  DDS_BuiltinTopicKey_t_INITIALIZER, \
304  NULL,\
305  NULL,\
306  DDS_DEADLINE_QOS_POLICY_DEFAULT, \
307  DDS_OWNERSHIP_QOS_POLICY_DEFAULT ,\
308  DDS_RELIABILITY_QOS_POLICY_DEFAULT,\
309  DDS_LIVELINESS_QOS_POLICY_DEFAULT, \
310  DDS_DURABILITY_QOS_POLICY_DEFAULT, \
311  DDS_SEQUENCE_INITIALIZER,\
312  DDS_SEQUENCE_INITIALIZER,\
313 }
314 
315 #define T struct DDS_SubscriptionBuiltinTopicData
316 #define TSeq DDS_SubscriptionBuiltinTopicDataSeq
317 #define REDA_SEQUENCE_USER_API
318 #include <reda/reda_sequence_decl.h>
319 
320 #define DDS_SubscriptionBuiltinTopicDataSeq_INITIALIZER \
321 DDS_SEQUENCE_INITIALIZER
322 
323 struct NDDS_RemoteEntityImpl;
324 typedef struct NDDS_RemoteEntityImpl NDDS_RemoteEntity;
325 struct DDS_RemotePublicationImpl;
326 typedef struct DDS_RemotePublicationImpl DDS_RemotePublication;
327 typedef struct DDS_RemoteSubscriptionImpl DDS_RemoteSubscription;
328 typedef struct DDS_RemoteParticipantImpl DDS_RemoteParticipant;
329 
330 /*ci
331  * \brief Assert a remote participant into a participant
332  *
333  * \details
334  * Assert a remote participant into the participant. This is typically
335  * done as part of the discovery process where a discovery plugin has
336  * discovered a remote participant via some means. It is legal to assert a
337  * remote participant multiple times. If the remote participant does not
338  * yet exist in the participant is_new is set to TRUE, otherwise if it does
339  * exit is_new is set to FALSE. Note that asserting a remote participant
340  * does not automatically enable it. Either \ref
341  * NDDS_DomainParticipant_enable_remote_participant_name or \ref
342  * NDDS_DomainParticipant_enable_remote_participant_guid must be called for
343  * that. Matching of a remote participant's endpoints with local endpoints
344  * does not occur until the remote participant is enabled.
345  *
346  * \param[in] participant The participant to assert the remote participant in
347  * \param[in] data Discovery data for the remote participant
348  * \param[inout] is_new TRUE is the participant already has seen this
349  * participant, FALSE otherwise.
350  *
351  * \return DDS_RETCODE_OK on success,one of the standard error codes on failure
352  */
353 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
354 NDDS_DomainParticipant_assert_remote_participant(
355  DDS_DomainParticipant *const participant,
356  struct DDS_ParticipantBuiltinTopicData *const data,
357  DDS_Boolean *const is_new);
358 
359 /*ci
360  * \brief Refresh the liveliness for a remote participant
361  *
362  * \details
363  * This function informs the participant that the remote participant with
364  * a key is still alive. How this is determined is outside the scope of this
365  * function. If a remote participant fails to refresh its liveliness it will
366  * be reset/removed from the participant.
367  *
368  * \param[in] participant The participant to refresh the liveliness in
369  * \param[in] key The key of the remote participant that has refreshed
370  * its liveliness.
371  *
372  * \return DDS_RETCODE_OK on success,one of the standard error codes on failure
373  */
374 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
375 NDDS_DomainParticipant_refresh_remote_participant_liveliness(
376  DDS_DomainParticipant * const participant,
377  const struct DDS_BuiltinTopicKey_t *const key);
378 
379 /*ci
380  * \brief Reset a remote participant from a participant
381  *
382  * \details
383  * This function resets a remote participant and all its endpoints in the
384  * participant. When the remote endpoints are reset they are also unmatched
385  * from local endpoints. However, the remote participants and remote endpoints
386  * are not removed from the participant. This feature is typically used in
387  * static discovery where remote participants and endponts are statically
388  * asserted. After they have been reset they can be re-enabled with one the
389  * remote participant enable functions
390  * \ref NDDS_DomainParticipant_enable_remote_participant_guid or
391  * \ref NDDS_DomainParticipant_enable_remote_participant_name
392  *
393  * \param[in] participant The participant to remove the remote participant from
394  * \param[in] key The key of the remote participant to remove
395  *
396  * \return DDS_RETCODE_OK on success,one of the standard error codes on failure
397  */
398 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
399 NDDS_DomainParticipant_reset_remote_participant(
400  DDS_DomainParticipant *const participant,
401  const struct DDS_BuiltinTopicKey_t *const key);
402 
403 #ifndef RTI_CERT
404 /*ci
405  * \brief Remove a remote participant from a participant
406  *
407  * \details
408  * This function removes a remote participant and all its endpoints from the
409  * participant. When the remote endpoints are removed they are also unmatched
410  * from local endpoints.
411  *
412  * \param[in] participant The participant to remove the remote participant from
413  * \param[in] key The key of the remote participant to remove
414  *
415  * \return DDS_RETCODE_OK on success,one of the standard error codes on failure
416  */
417 SHOULD_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
418 NDDS_DomainParticipant_remove_remote_participant(
419  DDS_DomainParticipant *const participant,
420  const DDS_BuiltinTopicKey_t *const key);
421 #endif /* !RTI_CERT */
422 
423 /*ci
424  * \brief Enable a remote participant by name
425  *
426  * \details
427  * When a remote participant is asserted it is initially in a disabled state.
428  * Any endpoint asserted as part of the remote participant is also disabled
429  * and no matching occur. This function enables a remote participant which
430  * causes matching with local entities. In addition the liveliness timer
431  * is started and the remote participant must maintain its liveliness to
432  * avoid being reset/removed. This function is called when a participant has
433  * been asserted statically and is only known by name. On successful
434  * return the remote participant has been updated with a GUID (taken from the
435  * data input argument) and all its remote endpoints have been matched with
436  * local endpoints.
437  *
438  * \param[in] participant The participant to enable the remote participant in
439  * \param[in] data The discovery data to enable the remote participant
440  * with
441  *
442  * \return DDS_RETCODE_OK on success,one of the standard error codes on failure
443  */
444 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
445 NDDS_DomainParticipant_enable_remote_participant_name(
446  DDS_DomainParticipant * const participant,
447  const struct DDS_ParticipantBuiltinTopicData *const data);
448 
449 /*ci
450  * \brief Enable a remote participant by GUID
451  *
452  * \details
453  * When a remote participant is asserted it is initially in a disabled state.
454  * Any endpoint asserted as part of the remote participant is also disabled
455  * and no matching occur. This function enables a remote participant which
456  * causes matching with local entities. In addition the liveliness timer
457  * is started and the remote participant must maintain its liveliness to
458  * avoid being reset/removed. This function is called when participant has
459  * been detected based on discovery data with a valid GUID. On successful
460  * return the remote participant is enabled and all its remote endpoints have
461  * been matched with local endpoints.
462  *
463  * \param[in] participant The participant to enable the remote participant in
464  * \param[in] data The discovery data to enable the remote participant
465  * with
466  *
467  * \return DDS_RETCODE_OK on success,one of the standard error codes on failure
468  */
469 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
470 NDDS_DomainParticipant_enable_remote_participant_guid(
471  DDS_DomainParticipant * const participant,
472  const struct DDS_ParticipantBuiltinTopicData *const data);
473 
474 /*ci
475  * \brief Assert a remote publication into a participant
476  *
477  * \details
478  * This function adds a remote publication as an endpoint in a remote
479  * participant. Either the name or the GUID of the participant must be
480  * specified, but not both. The name is used for static discovery
481  * when the GUID of the participant is not known, while the participant
482  * key in the data input is used for dynamic discovery.
483  *
484  * If the remote participant is already enabled the remote publication is
485  * also enabled automatically. Otherwise the remote publication is created
486  * in a disabled state and enabled when the remote participant is enabled.
487  *
488  * \param[in] participant The participant to assert the remote publication in
489  * \param[in] participant_name The name of the remote publication's parent
490  * \param[in] data Discovery data for the remote publication
491  * \param[in] key_kind The type of key for the topic published by the remote
492  * publication
493  *
494  * \return DDS_RETCODE_OK on success,one of the standard error codes on failure
495  */
496 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
497 NDDS_DomainParticipant_assert_remote_publication(
498  DDS_DomainParticipant *const participant,
499  const char *const participant_name,
500  const struct DDS_PublicationBuiltinTopicData *const data,
501  NDDS_TypePluginKeyKind key_kind);
502 
503 #ifndef RTI_CERT
504 /*ci
505  * \brief Remove a remote publication from a participant
506  *
507  * \details
508  * This function removes a remote publication as an endpoint from a remote
509  * participant. It is unmatched from local endpoints before removal.
510  *
511  * \param[in] participant The participant to remove the remote publication from
512  * \param[in] key The key for the remote publication that is removed
513  *
514  * \return DDS_RETCODE_OK on success,one of the standard error codes on failure
515  */
516 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
517 NDDS_DomainParticipant_remove_remote_publication(
518  DDS_DomainParticipant *const participant,
519  const DDS_BuiltinTopicKey_t *const key);
520 #endif /* !RTI_CERT */
521 
522 /*ci
523  * \brief Assert a remote subscription into a participant
524  *
525  * \details
526  * This function adds a remote subscription as an endpoint in a remote
527  * participant. Either the name or the GUID of the participant must be
528  * specified, but not both. The name is typically used for static discovery
529  * when the GUID of the participant is not known, while the participant
530  * key in the data input is used for dynamic discovery.
531  *
532  * If the remote participant is already enabled the remote subscription is
533  * also enabled automatically. Otherwise the remote subscription is created
534  * in a disabled state and enabled when the remote participant is enabled.
535  *
536  * \param[in] participant The participant to assert the remote publication in
537  * \param[in] participant_name The name of the remote subscription's parent
538  * \param[in] data Discovery data for the remote subscription
539  * \param[in] key_kind The type of key for the topic subscribed to by the
540  * remote subscription
541  *
542  * \return DDS_RETCODE_OK on success,one of the standard error codes on failure
543  */
544 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
545 NDDS_DomainParticipant_assert_remote_subscription(
546  DDS_DomainParticipant* const participant,
547  const char *const participant_name,
548  const struct DDS_SubscriptionBuiltinTopicData *const data,
549  NDDS_TypePluginKeyKind key_kind);
550 
551 #ifndef RTI_CERT
552 /*ci
553  * \brief Remove a remote subscription from a participant
554  *
555  * \details
556  * This function removes a remote subscription as an endpoint from a remote
557  * participant. It is unmatched from local endpoints before removal.
558  *
559  * \param[in] participant The participant to remove the remote subscription from
560  * \param[in] key The key for the remote subscription that is removed
561  *
562  * \return DDS_RETCODE_OK on success,one of the standard error codes on failure
563  */
564 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
565 NDDS_DomainParticipant_remove_remote_subscription(
566  DDS_DomainParticipant* const participant,
567  const DDS_BuiltinTopicKey_t* const key);
568 #endif /* !RTI_CERT */
569 
570 #ifndef RTI_CERT
571 
572 /*ci
573  * \brief Remove a remote DDS DataWriter as a peer for a local DDS datareader
574  *
575  * \param[in] datareader The local datareader
576  * \param[in] dp_key The peer's participant key
577  * \param[in] entity_id The peer's entity id (The prefix is the same as dp_key)
578  *
579  * \return DDS_RETCODE_OK on success, one of the standard error codes on failure
580  */
581 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
582 DDS_DataReader_remove_peer(DDS_DataReader *const datareader,
583  const DDS_BuiltinTopicKey_t *const dp_key,
584  RTI_INT32 entity_id);
585 
586 /*ci
587  * \brief Remove a remote DDS DataReader as a peer for a local DDS datawriter
588  *
589  * \param[in] datawriter The local datawriter
590  * \param[in] dp_key The peer's participant key
591  * \param[in] entity_id The peer's entity id (The prefix is the same as dp_key)
592  *
593  * \return DDS_RETCODE_OK on success, one of the standard error codes on failure
594  */
595 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
596 DDS_DataWriter_remove_peer(DDS_DataWriter *const datawriter,
597  const DDS_BuiltinTopicKey_t *const dp_key,
598  RTI_INT32 entity_id);
599 
600 /*ci
601  * \brief Remove all remote DDS DataWriters with the entity_id as a peer
602  * from all discovered participants
603  *
604  * \param[in] datareader The local datareader
605  * \param[in] entity_id The peer's entity id (The prefix is the same as dp_key)
606  *
607  * \return DDS_RETCODE_OK on success, one of the standard error codes on failure
608  */
609 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
610 DDS_DataReader_remove_all_peers(DDS_DataReader *const datareader,
611  RTI_INT32 entity_id);
612 
613 /*ci
614  * \brief Remove all remote DDS DataReaders with the entity_id as a peer
615  * from all discovered participants
616  *
617  * \param[in] datawriter The local datawriter
618  * \param[in] entity_id The peer's entity id (The prefix is the same as dp_key)
619  *
620  * \return DDS_RETCODE_OK on success, one of the standard error codes on failure
621  */
622 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
623 DDS_DataWriter_remove_all_peers(DDS_DataWriter *const datawriter,
624  RTI_INT32 entity_id);
625 
626 /*ci
627  * \brief Add a remote DDS DataReader with the entity_id as a peer to a local
628  * DDS DataWriter
629  *
630  * \param[in] datawriter The local datawriter
631  * \param[in] dp_key The peer's participant key
632  * \param[in] dr_qos The peer's Qos policy
633  * \param[in] entity_id The peer's entity id (The prefix is the same as dp_key)
634  *
635  * \return DDS_RETCODE_OK on success, one of the standard error codes on failure
636  */
637 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
638 DDS_DataWriter_add_peer(DDS_DataWriter *const datawriter,
639  const DDS_BuiltinTopicKey_t *const dp_key,
640  const struct DDS_DataReaderQos *const dr_qos,
641  RTI_INT32 entity_id);
642 
643 /*ci
644  * \brief Add a remote DDS DataWriter with the entity_id as a peer to a local
645  * DDS Datareader
646  *
647  * \param[in] datareader The local datareader
648  * \param[in] dp_key The peer's participant key
649  * \param[in] dw_qos The peer's Qos policy
650  * \param[in] entity_id The peer's entity id (The prefix is the same as dp_key)
651  *
652  * \return DDS_RETCODE_OK on success, one of the standard error codes on failure
653  */
654 MUST_CHECK_RETURN DDSCDllExport DDS_ReturnCode_t
655 DDS_DataReader_add_peer(DDS_DataReader *const datareader,
656  const DDS_BuiltinTopicKey_t *const dp_key,
657  const struct DDS_DataWriterQos *const dw_qos,
658  RTI_INT32 entity_id);
659 
660 #endif
661 
662 #ifdef __cplusplus
663 } /* extern "C" */
664 #endif
665 
666 
667 #endif /* dds_c_discovery_h */

RTI Connext DDS Micro Version 2.4.8 Copyright © Tue Apr 12 2016 Real-Time Innovations, Inc