RTI Routing Service Version 7.6.0
routingservice_service.h
Go to the documentation of this file.
1/*
2 * (c) Copyright, Real-Time Innovations, 2002-2024.
3 * All rights reserved.
4 *
5 * No duplications, whole or partial, manual or electronic, may be made
6 * without express written permission. Any such copies, or
7 * revisions thereof, must display this notice unaltered.
8 * This code contains trade secrets of Real-Time Innovations, Inc.
9 */
10
11#ifndef routingservice_service_h
12#define routingservice_service_h
13
14#include "stdarg.h"
15#include "routingservice/routingservice_dll.h"
16#include "ndds/ndds_transport_c.h"
20#include "ndds/ndds_config_c.h"
21
22#include "routingservice/ServiceAdmin.h"
23#include "routingservice/ServiceAdminPlugin.h"
24#include "routingservice/ServiceAdminSupport.h"
25
26#ifdef __cplusplus
27 extern "C" {
28#endif
29
30/*e \file
31 @brief RTI Routing Library API
32*/
33
34/*e \defgroup RTI_RoutingServiceLibModule RTI Routing Library API
35 *
36 * \ingroup ROUTER
37 *
38 * @brief Prototype of the function that gets called upon reception of the
39 * shutdown command.
40 */
41typedef void (*RTI_RoutingServiceRemoteShutdownHook_OnShutdownFunction)(
42 void *shutdownHookData);
43
44/*e \defgroup RTI_RoutingServiceLibModule RTI Routing Library API
45 *
46 * \ingroup ROUTER
47 * @brief Definition of the interface that handles the remote shutdown.
48 */
49struct RTI_RoutingServiceRemoteShutdownHook {
50 /* @brief a place holder for implementors */
51 void *shutdown_hook_data;
52 /* @brief handles the remote shutdown command */
53 RTI_RoutingServiceRemoteShutdownHook_OnShutdownFunction on_shutdown;
54};
55
56#define RTI_RoutingServiceRemoteShutdownHook_INITIALIZER {NULL, NULL}
57
58/*e \defgroup RTI_RoutingServiceLibModule RTI Routing Library API
59 * \ingroup ROUTER
60 * @brief Routing Service can be deployed as a C library linked into your application on select architectures.
61 *
62 * This API allows you to create, configure and start RTI Routing Service instances from your application.
63 *
64 * The following code shows the typical use of the API:
65 *
66 * \code
67 *
68 * struct RTI_RoutingServiceProperty property = RTI_RoutingServiceProperty_INITIALIZER;
69 * struct RTI_RoutingService * service = NULL;
70 *
71 * property.cfg_file = "my_routing_service_cfg.xml";
72 * property.service_name = "my_routing_service";
73 * ...
74 *
75 * service = RTI_RoutingService_new(&property);
76 * if(service == NULL) {
77 * printf("Error...");
78 * return -1;
79 * }
80 *
81 * if(!RTI_RoutingService_start(service)) {
82 * printf("Error...");
83 * RTI_RoutingService_delete(service);
84 * return -1;
85 * }
86 *
87 * while(keep_running) {
88 * sleep();
89 * ...
90 * }
91 *
92 * RTI_RoutingService_delete(service);
93 *
94 * return 0;
95 *
96 * \endcode
97 *
98 * Instead of a file, you can use XML strings to configure RTI Routing Service.
99 * See \ref RTI_RoutingServiceProperty for more information.
100 * <p>
101 * To build your application you need to link with the RTI Routing Service library
102 * in <b> &lt;RTI Routing Service home&gt;/bin/&lt;architecture&gt;/ </b>
103 *
104 * If you are using the C API on a Windows, Linux, MAC or INTEGRITY platform:
105 * See the example in
106 * <b> &lt;RTI Routing Service home&gt;/example/wrapperApp </b>
107 * Example makefiles and project files for several architecures are provided.
108 * Also see the README.txt file in the wrapperApp/src directory.
109 *
110 * ### Development Requirements
111 *
112 * | | Linux/macOS Systems | Windows Systems |
113 * | --------------: | :----------------: | :-------------: |
114 * | Shared Libraries| librtirsinfrastructure.so | rtirsinfrastructure.dll |
115 * | ^ | librtidlc.so | rtidlc.dll |
116 * | ^ | librtiapputilsc.so | rtiapputilsc.dll |
117 * | ^ | libnddsmetp.so | nddsmetp.dll |
118 * | ^ | librticonnextmsgc.so | rticonnextmsgc.dll |
119 * | ^ | libnddsc.so | nddsc.dll |
120 * | ^ | librtixml2.so | rtixml2.dll |
121 * | ^ | libnddscore.so | nddscore.dll |
122 * | Headers | routingservice/routingservice_service.h ||
123 *
124 */
125
126/*****************************************************************************/
127
128#ifdef DOXYGEN_DOCUMENTATION_ONLY
129/*e \ingroup RTI_RoutingServiceLibModule
130 *
131 * @brief RTI Routing Service
132 *
133 */
135#endif
136
137struct RTI_RoutingService;
138
139/*****************************************************************************/
140
141/*e \ingroup RTI_RoutingServiceLibModule
142 *
143 * @brief Association between a transport alias and its create function pointer
144 *
145 * Allows setting the entry point to load a statically linked transport and
146 * refer to it in the XML configuration through the participant_qos transport configuration.
147 *
148 * If a transport is configured in the XML configuration and its alias
149 * matches the one in this structure, it will be loaded
150 * by \ndds using the specified function pointer.
151 */
153 /*e
154 * @brief An alias defined in the XML configuration to refer to a transport
155 */
156 char * alias;
157 /*e
158 * @brief Pointer to the function to load the transport
159 */
160 NDDS_Transport_create_plugin create_function;
161};
162
163/*e \ingroup RTI_RoutingServiceLibModule
164 *
165 * @brief Configuration of RTI Routing Service
166 *
167 * This structure must be initialized
168 * with \ref RTI_RoutingServiceProperty_INITIALIZER.
169 */
171 /*e
172 *
173 * @brief Path to an RTI Routing Service configuration file
174 *
175 * If not \c NULL, this file is loaded; otherwise,
176 * if \c cfg_strings is not \c NULL, that XML code is loaded.
177 *
178 * \default NULL.
179 */
180 char * cfg_file;
181
182 /*e
183 * @brief XML configuration represented as strings
184 *
185 * An array of strings that altogether make up an
186 * XML document to configure RTI Routing Service. This parameter is used
187 * only if \ref cfg_file is \c NULL.
188 *
189 * For example:
190 *
191 * \code
192 * int MY_ROUTING_SERVICE_CFG_SIZE = 3;
193 * const char * MY_ROUTING_SERVICE_CFG[MY_ROUTING_SERVICE_CFG_SIZE] =
194 * {"<dds><routing_service>",
195 * "<domain_route><participant><domai",
196 * "n_id>0...</dds>"};
197 *
198 * property.cfg_strings = MY_ROUTING_SERVICE_CFG;
199 * property.cfg_strings_count = MY_ROUTING_SERVICE_CFG_SIZE;
200 * \endcode
201 *
202 * The reason for using an array instead of one single string is to
203 * get around the limited size of literal strings in C.
204 * In general, if you create the XML string dynamically
205 * using one single string in the array,
206 * setting \ref cfg_strings_count to 1 is enough:
207 *
208 * \code
209 * property.cfg_strings = malloc(sizeof(char *));
210 * property.cfg_strings[0] = "<dds><routing_service>...</dds>";
211 * property.cfg_strings_count = 1;
212 * \endcode
213 *
214 * If your target system doesn't support a file system, you can use
215 * XML strings to configure the service. To ease this process, a
216 * utility is shipped to generate a C string array from a text file.
217 * You can find this utility in
218 * [RTI Routing Service installation directory]/resource/perl/cStringifyFile.pl
219 *
220 * \default NULL.
221 */
222 const char ** cfg_strings;
223
224 /*e
225 * @brief Size of the array \ref cfg_strings
226 *
227 * \default 0.
228 */
230
231 /*e
232 * @brief The name of the Routing Service instance to run
233 *
234 * This is the name used to find the &lt;routing_service&gt;
235 * XML tag in the configuration file; the name that will
236 * be used to refer to this execution in remote administration and
237 * monitoring.
238 *
239 * \default NULL (use RTI_RoutingService)
240 */
242
243 /*e
244 * @brief Assigns a name to the execution of the RTI Routing Service.
245 *
246 * Remote commands and status information will refer to the routing
247 * service using this name.
248 * In addition, the name of DomainParticipants created by RTI
249 * Routing Service will be based on this name.
250 *
251 * \default service_name if this value is different than NULL. Otherwise,
252 * "RTI_Routing_Service".
253 */
255
256 /*e
257 *
258 * @brief Controls whether the service applies XSD validation to the loaded
259 * configuration.
260 *
261 * \default DDS_BOOLEAN_TRUE
262 */
264
265 /*e
266 * @brief The verbosity of the service
267 *
268 * Values:
269 * <ul>
270 * <li> \ref RTI_ROUTING_SERVICE_LOG_VERBOSITY_SILENT
271 * <li> \ref RTI_ROUTING_SERVICE_LOG_VERBOSITY_EXCEPTIONS
272 * <li> \ref RTI_ROUTING_SERVICE_LOG_VERBOSITY_WARNINGS
273 * <li> \ref RTI_ROUTING_SERVICE_LOG_VERBOSITY_INFO
274 * </ul>
275 *
276 * \default RTI_ROUTING_SERVICE_LOG_VERBOSITY_EXCEPTIONS
277 */
279 /*e
280 * @brief The verbosity of \ndds core libraries
281 *
282 * Values:
283 * <ul>
284 * <li> \ref RTI_ROUTING_SERVICE_LOG_VERBOSITY_SILENT
285 * <li> \ref RTI_ROUTING_SERVICE_LOG_VERBOSITY_EXCEPTIONS
286 * <li> \ref RTI_ROUTING_SERVICE_LOG_VERBOSITY_WARNINGS
287 * <li> \ref RTI_ROUTING_SERVICE_LOG_VERBOSITY_INFO
288 * </ul>
289 *
290 * \default RTI_ROUTING_SERVICE_LOG_VERBOSITY_EXCEPTIONS
291 */
293
294 /*e
295 * @brief Value that is added to the domain IDs of the
296 * domain routes in the XML configuration.
297 *
298 * By using this, an XML file can use relative domain IDs.
299 *
300 * \default 0
301 */
303
304 /*e
305 * @brief This path is used to look for plug-in libraries.
306 *
307 * If the plug-in class libraries specified in the XML file don't
308 * contain a full path, RTI Routing Service looks for them in this
309 * directory. If not present, it will rely on the system library path.
310 *
311 * \default NULL (current directory)
312 */
314
315 /*e
316 * @brief Set this to true to if you do not want RTI Routing Service enabled when
317 * \ref RTI_RoutingService_start is called.
318 *
319 * RTI Routing Service can be enabled afterwards through
320 * remote administration.
321 *
322 * \default DDS_BOOLEAN_FALSE
323 */
325
326 /*e
327 * @brief Set this to true to enable remote administration
328 * or false to disable it.
329 *
330 * \default DDS_BOOLEAN_FALSE
331 */
333
334 /*e
335 * @brief If \ref enable_administration is true, this is
336 * the domain ID to use for remote administration.
337 *
338 * Takes precedence over the XML configuration.
339 * If \ref enable_administration is false, this value is not used
340 * even if remote administration is enabled in the XML configuration.
341 *
342 * \default 0
343 */
345
346 /*e
347 * @brief Set it to true to enable remote monitoring
348 * or false to disable it.
349 *
350 * \default DDS_BOOLEAN_FALSE
351 */
352 DDS_Boolean enable_monitoring;
353
354 /*e
355 * @brief If \ref enable_monitoring is true, this is
356 * the domain ID to use for remote monitoring.
357 *
358 * Takes precedence over the XML configuration.
359 * If \ref enable_monitoring is false, this value is not used,
360 * even if remote monitoring is enabled in the XML configuration.
361 *
362 * \default 0
363 */
365
366 /*e
367 * @brief Clock value that is set as Routing Service internal clock.
368 * The clock must be defined as a comma-delimited list of clocks,
369 * in the order of preference.
370 * Valid clock names are "realtime," "system," and "monotonic." |br|
371 *
372 * By using this, Routing Service can use different clocks.
373 *
374 * \default realtime
375 */
377
378 /*e
379 * @brief Set it to true to avoid loading the
380 * standard files usually loaded by RTI Routing Service.
381 *
382 * Only the configuration in \ref cfg_file or \ref cfg_strings will be loaded.
383 *
384 * \default DDS_BOOLEAN_FALSE
385 */
387
388 /*e
389 * @brief Set this to true to append the host name and process ID
390 * to the RTI Routing Service execution name.
391 *
392 * Used to get unique names for remote administration and monitoring.
393 *
394 * \default DDS_BOOLEAN_FALSE
395 */
397
398 /*e
399 * @brief Transports to be loaded by \ndds.
400 *
401 * @see \ref registered_transports_count
402 *
403 * @pre Maximum 8 transports
404 */
406
407 /*e
408 * @brief Number of transports configured in \ref registered_transports.
409 *
410 * @pre Minimum 0 (no custom transport to load), maximum 8.
411 *
412 * \default 0
413 */
415
416 /*e
417 *
418 * @brief Path to an RTI Routing Service license file
419 *
420 * If not \c NULL, this file is checked for a valid license; otherwise,
421 * default location will be used. This parameter is only used if your
422 * installation requires a license file.
423 *
424 * \default NULL.
425 */
427
428 /*e
429 * @brief Dictionary of user variables.
430 * The dictionary provides a parallel way to expand XML configuration
431 * variables in the form $(my_var), when they are not defined in the
432 * environment.
433 *
434 * \default empty
435 */
437
438};
439
440/*e \ingroup RTI_RoutingServiceLibModule
441* @brief The initial values for an \ref RTI_RoutingServiceProperty instance
442*/
443#define RTI_RoutingServiceProperty_INITIALIZER {\
444 NULL, /* cfg_file */ \
445 NULL, /* cfg_strings */ \
446 0, /* cfg_strings_count */ \
447 NULL, /* service_name */ \
448 NULL, /* application_name */ \
449 DDS_BOOLEAN_TRUE, /* enforce_xsd_validation */ \
450 RTI_LOG_BIT_FATAL_ERROR | RTI_LOG_BIT_EXCEPTION, /* service_verbosity */ \
451 RTI_LOG_BIT_FATAL_ERROR | RTI_LOG_BIT_EXCEPTION, /* dds_verbosity */ \
452 0, /* domain_id_base */ \
453 NULL, /* plugin_search_path */ \
454 RTI_FALSE, /* dont_start_service */ \
455 RTI_FALSE, /* enable_administration */ \
456 0, /* administration_domain_id */ \
457 RTI_FALSE, /* enable_monitoring */ \
458 0, /* monitoring_domain_id */ \
459 NULL, /* internal_clock */ \
460 RTI_FALSE, /* skip_default_files */ \
461 RTI_FALSE, /* identify_execution */ \
462 { /* registered_transports */ \
463 {NULL,NULL}, \
464 {NULL,NULL}, \
465 {NULL,NULL}, \
466 {NULL,NULL}, \
467 {NULL,NULL}, \
468 {NULL,NULL}, \
469 {NULL,NULL}, \
470 {NULL,NULL} \
471 },\
472 0, /* registered_transport_count */ \
473 NULL, /* license_file_name */ \
474 {NULL, 0, 1} /* user_environment */ \
475}
476
477extern ROUTERDllVariable
478const struct RTI_RoutingServiceProperty RTI_ROUTING_SERVICE_PROPERTY_DEFAULT;
479
480extern ROUTERDllExport
481DDS_Boolean RTI_RoutingServiceProperty_initialize(
482 struct RTI_RoutingServiceProperty *self);
483
484extern ROUTERDllExport
485struct RTI_RoutingServiceProperty * RTI_RoutingServiceProperty_copy(
487 const struct RTI_RoutingServiceProperty *from);
488
489extern ROUTERDllExport
490void RTI_RoutingServiceProperty_finalize(
491 struct RTI_RoutingServiceProperty *self);
492
493/*e \ingroup RTI_RoutingServiceLibModule
494* @brief Verbosity level: exceptions + warnings + info + periodic + content
495*/
496extern ROUTERDllVariable
498
499/*e \ingroup RTI_RoutingServiceLibModule
500* @brief Verbosity level: exceptions + warnings + info + periodic
501*/
502extern ROUTERDllVariable
504
505/*e \ingroup RTI_RoutingServiceLibModule
506* @brief Verbosity level: exceptions + warnings + info
507*/
508extern ROUTERDllVariable
510
511/*e \ingroup RTI_RoutingServiceLibModule
512* @brief Verbosity level: exceptions + warnings
513*/
514extern ROUTERDllVariable
516
517/*e \ingroup RTI_RoutingServiceLibModule
518* @brief Verbosity level: exceptions
519*/
520extern ROUTERDllVariable
522
523/*e \ingroup RTI_RoutingServiceLibModule
524* @brief Verbosity level: silent
525*/
526extern ROUTERDllVariable
528
529/*****************************************************************************/
530
531/*e \ingroup RTI_RoutingServiceLibModule
532 *
533 * @brief Create a new RTI Routing Service instance
534 *
535 * @param property The properties to configure RTI Routing Service.
536 * This parameter is copied internally, so the user is responsible
537 * for releasing any memory allocated inside this structure.
538 *
539 * @mtsafety On non-Linux, non-Windows systems (i.e. VxWorks):
540 * UNSAFE for multiple threads to simultaneously make the FIRST
541 * call to RTI_RoutingService_new(). Subsequent calls are thread safe.
542 * On Windows and Linux systems, these calls are thread-safe.
543 */
544extern ROUTERDllExport
546 const struct RTI_RoutingServiceProperty * property);
547
548/*e \ingroup RTI_RoutingServiceLibModule
549 *
550 * @brief Stop and delete an RTI Routing Service instance.
551 *
552 * @see \ref RTI_RoutingService_stop
553 *
554 * @param self An \ref RTI_RoutingService instance created with
555 * \ref RTI_RoutingService_new
556 *
557 * @mtsafety
558 * This method is not thread-safe. Calling this method from different threads
559 * for the same Routing Service instance may result in undefined behavior.
560 *
561 *
562 */
563extern ROUTERDllExport
565
566/*e \ingroup RTI_RoutingServiceLibModule
567 *
568 * @brief Start RTI Routing Service.
569 *
570 * This is a non-blocking operation. RTI Routing Service will create its own set
571 * of threads to perform its tasks.
572 *
573 * @param self An \ref RTI_RoutingService instance created with
574 * \ref RTI_RoutingService_new
575 *
576 */
577extern ROUTERDllExport
579
580/*e \ingroup RTI_RoutingServiceLibModule
581 *
582 * @brief Stop RTI Routing Service.
583 *
584 * This function won't return the execution control until the instance is
585 * fully stopped.
586 *
587 * @param self An \ref RTI_RoutingService instance created with
588 * \ref RTI_RoutingService_new
589 *
590 * @mtsafety
591 * This method is not thread-safe. Calling this method from different threads
592 * for the same Routing Service instance may result in undefined behavior.
593 *
594 */
595extern ROUTERDllExport
597
598/*e \ingroup RTI_RoutingServiceLibModule
599 *
600 * @brief Attach an adapter to be used by routing service when it is started.
601 *
602 * By using this function, an adapter can be statically compiled, created
603 * in your application and have routing service load it,
604 * instead of registering a shared library and a create function
605 * in the configuration. The name passed into this function is the name that has
606 * to be used in the configuration to instantiate connections from the plugin.
607 *
608 * Example:
609 *
610 * \code
611 *
612 * service = RTI_RoutingService_new(&property);
613 * myAdapter = MyAdapter_create();
614 *
615 * RTI_RoutingService_attach_adapter_plugin(service, myAdapter, "MyAdapter");
616 *
617 * RTI_RoutingService_start(service);
618 * ...
619 *
620 * \endcode
621 *
622 * And our configuration would look like this:
623 *
624 * \code
625 * <dds>
626 * <!-- No need to register the plugin in
627 * <plugin_library><adapter_plugin>
628 * -->
629 * <routing_service name="example">
630 * <domain_route name="myadapter_to_dds">
631 *
632 * <connection name="MyConnection" plugin_name="MyAdapter">
633 * ...
634 * </connection>
635 *
636 * ...
637 * </domain_route>
638 * </routing_service>
639 * </dds>
640 *
641 * \endcode
642 *
643 * This function can be called as many times as desired to attach several plugins.
644 *
645 * Note: The RTI Routing Service Adapter SDK is required.
646 *
647 * @pre Routing Service must not be started.
648 *
649 * @param self An \ref RTI_RoutingService instance not started yet (or stopped)
650 * @param adapter The adapter plugin to be attached
651 * @param plugin_name The name used for this plugin in the &lt;connection&gt;
652 * tags in the configuration
653 *
654 */
655extern ROUTERDllExport
657 struct RTI_RoutingService * self,
658 void * adapter,
659 const char * plugin_name);
660
661/*e \ingroup RTI_RoutingServiceLibModule
662 *
663 * @brief Attach a transformation plugin to be used by Routing Service when
664 * it is started.
665 *
666 * @see RTI_RoutingService_attach_adapter_plugin
667 */
668extern ROUTERDllExport
670 struct RTI_RoutingService *self,
671 struct RTI_RoutingServiceTransformationPlugin *transformation_plugin,
672 const char *plugin_name);
673
681extern ROUTERDllExport
683 struct RTI_RoutingService * self,
684 void * processor_plugin,
685 const char * plugin_name);
686
696extern ROUTERDllExport
698 struct RTI_RoutingService * self,
699 const struct RTI_RoutingServiceRemoteShutdownHook * shutdown_hook);
700
718extern ROUTERDllExport
720 struct RTI_RoutingService * self,
721 struct RTI_Service_Admin_CommandReply ** reply,
722 const struct RTI_Service_Admin_CommandRequest * request);
723
735extern ROUTERDllExport
737 struct RTI_RoutingService * self,
738 struct RTI_Service_Admin_CommandReply * reply);
739
740
748extern ROUTERDllExport
750
758extern ROUTERDllExport
760
768extern ROUTERDllExport
770
775extern ROUTERDllExport
777 struct RTI_RoutingService * self);
778
779/*e \ingroup RTI_RoutingServiceInfrastructureModule
780 *
781 * @brief Logs as message with the specified level
782 *
783 * The message is specified with a format and a format parameter, in a similar
784 * fashion to the standard C printf() operation.
785 *
786 * The generated log will be part of logging stream of the running
787 * RoutingService, if the \p log_level is part of the configured verbosity.
788 * The result log message may include additional information according to the
789 * Connext logging configuration, such as Advlog Context, thread ID, line number,
790 * etc. Additionally, the result log message will contain a newline character
791 * at the end, so the format does not need to contain it.
792 *
793 * @param[in] log_level Log level associated to the message
794 * @param[in] format message format specification
795 * @param[in] ... variable-length argument (stdarg)
796 */
797extern ROUTERDllExport
799 NDDS_Config_LogLevel log_level,
800 const char *format,
801 ...);
802
803#ifdef __cplusplus
804} /* extern "C" */
805#endif
806
807#endif /* routingservice_service_h */
void RTI_RoutingServiceLogger_log(NDDS_Config_LogLevel log_level, const char *format,...)
Logs as message with the specified level.
DDS_Boolean RTI_RoutingService_set_remote_shutdown_hook(struct RTI_RoutingService *self, const struct RTI_RoutingServiceRemoteShutdownHook *shutdown_hook)
Set the remote shutdown hook in this Routing Service instance.
struct RTI_RoutingService * RTI_RoutingService_new(const struct RTI_RoutingServiceProperty *property)
Create a new RTI Routing Service instance.
const int RTI_ROUTING_SERVICE_LOG_VERBOSITY_INFO
Verbosity level: exceptions + warnings + info.
const int RTI_ROUTING_SERVICE_LOG_VERBOSITY_WARNINGS
Verbosity level: exceptions + warnings.
const char * RTI_RoutingService_get_build_number_string(void)
Return the build ID of this library.
DDS_Boolean RTI_RoutingService_attach_transformation_plugin(struct RTI_RoutingService *self, struct RTI_RoutingServiceTransformationPlugin *transformation_plugin, const char *plugin_name)
Attach a transformation plugin to be used by Routing Service when it is started.
DDS_Boolean RTI_RoutingService_start(struct RTI_RoutingService *self)
Start RTI Routing Service.
const int RTI_ROUTING_SERVICE_LOG_VERBOSITY_SILENT
Verbosity level: silent.
void RTI_RoutingService_execute_command(struct RTI_RoutingService *self, struct RTI_Service_Admin_CommandReply **reply, const struct RTI_Service_Admin_CommandRequest *request)
Executes an Administration command on this service.
const int RTI_ROUTING_SERVICE_LOG_VERBOSITY_EXCEPTIONS
Verbosity level: exceptions.
const int RTI_ROUTING_SERVICE_LOG_VERBOSITY_ALL
Verbosity level: exceptions + warnings + info + periodic.
void RTI_RoutingService_delete(struct RTI_RoutingService *self)
Stop and delete an RTI Routing Service instance.
const int RTI_ROUTING_SERVICE_LOG_VERBOSITY_DEBUG
Verbosity level: exceptions + warnings + info + periodic + content.
void RTI_RoutingService_return_reply(struct RTI_RoutingService *self, struct RTI_Service_Admin_CommandReply *reply)
Returns the reply object that is obtained as result of executing a command.
DDS_Boolean RTI_RoutingService_attach_adapter_plugin(struct RTI_RoutingService *self, void *adapter, const char *plugin_name)
Attach an adapter to be used by routing service when it is started.
DDS_Boolean RTI_RoutingService_stop(struct RTI_RoutingService *self)
Stop RTI Routing Service.
DDS_Boolean RTI_RoutingService_attach_processor_plugin(struct RTI_RoutingService *self, void *processor_plugin, const char *plugin_name)
Attach a processor to be used by Routing Service when it is started.
DDS_Boolean RTI_RoutingService_initialize_globals(void)
DDS_Boolean RTI_RoutingService_is_started(struct RTI_RoutingService *self)
Query whether this Routing Service is currently started.
DDS_Boolean RTI_RoutingService_finalize_globals(void)
RTI Routing Service C Adapter API.
RTI Routing Service Processor API.
RTI Routing Service Transformation API.
Set of configuration properties.
Definition: routingservice_infrastructure.h:77
Configuration of RTI Routing Service.
Definition: routingservice_service.h:170
char * internal_clock
Clock value that is set as Routing Service internal clock. The clock must be defined as a comma-delim...
Definition: routingservice_service.h:376
char * service_name
The name of the Routing Service instance to run.
Definition: routingservice_service.h:241
DDS_Boolean skip_default_files
Set it to true to avoid loading the standard files usually loaded by RTI Routing Service.
Definition: routingservice_service.h:386
int monitoring_domain_id
If enable_monitoring is true, this is the domain ID to use for remote monitoring.
Definition: routingservice_service.h:364
DDS_Boolean enable_monitoring
Set it to true to enable remote monitoring or false to disable it.
Definition: routingservice_service.h:352
DDS_Boolean enable_administration
Set this to true to enable remote administration or false to disable it.
Definition: routingservice_service.h:332
DDS_Boolean enforce_xsd_validation
Controls whether the service applies XSD validation to the loaded configuration.
Definition: routingservice_service.h:263
char * license_file_name
Path to an RTI Routing Service license file.
Definition: routingservice_service.h:426
int service_verbosity
The verbosity of the service.
Definition: routingservice_service.h:278
int registered_transports_count
Number of transports configured in registered_transports.
Definition: routingservice_service.h:414
int cfg_strings_count
Size of the array cfg_strings.
Definition: routingservice_service.h:229
struct RTI_RoutingServiceProperties user_environment
Dictionary of user variables. The dictionary provides a parallel way to expand XML configuration vari...
Definition: routingservice_service.h:436
int administration_domain_id
If enable_administration is true, this is the domain ID to use for remote administration.
Definition: routingservice_service.h:344
struct RTI_RoutingServiceTransportConfig registered_transports[8]
Transports to be loaded by RTI Connext.
Definition: routingservice_service.h:405
DDS_Boolean identify_execution
Set this to true to append the host name and process ID to the RTI Routing Service execution name.
Definition: routingservice_service.h:396
DDS_Boolean dont_start_service
Set this to true to if you do not want RTI Routing Service enabled when RTI_RoutingService_start is c...
Definition: routingservice_service.h:324
int dds_verbosity
The verbosity of RTI Connext core libraries.
Definition: routingservice_service.h:292
char * plugin_search_path
This path is used to look for plug-in libraries.
Definition: routingservice_service.h:313
const char ** cfg_strings
XML configuration represented as strings.
Definition: routingservice_service.h:222
char * application_name
Assigns a name to the execution of the RTI Routing Service.
Definition: routingservice_service.h:254
int domain_id_base
Value that is added to the domain IDs of the domain routes in the XML configuration.
Definition: routingservice_service.h:302
char * cfg_file
Path to an RTI Routing Service configuration file.
Definition: routingservice_service.h:180
Transformation plugin.
Definition: routingservice_transformation.h:332
Association between a transport alias and its create function pointer.
Definition: routingservice_service.h:152
NDDS_Transport_create_plugin create_function
Pointer to the function to load the transport.
Definition: routingservice_service.h:160
char * alias
An alias defined in the XML configuration to refer to a transport.
Definition: routingservice_service.h:156
RTI Routing Service.
Definition: routingservice_service.h:134