RTI Routing Service Version 7.4.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_1><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 Set it to true to avoid loading the
368 * standard files usually loaded by RTI Routing Service.
369 *
370 * Only the configuration in \ref cfg_file or \ref cfg_strings will be loaded.
371 *
372 * \default DDS_BOOLEAN_FALSE
373 */
375
376 /*e
377 * @brief Set this to true to append the host name and process ID
378 * to the RTI Routing Service execution name.
379 *
380 * Used to get unique names for remote administration and monitoring.
381 *
382 * \default DDS_BOOLEAN_FALSE
383 */
385
386 /*e
387 * @brief Transports to be loaded by \ndds.
388 *
389 * @see \ref registered_transports_count
390 *
391 * @pre Maximum 8 transports
392 */
394
395 /*e
396 * @brief Number of transports configured in \ref registered_transports.
397 *
398 * @pre Minimum 0 (no custom transport to load), maximum 8.
399 *
400 * \default 0
401 */
403
404 /*e
405 *
406 * @brief Path to an RTI Routing Service license file
407 *
408 * If not \c NULL, this file is checked for a valid license; otherwise,
409 * default location will be used. This parameter is only used if your
410 * installation requires a license file.
411 *
412 * \default NULL.
413 */
415
416 /*e
417 * @brief Dictionary of user variables.
418 * The dictionary provides a parallel way to expand XML configuration
419 * variables in the form $(my_var), when they are not defined in the
420 * environment.
421 *
422 * \default empty
423 */
425
426 /*i
427 * @brief Set this to true to use legacy configurations and infrastructure
428 * as in RTI Routing Service version 5.3.1 or lower.
429 * \default DDS_BOOLEAN_FALSE
430 */
431 DDS_Boolean legacy_mode_test;
432
433};
434
435/*e \ingroup RTI_RoutingServiceLibModule
436* @brief The initial values for an \ref RTI_RoutingServiceProperty instance
437*/
438
439#define RTI_RoutingServiceProperty_INITIALIZER {\
440 NULL, /* cfg_file */ \
441 NULL, /* cfg_strings */ \
442 0, /* cfg_strings_count */ \
443 NULL, /* service_name */ \
444 NULL, /* application_name */ \
445 DDS_BOOLEAN_TRUE, /* enforce_xsd_validation */ \
446 RTI_LOG_BIT_FATAL_ERROR | RTI_LOG_BIT_EXCEPTION, /* service_verbosity */ \
447 RTI_LOG_BIT_FATAL_ERROR | RTI_LOG_BIT_EXCEPTION, /* dds_verbosity */ \
448 0, /* domain_id_base */ \
449 NULL, /* plugin_search_path */ \
450 RTI_FALSE, /* dont_start_service */ \
451 RTI_FALSE, /* enable_administration */ \
452 0, /* administration_domain_id */ \
453 RTI_FALSE, /* enable_monitoring */ \
454 0, /* monitoring_domain_id */ \
455 RTI_FALSE, /* skip_default_files */ \
456 RTI_FALSE, /* identify_execution */ \
457 { /* registered_transports */ \
458 {NULL,NULL}, \
459 {NULL,NULL}, \
460 {NULL,NULL}, \
461 {NULL,NULL}, \
462 {NULL,NULL}, \
463 {NULL,NULL}, \
464 {NULL,NULL}, \
465 {NULL,NULL} \
466 },\
467 0, /* registered_transport_count */ \
468 NULL, /* license_file_name */ \
469 {NULL, 0, 1}, /* user_environment */ \
470 DDS_BOOLEAN_FALSE /* legacy_mode_test */ \
471}
472
473extern ROUTERDllVariable
474const struct RTI_RoutingServiceProperty RTI_ROUTING_SERVICE_PROPERTY_DEFAULT;
475
476extern ROUTERDllExport
477DDS_Boolean RTI_RoutingServiceProperty_initialize(
478 struct RTI_RoutingServiceProperty *self);
479
480extern ROUTERDllExport
481struct RTI_RoutingServiceProperty * RTI_RoutingServiceProperty_copy(
483 const struct RTI_RoutingServiceProperty *from);
484
485extern ROUTERDllExport
486void RTI_RoutingServiceProperty_finalize(
487 struct RTI_RoutingServiceProperty *self);
488
489/*e \ingroup RTI_RoutingServiceLibModule
490* @brief Verbosity level: exceptions + warnings + info + periodic + content
491*/
492extern ROUTERDllVariable
494
495/*e \ingroup RTI_RoutingServiceLibModule
496* @brief Verbosity level: exceptions + warnings + info + periodic
497*/
498extern ROUTERDllVariable
500
501/*e \ingroup RTI_RoutingServiceLibModule
502* @brief Verbosity level: exceptions + warnings + info
503*/
504extern ROUTERDllVariable
506
507/*e \ingroup RTI_RoutingServiceLibModule
508* @brief Verbosity level: exceptions + warnings
509*/
510extern ROUTERDllVariable
512
513/*e \ingroup RTI_RoutingServiceLibModule
514* @brief Verbosity level: exceptions
515*/
516extern ROUTERDllVariable
518
519/*e \ingroup RTI_RoutingServiceLibModule
520* @brief Verbosity level: silent
521*/
522extern ROUTERDllVariable
524
525/*****************************************************************************/
526
527/*e \ingroup RTI_RoutingServiceLibModule
528 *
529 * @brief Create a new RTI Routing Service instance
530 *
531 * @param property The properties to configure RTI Routing Service.
532 * This parameter is copied internally, so the user is responsible
533 * for releasing any memory allocated inside this structure.
534 *
535 * @mtsafety On non-Linux, non-Windows systems (i.e. VxWorks):
536 * UNSAFE for multiple threads to simultaneously make the FIRST
537 * call to RTI_RoutingService_new(). Subsequent calls are thread safe.
538 * On Windows and Linux systems, these calls are thread-safe.
539 */
540extern ROUTERDllExport
542 const struct RTI_RoutingServiceProperty * property);
543
544/*e \ingroup RTI_RoutingServiceLibModule
545 *
546 * @brief Stop and delete an RTI Routing Service instance.
547 *
548 * @see \ref RTI_RoutingService_stop
549 *
550 * @param self An \ref RTI_RoutingService instance created with
551 * \ref RTI_RoutingService_new
552 *
553 * @mtsafety
554 * This method is not thread-safe. Calling this method from different threads
555 * for the same Routing Service instance may result in undefined behavior.
556 *
557 *
558 */
559extern ROUTERDllExport
561
562/*e \ingroup RTI_RoutingServiceLibModule
563 *
564 * @brief Start RTI Routing Service.
565 *
566 * This is a non-blocking operation. RTI Routing Service will create its own set
567 * of threads to perform its tasks.
568 *
569 * @param self An \ref RTI_RoutingService instance created with
570 * \ref RTI_RoutingService_new
571 *
572 */
573extern ROUTERDllExport
575
576/*e \ingroup RTI_RoutingServiceLibModule
577 *
578 * @brief Stop RTI Routing Service.
579 *
580 * This function won't return the execution control until the instance is
581 * fully stopped.
582 *
583 * @param self An \ref RTI_RoutingService instance created with
584 * \ref RTI_RoutingService_new
585 *
586 * @mtsafety
587 * This method is not thread-safe. Calling this method from different threads
588 * for the same Routing Service instance may result in undefined behavior.
589 *
590 */
591extern ROUTERDllExport
593
594/*e \ingroup RTI_RoutingServiceLibModule
595 *
596 * @brief Attach an adapter to be used by routing service when it is started.
597 *
598 * By using this function, an adapter can be statically compiled, created
599 * in your application and have routing service load it,
600 * instead of registering a shared library and a create function
601 * in the configuration. The name passed into this function is the name that has
602 * to be used in the configuration to instantiate connections from the plugin.
603 *
604 * Example:
605 *
606 * \code
607 *
608 * service = RTI_RoutingService_new(&property);
609 * myAdapter = MyAdapter_create();
610 *
611 * RTI_RoutingService_attach_adapter_plugin(service, myAdapter, "MyAdapter");
612 *
613 * RTI_RoutingService_start(service);
614 * ...
615 *
616 * \endcode
617 *
618 * And our configuration would look like this:
619 *
620 * \code
621 * <dds>
622 * <!-- No need to register the plugin in
623 * <plugin_library><adapter_plugin>
624 * -->
625 * <routing_service name="example">
626 * <domain_route name="myadapter_to_dds">
627 *
628 * <connection name="MyConnection" plugin_name="MyAdapter">
629 * ...
630 * </connection>
631 *
632 * ...
633 * </domain_route>
634 * </routing_service>
635 * </dds>
636 *
637 * \endcode
638 *
639 * This function can be called as many times as desired to attach several plugins.
640 *
641 * Note: The RTI Routing Service Adapter SDK is required.
642 *
643 * @pre Routing Service must not be started.
644 *
645 * @param self An \ref RTI_RoutingService instance not started yet (or stopped)
646 * @param adapter The adapter plugin to be attached
647 * @param plugin_name The name used for this plugin in the &lt;connection&gt;
648 * tags in the configuration
649 *
650 */
651extern ROUTERDllExport
653 struct RTI_RoutingService * self,
654 void * adapter,
655 const char * plugin_name);
656
657/*e \ingroup RTI_RoutingServiceLibModule
658 *
659 * @brief Attach a transformation plugin to be used by Routing Service when
660 * it is started.
661 *
662 * @see RTI_RoutingService_attach_adapter_plugin
663 */
664extern ROUTERDllExport
666 struct RTI_RoutingService *self,
667 struct RTI_RoutingServiceTransformationPlugin *transformation_plugin,
668 const char *plugin_name);
669
677extern ROUTERDllExport
679 struct RTI_RoutingService * self,
680 void * processor_plugin,
681 const char * plugin_name);
682
692extern ROUTERDllExport
694 struct RTI_RoutingService * self,
695 const struct RTI_RoutingServiceRemoteShutdownHook * shutdown_hook);
696
714extern ROUTERDllExport
716 struct RTI_RoutingService * self,
717 struct RTI_Service_Admin_CommandReply ** reply,
718 const struct RTI_Service_Admin_CommandRequest * request);
719
731extern ROUTERDllExport
733 struct RTI_RoutingService * self,
734 struct RTI_Service_Admin_CommandReply * reply);
735
736
744extern ROUTERDllExport
746
754extern ROUTERDllExport
756
764extern ROUTERDllExport
766
771extern ROUTERDllExport
773 struct RTI_RoutingService * self);
774
775/*e \ingroup RTI_RoutingServiceInfrastructureModule
776 *
777 * @brief Logs as message with the specified level
778 *
779 * The message is specified with a format and a format parameter, in a similar
780 * fashion to the standard C printf() operation.
781 *
782 * The generated log will be part of logging stream of the running
783 * RoutingService, if the \p log_level is part of the configured verbosity.
784 * The result log message may include additional information according to the
785 * Connext logging configuration, such as Advlog Context, thread ID, line number,
786 * etc. Additionally, the result log message will contain a newline character
787 * at the end, so the format does not need to contain it.
788 *
789 * @param[in] log_level Log level associated to the message
790 * @param[in] format message format specification
791 * @param[in] ... variable-length argument (stdarg)
792 */
793extern ROUTERDllExport
795 NDDS_Config_LogLevel log_level,
796 const char *format,
797 ...);
798
799#ifdef __cplusplus
800} /* extern "C" */
801#endif
802
803#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:74
Configuration of RTI Routing Service.
Definition: routingservice_service.h:170
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:374
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:414
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:402
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:424
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:393
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:384
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:315
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