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

RTI Connext DDS Micro Version 2.4.7 Copyright © Fri Feb 26 2016 Real-Time Innovations, Inc