RTI Connext DDS Micro  Version 2.4.8
 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 /*ce \dref_DomainParticipant_delete_topic
587  */
588 DDSCDllExport DDS_ReturnCode_t
590  DDS_DomainParticipant * self,
591  DDS_Topic * topic);
592 #endif
593 
594 /*ce \dref_DomainParticipant_find_topic
595  */
596 #if INCLUDE_API_LOOKUP
597 DDSCDllExport DDS_Topic*
599  const char *topic_name,
600  const struct DDS_Duration_t *timeout);
601 #endif
602 
603 /* ================ */
604 /* Lookup routine */
605 /* ================ */
606 
607 /*ce \dref_DomainParticipant_lookup_topicdescription
608  */
609 DDSCDllExport DDS_TopicDescription*
611  DDS_DomainParticipant *self,
612  const char *topic_name);
613 
614 
615 /* ================ */
616 /* Misc. routines */
617 /* ================ */
618 
619 /*ce \dref_DomainParticipant_add_peer
620  */
621 DDSCDllExport DDS_ReturnCode_t
623 
624 /*ce \dref_DomainParticipant_get_domain_id
625  */
626 DDSCDllExport DDS_DomainId_t
628 
629 #ifndef RTI_CERT
630 /*ce \dref_DomainParticipant_delete_contained_entities
631  */
632 DDSCDllExport DDS_ReturnCode_t
634 #endif
635 
636 #ifndef RTI_CERT
637 /*ci \dref_DomainParticipant_delete_contained_entities_w_finalizerI
638  */
639 DDSCDllExport DDS_ReturnCode_t
640 DDS_DomainParticipant_delete_contained_entities_w_finalizerI(
641  DDS_DomainParticipant *self,
642  struct DDS_DomainParticipant_EntityFinalizer *finalizer);
643 #endif
644 
645 /*ce \dref_DomainParticipant_get_current_time
646  */
647 DDSCDllExport DDS_ReturnCode_t
649  DDS_DomainParticipant * self,
650  struct DDS_Time_t *current_time);
651 
653 
654 /*ce \dref_DomainParticipant_get_discovered_participants
655  */
656 #if INCLUDE_API_LOOKUP
657 DDSCDllExport DDS_ReturnCode_t
659  DDS_DomainParticipant *self,
660  struct DDS_InstanceHandleSeq *participant_handles);
661 #endif /* INCLUDE_API_LOOKUP */
662 
663 /*ce \dref_DomainParticipant_get_discovered_participant_data
664  */
665 #if INCLUDE_API_LOOKUP
666 DDSCDllExport DDS_ReturnCode_t
668  DDS_DomainParticipant * self,
669  struct DDS_ParticipantBuiltinTopicData *participant_data,
670  const DDS_InstanceHandle_t * participant_handle);
671 #endif /* INCLUDE_API_LOOKUP */
672 
673 /* ================================================================= */
674 /* From DDS_Entity */
675 /* ================================================================= */
676 
677 /* ========================== */
678 /* Get and Set QoS routines */
679 /* ========================== */
680 
681 #if INCLUDE_API_QOS
682 
683 /*ce \dref_DomainParticipant_set_qos
684  */
685 DDSCDllExport DDS_ReturnCode_t
687  DDS_DomainParticipant *self,
688  const struct DDS_DomainParticipantQos *qos);
689 
690 /*ce \dref_DomainParticipant_get_qos
691  */
692 DDSCDllExport DDS_ReturnCode_t
694  DDS_DomainParticipant *self,
695  struct DDS_DomainParticipantQos *qos);
696 #endif
697 
698 /*ci
699  * \brief Get a reference to a participant's Qos policy
700  *
701  * \details
702  * There are special cases when a participant's Qos policy may be accessed,
703  * such as when a discovery plugin needs to adjust resource limits. This
704  * function returns a pointer to the Qos policy. The pointer is only valid
705  * when called from a discovery plugin related function and should not be
706  * accessed outside of such a calling context.
707  *
708  * \param[in] self The participant to get the Qos policy reference for
709  *
710  * \return A pointer to the participant Qos policy on success, NULL on failure
711  */
712 DDSCDllExport struct DDS_DomainParticipantQos*
713 DDS_DomainParticipant_get_qos_ref(DDS_DomainParticipant * self);
714 
715 /* =============================== */
716 /* Get and Set Listener routines */
717 /* ============================== */
718 
719 #ifndef RTI_CERT
720 /*ce \dref_DomainParticipant_set_listener
721  */
722 DDSCDllExport DDS_ReturnCode_t
724  DDS_DomainParticipant * self,
725  const struct DDS_DomainParticipantListener *l,
726  DDS_StatusMask mask);
727 #endif
728 
729 #ifndef RTI_CERT
730 /*ce \dref_DomainParticipant_get_listener
731  */
732 DDSCDllExport struct DDS_DomainParticipantListener
734 #endif
735 
736 /*ci
737  * \brief Get pointer to a DomainParticipant timer
738  *
739  * \details
740  * Some plugins may need a timer and it is legal to share the timer with a
741  * participant as long as a plugin/component belongs to the participant.
742  * Note that this is not checked and it is up to the caller to use this
743  * function correctly.
744  *
745  * \param[in] self The participant to get the timer object for
746  *
747  * \return The participants timer on success, NULL on failure
748  *
749  */
750 DDSCDllExport OSAPI_Timer_T
751 DDS_DomainParticipant_get_timer(DDS_DomainParticipant *const self);
752 
753 /*e \dref_DomainParticipant_register_type
754  */
755 DDSCDllExport DDS_ReturnCode_t
757  const char *type_name,
758  struct NDDS_Type_Plugin *plugin);
759 
760 #ifndef RTI_CERT
761 /*e \dref_DomainParticipant_unregister_type
762  */
763 DDSCDllExport struct NDDS_Type_Plugin*
765  const char *type_name);
766 #endif
767 
768 /* ================================================================= */
769 /* Factory */
770 /* ================================================================= */
771 
772 /*e \dref_PARTICIPANT_QOS_DEFAULT
773  */
774 extern DDSCDllVariable const struct DDS_DomainParticipantFactoryQos
776 
777 /*e \dref_PARTICIPANT_QOS_DEFAULT
778  */
779 extern DDSCDllVariable const struct DDS_DomainParticipantQos
781 
782 /*ce \dref_DomainParticipantFactory
783  */
784 typedef struct DDS_DomainParticipantFactoryImpl DDS_DomainParticipantFactory;
785 
786 /*ce \dref_DomainParticipantFactory_get_instance
787  */
788 DDSCDllExport DDS_DomainParticipantFactory*
790 
791 /*ce \dref_DomainParticipantFactory_TheParticipantFactory
792  */
793 #define DDS_TheParticipantFactory DDS_DomainParticipantFactory_get_instance()
794 
795 #ifndef RTI_CERT
796 /*ce \dref_DomainParticipantFactory_finalize_instance
797  */
798 DDSCDllExport DDS_ReturnCode_t
800 #endif
801 
802 /* ================================= */
803 /* Set and Get Default QoS routines */
804 /* ================================= */
805 
806 #if INCLUDE_API_QOS
807 /*ce \dref_DomainParticipantFactory_set_default_participant_qos
808  */
809 DDSCDllExport DDS_ReturnCode_t
812  const struct DDS_DomainParticipantQos *qos);
813 
814 /*ce \dref_DomainParticipantFactory_get_default_participant_qos
815  */
816 DDSCDllExport DDS_ReturnCode_t
819  struct DDS_DomainParticipantQos *qos);
820 #endif
821 
822 /* =========================== */
823 /* Create and Delete routines */
824 /* =========================== */
825 
826 /*ce \dref_DomainParticipantFactory_create_participant
827  */
828 DDSCDllExport DDS_DomainParticipant*
831  DDS_DomainId_t domainId,
832  const struct DDS_DomainParticipantQos *qos,
833  const struct DDS_DomainParticipantListener *listener,
834  DDS_StatusMask mask);
835 
836 #ifndef RTI_CERT
837 /*ce \dref_DomainParticipantFactory_delete_participant
838  */
839 DDSCDllExport DDS_ReturnCode_t
842  DDS_DomainParticipant * a_participant);
843 #endif
844 
845 /* =============== */
846 /* Lookup routine */
847 /* =============== */
848 
849 /*ce \dref_DomainParticipantFactory_lookup_participant
850  */
851 DDSCDllExport DDS_DomainParticipant*
854  DDS_DomainId_t domainId);
855 
856 /* ========================= */
857 /* Get and Set Qos routines */
858 /* ========================= */
859 
860 /*ce \dref_DomainParticipantFactory_get_qos
861  */
862 DDSCDllExport DDS_ReturnCode_t
865  struct DDS_DomainParticipantFactoryQos *qos);
866 
867 /*ce \dref_DomainParticipantFactory_set_qos
868  */
869 DDSCDllExport DDS_ReturnCode_t
872  const struct DDS_DomainParticipantFactoryQos *qos);
873 
874 /*ce \dref_DomainParticipantFactory_get_registry
875  */
876 DDSCDllExport RT_Registry_T*
878 
879 #ifdef __cplusplus
880 } /* extern "C" */
881 #endif
882 
883 
884 #endif /* dds_c_domain_h */

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