RTI Connext DDS Micro  Version 2.4.9
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
dds_c_domain.h
Go to the documentation of this file.
1 /*
2  * FILE: dds_c_domain.h - DDS domain module definitions
3  *
4  * (c) Copyright, Real-Time Innovations, 2012-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  * 19may2015,as MICRO-1193 Refactoring of Sequence API levels
18  * 02apr2015,as MICRO-372/PR#1528 Set space for discovery component to be
19  * RT_MAX_FACTORY_NAME+1
20  * 20sep2014,as Make support functions for QosPolicy types private and reduce public
21  * support functions for Qos types to initialize, finalize, copy only.
22  * 29apr2014,as MICRO-372 (Verocel PR#1528) Documented maximum length
23  * of DDS_DiscoveryComponent::name
24  * 19jul2013,as Added support for C++
25  * 29jun2012,tk Written
26  */
27 /*ce
28  * \file
29  * \brief DDS Domain Module definitions
30  */
31 /*e
32  @addtogroup DDSDomainModule Domain Module
33  @ingroup DDSCModule
34 
35  @brief Defines the \dds domain package
36  */
37 #ifndef dds_c_domain_h
38 #define dds_c_domain_h
39 
40 #ifndef NULL
41 #define NULL 0
42 #endif
43 #ifndef dds_c_dll_h
44 #include "dds_c/dds_c_dll.h"
45 #endif
46 #ifndef reda_string_h
47 #include "reda/reda_string.h"
48 #endif
49 #ifndef rt_rt_h
50 #include "rt/rt_rt.h"
51 #endif
52 #ifndef dds_c_infrastructure_h
54 #endif
55 #include "dds_c_sequence.h"
56 #ifndef dds_c_type_h
57 #include "dds_c/dds_c_type.h"
58 #endif
59 #ifndef dds_c_topic_h
60 #include "dds_c/dds_c_topic.h"
61 #endif
62 #ifndef dds_c_publication_h
64 #endif
65 #ifndef dds_c_subscription_h
67 #endif
68 
69 #ifdef __cplusplus
70 extern "C"
71 {
72 #endif
73 
74 /* ================================================================= */
75 /* Basic Types */
76 /* ================================================================= */
77 
78 /*e \dref_DomainId_t
79  */
80 typedef DDS_DOMAINID_TYPE_NATIVE DDS_DomainId_t;
81 
82 /* ----------------------------------------------------------------- */
83 /* DISCOVERY_X (eXtension QoS) */
84 /* ----------------------------------------------------------------- */
85 /*e \dref_DiscoveryQosGroupDocs
86  */
87 
88 /*e \dref_DiscoveryComponentProperty
89  */
91 {
92  struct RT_ComponentProperty _parent;
93 };
94 
95 /*i \dref_DiscoveryComponentProperty_INITIALIZER
96  */
97 #define NDDS_Discovery_Property_INITIALIZER \
98 {\
99  RT_ComponentProperty_INITIALIZER\
100 }
101 
102 /*e \dref_DISCOVERY_QOS_POLICY_NAME
103  */
104 extern DDSCDllVariable const char *const DDS_DISCOVERY_QOS_POLICY_NAME;
105 
106 /*e \dref_DiscoveryComponent
107  */
109 {
110  /*e \dref_DiscoveryComponent_name
111  *
112  * This attribute specifies the name of the plug-in to be
113  * used for DDS Discovery. The maximum length of the name
114  * is RT_MAX_FACTORY_NAME excluding the NUL termination.
115  */
116  RT_ComponentFactoryId_T name;
117 
118  struct NDDS_Discovery_Property property;
119 };
120 
121 /*e \dref_DiscoveryComponent_INITIALIZER
122  */
123 #define DDS_DiscoveryComponent_INITIALIZER \
124 {\
125  RT_ComponentFactoryId_INITIALIZER,\
126  NDDS_Discovery_Property_INITIALIZER\
127 }
128 
129 #define T struct DDS_DiscoveryComponent
130 #define TSeq DDS_DiscoveryComponentSeq
131 #include <reda/reda_sequence_decl.h>
132 
133 #ifdef DOXYGEN_DOCUMENTATION_ONLY
134 /*i \dref_DiscoveryComponentSeq
135  */
136 struct DDS_DiscoveryComponentSeq {};
137 #endif
138 
139 /*e \dref_DiscoveryQosPolicy
140  */
141 struct DDSCPPDllExport DDS_DiscoveryQosPolicy
142 {
143  /*e \dref_DiscoveryQosPolicy_initial_peers
144  */
145  struct DDS_StringSeq initial_peers;
146 
147  /*e \dref_DiscoveryQosPolicy_enabled_transports
148  */
149  struct DDS_StringSeq enabled_transports;
150 
151  /*e \dref_DiscoveryQosPolicy_discovery
152  */
153  struct DDS_DiscoveryComponent discovery;
154 
155  /*e \dref_DiscoveryQosPolicy_accept_unknown_peers
156  */
158 
159  DDSC_CPP_QOS_POLICY_METHODS(DDS_DiscoveryQosPolicy)
160 };
161 
162 /*i \dref_DiscoveryQosPolicy_DEFAULT
163  */
164 #define DDS_DISCOVERY_QOS_POLICY_DEFAULT { \
165  DDS_SEQUENCE_INITIALIZER,\
166  DDS_SEQUENCE_INITIALIZER,\
167  DDS_DiscoveryComponent_INITIALIZER, \
168  DDS_BOOLEAN_TRUE \
169 }
170 
171 DDSC_QOS_POLICY_METHODS_DECL(DDS_DiscoveryQosPolicy)
172 
173 /*e \dref_UserTrafficQosPolicy
174  */
175 struct DDSCPPDllExport DDS_UserTrafficQosPolicy
176 {
177  /*e \dref_UserTrafficQosPolicy_enabled_transports
178  */
179  struct DDS_StringSeq enabled_transports;
180 
181  DDSC_CPP_QOS_POLICY_METHODS(DDS_UserTrafficQosPolicy)
182 };
183 
184 /*i \dref_UserTrafficQosPolicy_DEFAULT
185  */
186 #define DDS_USERTRAFFIC_QOS_POLICY_DEFAULT { \
187  DDS_SEQUENCE_INITIALIZER\
188 }
189 
190 DDSC_QOS_POLICY_METHODS_DECL(DDS_UserTrafficQosPolicy)
191 
192 /* ================================================================= */
193 /* Listeners */
194 /* ================================================================= */
195 
197 struct DDS_PublisherQos;
198 struct DDS_SubscriberQos;
199 struct DDS_DataReaderQos;
200 struct DDS_DataWriterQos;
201 struct DDS_TopicQos;
203 struct DDS_PublisherListener;
207 struct DDS_TopicListener;
208 
209 /* ----------------------------------------------------------------- */
210 
211 /*ce \dref_DomainParticipantListener
212  */
213 struct DDS_DomainParticipantListener
214 {
215  /*ce \dref_DomainParticipantListener_as_topiclistener
216  */
217  struct DDS_TopicListener as_topiclistener;
218 
219  /*ce \dref_DomainParticipantListener_as_publisherlistener
220  */
221  struct DDS_PublisherListener as_publisherlistener;
222 
223  /*ce \dref_DomainParticipantListener_as_subscriberlistener
224  */
225  struct DDS_SubscriberListener as_subscriberlistener;
226 };
227 
228 /*ce \dref_DomainParticipantListener_INITIALIZER
229  */
230 #define DDS_DomainParticipantListener_INITIALIZER \
231 {\
232  DDS_TopicListener_INITIALIZER, \
233  DDS_PublisherListener_INITIALIZER, \
234  DDS_SubscriberListener_INITIALIZER \
235 }
236 
237 
238 #ifdef __cplusplus
239 } /* extern "C" */
240 #endif
241 
242 /* ================================================================= */
243 /* QoS */
244 /* ================================================================= */
245 
246 /* ====================== */
247 /* DomainParticipantQos */
248 /* ====================== */
249 
250 /*e \dref_DomainParticipantQos
251  */
252 struct DDSCPPDllExport DDS_DomainParticipantQos
253 {
254  /*e \dref_DomainParticipantQos_entity_factory
255  */
256  struct DDS_EntityFactoryQosPolicy entity_factory;
257 
258  /*e \dref_DomainParticipantQos_discovery
259  */
261 
262  /*e \dref_DomainParticipantQos_resource_limits
263  */
265 
266  /*e \dref_DomainParticipantQos_participant_name
267  */
268  struct DDS_EntityNameQosPolicy participant_name;
269 
270  /*e \dref_DomainParticipantQos_wire_protocol
271  */
272  struct DDS_WireProtocolQosPolicy protocol;
273 
274  /*e \dref_DomainParticipantQos_transports
275  */
276  struct DDS_TransportQosPolicy transports;
277 
278  /*e \dref_DomainParticipantQos_user_traffic
279  */
280  struct DDS_UserTrafficQosPolicy user_traffic;
281 
282  DDSC_CPP_QOS_METHODS(DDS_DomainParticipantQos)
283 };
284 
285 #ifdef __cplusplus
286 extern "C"
287 {
288 #endif
289 
290 /*ce \dref_DomainParticipantQos_INITIALIZER
291  */
292 #define DDS_DomainParticipantQos_INITIALIZER \
293 { \
294  DDS_ENTITY_FACTORY_QOS_POLICY_DEFAULT, \
295  DDS_DISCOVERY_QOS_POLICY_DEFAULT, \
296  DDS_DOMAIN_PARTICIPANT_RESOURCE_LIMITS_QOS_POLICY_DEFAULT,\
297  DDS_ENTITY_NAME_QOS_POLICY_DEFAULT, \
298  DDS_WIRE_PROTOCOL_QOS_POLICY_DEFAULT, \
299  DDS_TRANSPORT_QOS_POLICY_DEFAULT, \
300  DDS_USERTRAFFIC_QOS_POLICY_DEFAULT \
301 }
302 
303 
304 /*ce \dref_DomainParticipantQos_initialize
305  */
306 DDSCDllExport DDS_ReturnCode_t
308 
309 /*ce \dref_DomainParticipantQos_copy
310  */
311 DDSCDllExport DDS_ReturnCode_t
313  const struct DDS_DomainParticipantQos *source);
314 
315 /*ci
316  * \brief Compare two DDS_DomainParticipantQos policies for equality
317  *
318  * \param[in] left The left side of the comparison
319  * \param[in] right The right side of the comparison
320  *
321  * \return DDS_BOOLEAN_TRUE if the structures are equal,
322  * DDS_BOOLEAN_FALSE otherwise
323  */
324 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
325 DDS_DomainParticipantQos_is_equal(const struct DDS_DomainParticipantQos *left,
326  const struct DDS_DomainParticipantQos *right);
327 
328 #ifndef RTI_CERT
329 /*ce \dref_DomainParticipantQos_finalize
330  */
331 DDSCDllExport DDS_ReturnCode_t
333 #endif /* !RTI_CERT */
334 
335 #ifdef __cplusplus
336 } /* extern "C" */
337 #endif
338 
339 /* ============================== */
340 /* DomainParticipantFactoryQos */
341 /* ============================== */
342 
343 /*e \dref_DomainParticipantFactoryQos
344  */
345 struct DDSCPPDllExport DDS_DomainParticipantFactoryQos
346 {
347  /*e \dref_DomainParticipantFactoryQos_entity_factory
348  */
349  struct DDS_EntityFactoryQosPolicy entity_factory;
350 
351  /*e \dref_DomainParticipantFactoryQos_resource_limits
352  */
353  struct DDS_SystemResourceLimitsQosPolicy resource_limits;
354 
355  DDSC_CPP_QOS_METHODS(DDS_DomainParticipantFactoryQos)
356 };
357 
358 #ifdef __cplusplus
359 extern "C"
360 {
361 #endif
362 
363 /*ci
364  * \brief Initialize a DDS_DomainParticipantFactoryQos policy
365  *
366  * \param[in] self DDS_DomainParticipantFactoryQos policy to initialize
367  *
368  * \return DDS_RETCODE_OK on success, one of the standard error codes on failure
369  */
370 DDSCDllExport DDS_ReturnCode_t
371 DDS_DomainParticipantFactoryQos_initialize(
372  struct DDS_DomainParticipantFactoryQos* self);
373 
374 #ifndef RTI_CERT
375 /*ci
376  * \brief Initialize a DDS_DomainParticipantFactoryQos policy
377  *
378  * \param[in] self DDS_DomainParticipantFactoryQos policy to finalize
379  *
380  * \return DDS_RETCODE_OK on success, one of the standard error codes on failure
381  */
382 DDSCDllExport DDS_ReturnCode_t
383 DDS_DomainParticipantFactoryQos_finalize(
384  struct DDS_DomainParticipantFactoryQos* self);
385 #endif /*RTI_CERT*/
386 
387 /*ci
388  * \brief Copy a DDS_DomainParticipantFactoryQos policy
389  *
390  * \details
391  * Copy the contents of the source structure to the destination structure. The
392  * destination structure must be preallocated and initialized.
393  *
394  * \param[inout] out The destination DDS_DomainParticipantFactoryQos policy
395  * \param[in] in The source DDS_DomainParticipantFactoryQos policy
396  *
397  * \return DDS_RETCODE_OK on success, one of the standard error codes on failure
398  */
399 DDSCDllExport DDS_ReturnCode_t
400 DDS_DomainParticipantFactoryQos_copy(
401  struct DDS_DomainParticipantFactoryQos* self,
402  const struct DDS_DomainParticipantFactoryQos* from);
403 
404 /*ci
405  * \brief Test if two DDS_DomainParticipantFactoryQos are equal
406  *
407  * \param[in] left The left side of the comparison
408  * \param[in] right The right side of the comparison
409  *
410  * \return DDS_BOOLEAN_TRUE if left is equal to right,
411  * DDS_BOOLEAN_FALSE if left is not equal to right
412  */
413 MUST_CHECK_RETURN DDSCDllExport DDS_Boolean
414 DDS_DomainParticipantFactoryQos_is_equal(
415  const struct DDS_DomainParticipantFactoryQos *left,
416  const struct DDS_DomainParticipantFactoryQos *right);
417 
418 /*ce \dref_DomainParticipantFactoryQos_INITIALIZER
419  */
420 #define DDS_DomainParticipantFactoryQos_INITIALIZER \
421 {\
422  DDS_ENTITY_FACTORY_QOS_POLICY_DEFAULT, \
423  DDS_SYSTEM_RESOURCE_LIMITS_QOS_POLICY_DEFAULT \
424 }
425 
426 
427 /* ================================================================= */
428 /* DomainParticipant */
429 /* ================================================================= */
430 
431 /*e \dref_TOPIC_QOS_DEFAULT
432  */
433 extern DDSCDllVariable const struct DDS_TopicQos
435 
436 /*e \dref_PUBLISHER_QOS_DEFAULT
437  */
438 extern DDSCDllVariable const struct DDS_PublisherQos
440 
441 /*e \dref_SUBSCRIBER_QOS_DEFAULT
442  */
443 extern DDSCDllVariable const struct DDS_SubscriberQos
445 
446 /* ----------------------------------------------------------------- */
447 /* LANGUAGE-DEPENDENDENT WRAPPER-ENTITIES FINALIZERS */
448 /* ----------------------------------------------------------------- */
449 /*i \dref_DomainParticipant_finalize_publisher_fn
450  */
451 typedef void (*DDS_DomainParticipant_finalize_publisher_fn)(DDS_Publisher *publisher);
452 /*i \dref_DomainParticipant_finalize_subscriber_fn
453  */
454 typedef void (*DDS_DomainParticipant_finalize_subscriber_fn)(DDS_Subscriber *subscriber);
455 /*i \dref_DomainParticipant_finalize_topic_fn
456  */
457 typedef void (*DDS_DomainParticipant_finalize_topic_fn)(DDS_Topic *topic);
458 
459 /*i \dref_DomainParticipant_EntityFinalizer
460  */
461 typedef struct DDS_DomainParticipant_EntityFinalizer
462 {
463  DDS_DomainParticipant_finalize_publisher_fn finalize_publisher;
464  DDS_DomainParticipant_finalize_subscriber_fn finalize_subscriber;
465  DDS_DomainParticipant_finalize_topic_fn finalize_topic;
466 } DDS_DomainParticipant_EntityFinalizer_t;
467 
468 /*i \dref_DomainParticipant_EntityFinalizer_INITIALIZER
469  */
470 #define DDS_DomainParticipant_EntityFinalizer_INITIALIZER \
471  { NULL, NULL, NULL}
472 
473 /* ----------------------------------------------------------------- */
474 
475 #define DDS_DomainParticipant_as_entity(domainPtr) \
476  ((DDS_Entity*) domainPtr)
477 
478 #ifdef DOXYGEN_DOCUMENTATION_ONLY
479 
480 /*ce \dref_DomainParticipant_as_entity
481  */
483 
484 #endif /*DOXYGEN_DOCUMENTATION_ONLY */
485 
486 /* ================================== */
487 /* Get and Set Default QoS routines */
488 /* ================================== */
489 
490 #if INCLUDE_API_QOS
491 /*ce \dref_DomainParticipant_get_default_publisher_qos
492  */
493 DDSCDllExport DDS_ReturnCode_t
495  DDS_DomainParticipant *self,
496  struct DDS_PublisherQos *qos);
497 
498 /*ce \dref_DomainParticipant_set_default_publisher_qos
499  */
500 DDSCDllExport DDS_ReturnCode_t
502  DDS_DomainParticipant *self,
503  const struct DDS_PublisherQos *qos);
504 
505 /*ce \dref_DomainParticipant_get_default_subscriber_qos
506  */
507 DDSCDllExport DDS_ReturnCode_t
509  DDS_DomainParticipant *self,
510  struct DDS_SubscriberQos *qos);
511 
512 /*ce \dref_DomainParticipant_set_default_subscriber_qos
513  */
514 DDSCDllExport DDS_ReturnCode_t
516  DDS_DomainParticipant *self,
517  const struct DDS_SubscriberQos *qos);
518 
519 /*ce \dref_DomainParticipant_get_default_topic_qos
520  */
521 DDSCDllExport DDS_ReturnCode_t
523  DDS_DomainParticipant *self,
524  struct DDS_TopicQos *qos);
525 
526 /*ce \dref_DomainParticipant_set_default_topic_qos
527  */
528 DDSCDllExport DDS_ReturnCode_t
530  DDS_DomainParticipant *self,
531  const struct DDS_TopicQos *qos);
532 #endif
533 
534 /* ============================ */
535 /* Create and Delete routines */
536 /* ============================ */
537 
538 /*ce \dref_DomainParticipant_create_publisher
539  */
540 DDSCDllExport DDS_Publisher*
542  DDS_DomainParticipant * self,
543  const struct DDS_PublisherQos *qos,
544  const struct DDS_PublisherListener *listener,
545  DDS_StatusMask mask);
546 
547 #ifndef RTI_CERT
548 /*ce \dref_DomainParticipant_delete_publisher
549  */
550 DDSCDllExport DDS_ReturnCode_t
552  DDS_DomainParticipant *self,
553  DDS_Publisher *p);
554 #endif
555 
556 /*ce \dref_DomainParticipant_create_subscriber
557  */
558 DDSCDllExport DDS_Subscriber*
560  DDS_DomainParticipant *self,
561  const struct DDS_SubscriberQos *qos,
562  const struct DDS_SubscriberListener *listener,
563  DDS_StatusMask mask);
564 
565 #ifndef RTI_CERT
566 /*ce \dref_DomainParticipant_delete_subscriber
567  */
568 DDSCDllExport DDS_ReturnCode_t
570  DDS_DomainParticipant *self,
571  DDS_Subscriber * s);
572 #endif
573 
574 /*ce \dref_DomainParticipant_create_topic
575  */
576 DDSCDllExport DDS_Topic*
578  DDS_DomainParticipant * self,
579  const char *topic_name,
580  const char *type_name,
581  const struct DDS_TopicQos *qos,
582  const struct DDS_TopicListener *listener,
583  DDS_StatusMask mask);
584 
585 #ifndef RTI_CERT
586 /*ci \dref_DomainParticipant_delete_topic_w_finalizer
587  */
588 DDSCDllExport DDS_ReturnCode_t
589 DDS_DomainParticipant_delete_topic_w_finalizer(
590  DDS_DomainParticipant *self,
591  DDS_Topic *topic,
592  DDS_DomainParticipant_finalize_topic_fn finalizer);
593 
594 /*ce \dref_DomainParticipant_delete_topic
595  */
596 DDSCDllExport DDS_ReturnCode_t
598  DDS_DomainParticipant * self,
599  DDS_Topic * topic);
600 #endif
601 
602 /*ce \dref_DomainParticipant_find_topic
603  */
604 #if INCLUDE_API_LOOKUP
605 DDSCDllExport DDS_Topic*
607  const char *topic_name,
608  const struct DDS_Duration_t *timeout);
609 #endif
610 
611 /* ================ */
612 /* Lookup routine */
613 /* ================ */
614 
615 /*ce \dref_DomainParticipant_lookup_topicdescription
616  */
617 DDSCDllExport DDS_TopicDescription*
619  DDS_DomainParticipant *self,
620  const char *topic_name);
621 
622 
623 /* ================ */
624 /* Misc. routines */
625 /* ================ */
626 
627 /*ce \dref_DomainParticipant_add_peer
628  */
629 DDSCDllExport DDS_ReturnCode_t
631 
632 /*ce \dref_DomainParticipant_get_domain_id
633  */
634 DDSCDllExport DDS_DomainId_t
636 
637 #ifndef RTI_CERT
638 /*ce \dref_DomainParticipant_delete_contained_entities
639  */
640 DDSCDllExport DDS_ReturnCode_t
642 #endif
643 
644 #ifndef RTI_CERT
645 /*ci \dref_DomainParticipant_delete_contained_entities_w_finalizerI
646  */
647 DDSCDllExport DDS_ReturnCode_t
648 DDS_DomainParticipant_delete_contained_entities_w_finalizerI(
649  DDS_DomainParticipant *self,
650  struct DDS_DomainParticipant_EntityFinalizer *finalizer);
651 #endif
652 
653 /*ce \dref_DomainParticipant_get_current_time
654  */
655 DDSCDllExport DDS_ReturnCode_t
657  DDS_DomainParticipant * self,
658  struct DDS_Time_t *current_time);
659 
661 
662 /*ce \dref_DomainParticipant_get_discovered_participants
663  */
664 #if INCLUDE_API_LOOKUP
665 DDSCDllExport DDS_ReturnCode_t
667  DDS_DomainParticipant *self,
668  struct DDS_InstanceHandleSeq *participant_handles);
669 #endif /* INCLUDE_API_LOOKUP */
670 
671 /*ce \dref_DomainParticipant_get_discovered_participant_data
672  */
673 #if INCLUDE_API_LOOKUP
674 DDSCDllExport DDS_ReturnCode_t
676  DDS_DomainParticipant * self,
677  struct DDS_ParticipantBuiltinTopicData *participant_data,
678  const DDS_InstanceHandle_t * participant_handle);
679 #endif /* INCLUDE_API_LOOKUP */
680 
681 /* ================================================================= */
682 /* From DDS_Entity */
683 /* ================================================================= */
684 
685 /* ========================== */
686 /* Get and Set QoS routines */
687 /* ========================== */
688 
689 #if INCLUDE_API_QOS
690 
691 /*ce \dref_DomainParticipant_set_qos
692  */
693 DDSCDllExport DDS_ReturnCode_t
695  DDS_DomainParticipant *self,
696  const struct DDS_DomainParticipantQos *qos);
697 
698 /*ce \dref_DomainParticipant_get_qos
699  */
700 DDSCDllExport DDS_ReturnCode_t
702  DDS_DomainParticipant *self,
703  struct DDS_DomainParticipantQos *qos);
704 #endif
705 
706 /*ci
707  * \brief Get a reference to a participant's Qos policy
708  *
709  * \details
710  * There are special cases when a participant's Qos policy may be accessed,
711  * such as when a discovery plugin needs to adjust resource limits. This
712  * function returns a pointer to the Qos policy. The pointer is only valid
713  * when called from a discovery plugin related function and should not be
714  * accessed outside of such a calling context.
715  *
716  * \param[in] self The participant to get the Qos policy reference for
717  *
718  * \return A pointer to the participant Qos policy on success, NULL on failure
719  */
720 DDSCDllExport struct DDS_DomainParticipantQos*
721 DDS_DomainParticipant_get_qos_ref(DDS_DomainParticipant * self);
722 
723 /* =============================== */
724 /* Get and Set Listener routines */
725 /* ============================== */
726 
727 #ifndef RTI_CERT
728 /*ce \dref_DomainParticipant_set_listener
729  */
730 DDSCDllExport DDS_ReturnCode_t
732  DDS_DomainParticipant * self,
733  const struct DDS_DomainParticipantListener *l,
734  DDS_StatusMask mask);
735 #endif
736 
737 #ifndef RTI_CERT
738 /*ce \dref_DomainParticipant_get_listener
739  */
740 DDSCDllExport struct DDS_DomainParticipantListener
742 #endif
743 
744 /*ci
745  * \brief Get pointer to a DomainParticipant timer
746  *
747  * \details
748  * Some plugins may need a timer and it is legal to share the timer with a
749  * participant as long as a plugin/component belongs to the participant.
750  * Note that this is not checked and it is up to the caller to use this
751  * function correctly.
752  *
753  * \param[in] self The participant to get the timer object for
754  *
755  * \return The participants timer on success, NULL on failure
756  *
757  */
758 DDSCDllExport OSAPI_Timer_T
759 DDS_DomainParticipant_get_timer(DDS_DomainParticipant *const self);
760 
761 /*e \dref_DomainParticipant_register_type
762  */
763 DDSCDllExport DDS_ReturnCode_t
765  const char *type_name,
766  struct NDDS_Type_Plugin *plugin);
767 
768 #ifndef RTI_CERT
769 /*e \dref_DomainParticipant_unregister_type
770  */
771 DDSCDllExport struct NDDS_Type_Plugin*
773  const char *type_name);
774 #endif
775 
776 /* ================================================================= */
777 /* Factory */
778 /* ================================================================= */
779 
780 /*e \dref_PARTICIPANT_QOS_DEFAULT
781  */
782 extern DDSCDllVariable const struct DDS_DomainParticipantFactoryQos
784 
785 /*e \dref_PARTICIPANT_QOS_DEFAULT
786  */
787 extern DDSCDllVariable const struct DDS_DomainParticipantQos
789 
790 /*ce \dref_DomainParticipantFactory
791  */
792 typedef struct DDS_DomainParticipantFactoryImpl DDS_DomainParticipantFactory;
793 
794 /*ce \dref_DomainParticipantFactory_get_instance
795  */
796 DDSCDllExport DDS_DomainParticipantFactory*
798 
799 /*ce \dref_DomainParticipantFactory_TheParticipantFactory
800  */
801 #define DDS_TheParticipantFactory DDS_DomainParticipantFactory_get_instance()
802 
803 #ifndef RTI_CERT
804 /*ce \dref_DomainParticipantFactory_finalize_instance
805  */
806 DDSCDllExport DDS_ReturnCode_t
808 #endif
809 
810 /* ================================= */
811 /* Set and Get Default QoS routines */
812 /* ================================= */
813 
814 #if INCLUDE_API_QOS
815 /*ce \dref_DomainParticipantFactory_set_default_participant_qos
816  */
817 DDSCDllExport DDS_ReturnCode_t
820  const struct DDS_DomainParticipantQos *qos);
821 
822 /*ce \dref_DomainParticipantFactory_get_default_participant_qos
823  */
824 DDSCDllExport DDS_ReturnCode_t
827  struct DDS_DomainParticipantQos *qos);
828 #endif
829 
830 /* =========================== */
831 /* Create and Delete routines */
832 /* =========================== */
833 
834 /*ce \dref_DomainParticipantFactory_create_participant
835  */
836 DDSCDllExport DDS_DomainParticipant*
839  DDS_DomainId_t domainId,
840  const struct DDS_DomainParticipantQos *qos,
841  const struct DDS_DomainParticipantListener *listener,
842  DDS_StatusMask mask);
843 
844 #ifndef RTI_CERT
845 /*ce \dref_DomainParticipantFactory_delete_participant
846  */
847 DDSCDllExport DDS_ReturnCode_t
850  DDS_DomainParticipant * a_participant);
851 #endif
852 
853 /* =============== */
854 /* Lookup routine */
855 /* =============== */
856 
857 /*ce \dref_DomainParticipantFactory_lookup_participant
858  */
859 DDSCDllExport DDS_DomainParticipant*
862  DDS_DomainId_t domainId);
863 
864 /* ========================= */
865 /* Get and Set Qos routines */
866 /* ========================= */
867 
868 /*ce \dref_DomainParticipantFactory_get_qos
869  */
870 DDSCDllExport DDS_ReturnCode_t
873  struct DDS_DomainParticipantFactoryQos *qos);
874 
875 /*ce \dref_DomainParticipantFactory_set_qos
876  */
877 DDSCDllExport DDS_ReturnCode_t
880  const struct DDS_DomainParticipantFactoryQos *qos);
881 
882 /*ce \dref_DomainParticipantFactory_get_registry
883  */
884 DDSCDllExport RT_Registry_T*
886 
887 #ifdef __cplusplus
888 } /* extern "C" */
889 #endif
890 
891 
892 #endif /* dds_c_domain_h */

RTI Connext DDS Micro Version 2.4.9 Copyright © Thu Dec 15 2016 Real-Time Innovations, Inc