Files
qt6-migration-pipeline/external/rti_connext_dds-7.7.0/include/persistence/persistence_service.h
torstenandCopilot 342ffd3e5c Update submodule to latest BUILD_RTI fixes
- HandlerMinelayerData: BUILD_RTI Guards für RTI-Abhängigkeiten
- svcTabCommon: Export-Header-Fix via Fallback-Target
- TrainingAreaBase: Stub-Header für BUILD_RTI=OFF
- ddsfts: Include-Pfad und Dependency-Fixes
- BUILD_RTI=OFF Compilation vollständig unterstützt

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 01M0JNZA586SACX1PRZ2DJAE5S
2026-08-21 19:30:20 +02:00

344 lines
10 KiB
C

/* (c) Copyright 2003-2021, Real-Time Innovations, Inc. All rights reserved. */
/*
* @(#)persistence_service.h generated by: makeheader Tue Apr 7 19:36:07 2026
*
* built from: service.ifc
*/
#ifndef persistence_service_h
#define persistence_service_h
#ifndef persistence_dll_h
#include "persistence/persistence_dll.h"
#endif
#ifndef ndds_h
#include "ndds/ndds_c.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif
struct RTI_PersistenceService;
struct RTI_PersistenceServiceProperty {
/*e
*
* @brief Path to @product configuration file
*
* If not \c NULL, this file is loaded; otherwise,
* if \c cfg_strings is not \c NULL, those XML strings are loaded.
*
* \default NULL.
*/
char *cfg_file;
/*e
* @brief XML configuration represented as strings
*
* An array of strings that altogether make up an
* XML document to configure @product. This parameter is used
* only if \ref cfg_file is \c NULL.
*
* For example:
*
* \code
* unsigned int MY_PERSISTENCE_SERVICE_CFG_SIZE = 2;
* const char *MY_PERSISTENCE_SERVICE_CFG[MY_PERSISTENCE_SERVICE_CFG_SIZE] = {
* "<dds><persistence_service> \
* <participant name=\"defaultParticipant\"> \
* <persistence_group name="\"groupName\">",
* "... \
* </dds>"};
*
* property.cfg_strings = MY_PERSISTENCE_SERVICE_CFG;
* property.cfg_strings_count = MY_PERSISTENCE_SERVICE_CFG_SIZE;
* \endcode
*
* The reason for using an array instead of one single string is to
* get around the limited size of literal strings in C.
* In general, if you create the XML string dynamically
* using one single string in the array,
* setting \ref cfg_strings_count to 1 is enough:
*
* \code
* property.cfg_strings = malloc(sizeof(char *));
* property.cfg_strings[0] = "<dds><routing_service>...</dds>";
* property.cfg_strings_count = 1;
* \endcode
*
* If your target system doesn't support a file system, you can
* configure the service using XML strings.
*
* \default NULL.
*/
const char **cfg_strings;
/*e
* @brief Size of the array \ref cfg_strings
*
* \default 0.
*/
unsigned int cfg_strings_count;
/*e
* @brief Configuration name.
* This parameter is required and it is used to find a
* &lt;persistence_service&gt; matching tag in the configuration file.
*
* \default NULL.
*/
const char *cfg_name;
/*e
* @brief Assigns a name to the execution of the @product.
*
* Remote commands will refer to the @product using this name.
* In addition, the name of DomainParticipants created by @product will
* be based on this name.
*
* \default The value of cfg_name if different than NULL.
* Otherwise, "RTI_Persistence_Service".
*/
char *application_name;
/*e
* @brief Set this to true to append the host name and process ID
* to the @product application name.
*
* Used to get unique names for remote administration.
*
* \default DDS_BOOLEAN_FALSE
*/
DDS_Boolean identify_execution;
/*e
* @brief DDS domain ID for the DomainParticipants created by the service.
*
* \default -1 (Use the XML value)
*/
int domain_id;
/*e
* @brief Set this to true to enable remote administration or false to
* disable it.
*
* \default DDS_BOOLEAN_FALSE
*/
DDS_Boolean enable_administration;
/*e
* @brief If \ref enable_administration is true, this is the domain ID
* to use for remote administration.
*
* Takes precedence over the XML configuration.
* If \ref enable_administration is false, this value is not used
* even if remote administration is enabled in the XML configuration.
*
* \default 0
*/
int administration_domain_id;
/*e
* @brief @product thread stack size, which controls the stack size for
* the main service thread.
*
* \default RTI_OSAPI_THREAD_STACK_SIZE_DEFAULT
*/
int thread_stack_size;
/*e
* @brief The info directory of the running @product.
*
* The service writes a ps.pid file into this directory when it is started.
* When the service finalizes the file is deleted.
*
* The ps.pid file is used to check if the last execution of @product
* finished gracefully or there were errors.
*
* \default NULL (the file ps.pid will not be used)
*/
char *info_dir;
/*e
* @brief Indicates whether or not @product must restore its state from
* the persistent storage.
*
* <ul>
* <li> Set to 0 to not restore the state
* <li> Set to 1 to restore the state
* <li> Set to -1 to use the XML value for restore
* </ul>
*
* \default -1 Use the XML value
*/
int restore;
/*e
* @brief The verbosity of @product
*
* Values:
* <ul>
* <li> \ref RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_SILENT
* <li> \ref RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_EXCEPTIONS
* <li> \ref RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_WARNINGS
* <li> \ref RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_INFO
* </ul>
*
* \default RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_EXCEPTIONS
*/
int service_verbosity;
/*e
* @brief The verbosity of \ndds Core Libraries
*
* Values:
* <ul>
* <li> \ref RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_IGNORE
* <li> \ref RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_SILENT
* <li> \ref RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_EXCEPTIONS
* <li> \ref RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_WARNINGS
* <li> \ref RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_INFO
* </ul>
*
* \default RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_EXCEPTIONS
*/
int dds_verbosity;
/*e
* @brief Path to @product license file
*
* If not \c NULL, this file is checked for a valid license; otherwise,
* default location will be used. This parameter is only used if your
* installation requires a license file.
*
* \default NULL.
*/
char *license_file;
/*e
* @brief Enable database locking
*
* @product will lock the database by creating an entry in a specific table
* in the database.
*
* This entry is to avoid multiple instances of @product accessing the same
* database at the same time.
*
* \default DDS_BOOLEAN_TRUE
*/
DDS_Boolean enable_database_locking;
/*e
* @brief Initialize the DomainParticipantFactory.
*
* This field allows enabling or disabling the initialization of the
* DomainParticipantFactory when creating a Persistence Service instance.
*
* When set to DDS_BOOLEAN_TRUE, the Persistence Service will initialize
* the DomainParticipantFactory from XML if a profile has
* is_default_participant_factory_profile attribute set to true. This is
* particularly useful for enabling the use of features such as Monitoring
* Library 2.0 in Persistence Service without requiring additional programmatic
* setup.
*
* If your application has already initialized the DomainParticipantFactory
* before creating the Persistence Service instance, you may want to set
* this parameter to DDS_BOOLEAN_FALSE to prevent overwriting any QoS
* settings previously configured.
*
* \default DDS_BOOLEAN_TRUE
*/
DDS_Boolean initialize_dp_factory;
};
extern PERSISTENCEDllVariable const struct RTI_PersistenceServiceProperty
RTI_PersistenceServiceProperty_INITIALIZER;
extern PERSISTENCEDllVariable const int
RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_INFO;
extern PERSISTENCEDllVariable const int
RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_WARNINGS;
extern PERSISTENCEDllVariable const int
RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_EXCEPTIONS;
extern PERSISTENCEDllVariable const int
RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_SILENT;
extern PERSISTENCEDllVariable const int
RTI_PERSISTENCE_SERVICE_LOG_VERBOSITY_IGNORE;
extern PERSISTENCEDllExport
DDS_Boolean RTI_PersistenceService_get_participant_qos(
const struct RTI_PersistenceService *self,
struct DDS_DomainParticipantQos *domain_participant_qos,
const char *participant_name);
extern PERSISTENCEDllExport
DDS_Boolean RTI_PersistenceService_set_participant_qos(
struct RTI_PersistenceService *self,
const char *participant_name,
const struct DDS_DomainParticipantQos *domain_participant_qos);
extern PERSISTENCEDllExport
DDS_Boolean RTI_PersistenceService_get_publisher_qos(
const struct RTI_PersistenceService *self,
struct DDS_PublisherQos *publisher_qos,
const char *participant_name,
const char *persistence_group_name);
extern PERSISTENCEDllExport
DDS_Boolean RTI_PersistenceService_set_publisher_qos(
struct RTI_PersistenceService *self,
const char *participant_name,
const char *persistence_group_name,
const struct DDS_PublisherQos *publisher_qos);
extern PERSISTENCEDllExport
DDS_Boolean RTI_PersistenceService_get_subscriber_qos(
const struct RTI_PersistenceService *self,
struct DDS_SubscriberQos *subscriber_qos,
const char *participant_name,
const char *persistence_group_name);
extern PERSISTENCEDllExport
DDS_Boolean RTI_PersistenceService_set_subscriber_qos(
struct RTI_PersistenceService *self,
const char *participant_name,
const char *persistence_group_name,
const struct DDS_SubscriberQos *subscriber_qos);
extern PERSISTENCEDllExport
DDS_Boolean RTI_PersistenceService_is_started(
struct RTI_PersistenceService *self);
extern PERSISTENCEDllExport
struct RTI_PersistenceService * RTI_PersistenceService_new(
struct RTI_PersistenceServiceProperty *property);
extern PERSISTENCEDllExport
void RTI_PersistenceService_delete(struct RTI_PersistenceService *self);
extern PERSISTENCEDllExport
DDS_Boolean RTI_PersistenceService_start(struct RTI_PersistenceService *self);
extern PERSISTENCEDllExport
DDS_Boolean RTI_PersistenceService_stop(struct RTI_PersistenceService *self);
extern PERSISTENCEDllExport
DDS_Boolean RTI_PersistenceService_initialize_globals(void);
extern PERSISTENCEDllExport
void RTI_PersistenceService_finalize_globals(void);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* persistence_service_h */