Files
qt6-migration-pipeline/external/rti_connext_dds-7.7.0/include/ndds/pres/pres_liveliness.h
T
torsten ebfd3c8386 Adds RTI 6.6 Pro commercial lib
Entire-Checkpoint: 01M6ENHX3N0WDT7ZGK22ZJ8JD6
2026-11-02 17:40:05 +00:00

271 lines
8.9 KiB
C

/* (c) Copyright 2003-2021, Real-Time Innovations, Inc. All rights reserved. */
/*
* @(#)pres_liveliness.h generated by: makeheader Tue Apr 7 22:56:13 2026
*
* built from: liveliness.ifc
*/
#ifndef pres_liveliness_h
#define pres_liveliness_h
#ifndef pres_dll_h
#include "pres/pres_dll.h"
#endif
#ifndef osapi_type_h
#include "osapi/osapi_type.h"
#endif
#ifndef reda_fastBuffer_h
#include "reda/reda_fastBuffer.h"
#endif
#ifndef cdr_stream_h
#include "cdr/cdr_stream.h"
#endif
#ifndef pres_common_h
#include "pres/pres_common.h"
#endif
#ifndef cdr_typeCode_h
#include "cdr/cdr_typeCode.h"
#endif
#ifndef pres_typePlugin_h
#include "pres/pres_typePlugin.h"
#endif
#ifndef pres_psService_h
#include "pres/pres_psService.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif
/*e \ingroup PRESInterParticipantModule
Name of type used for liveliness topic.
*/
#define PRES_INTER_PARTICIPANT_TYPE_PARAMETER "PRESInterParticipantParameter"
/*e \ingroup PRESInterParticipantModule
Name of topic used for liveliness support.
*/
#define PRES_INTER_PARTICIPANT_TOPIC \
PRES_PARTICIPANT_MESSAGE_TOPIC
/*e \ingroup PRESInterParticipantModule
Name of topic used for secure liveliness support.
*/
#define PRES_INTER_PARTICIPANT_SECURE_TOPIC \
PRES_PARTICIPANT_MESSAGE_SECURE_TOPIC
/*e \ingroup PRESInterParticipantModule
Builtin endpoint mask for participant message data writer, specified in RTPS spec.
*/
#define PRES_INTER_PARTICIPANT_BUILTIN_ENDPOINT_PARTICIPANT_MESSAGE_DATA_WRITER \
MIG_RTPS_BUILTIN_ENDPOINT_PARTICIPANT_MESSAGE_WRITER
/*e \ingroup PRESInterParticipantModule
Builtin endpoint mask for participant message data reader, specified in RTPS spec.
*/
#define PRES_INTER_PARTICIPANT_BUILTIN_ENDPOINT_PARTICIPANT_MESSAGE_DATA_READER \
MIG_RTPS_BUILTIN_ENDPOINT_PARTICIPANT_MESSAGE_READER
/*e \ingroup PRESInterParticipantModule
* Builtin endpoint mask for secure participant message data writer, specified
* in DDS Security spec.
*/
#define PRES_INTER_PARTICIPANT_BUILTIN_ENDPOINT_SECURE_PARTICIPANT_MESSAGE_DATA_WRITER \
MIG_RTPS_BUILTIN_ENDPOINT_SECURE_PARTICIPANT_MESSAGE_WRITER
/*e \ingroup PRESInterParticipantModule
* Builtin endpoint mask for secure participant message data reader, specified
* in DDS Security spec.
*/
#define PRES_INTER_PARTICIPANT_BUILTIN_ENDPOINT_SECURE_PARTICIPANT_MESSAGE_DATA_READER \
MIG_RTPS_BUILTIN_ENDPOINT_SECURE_PARTICIPANT_MESSAGE_READER
/*e \ingroup PRESInterParticipantModule
Object ID for liveliness writer, specified in RTPS spec.
*/
#define PRES_INTER_PARTICIPANT_RTPS_OBJECT_ID_WRITER \
MIG_RTPS_OBJECT_ID_P2P_BUILTIN_PARTICIPANT_MESSAGE_WRITER
/*e \ingroup PRESInterParticipantModule
Object ID for liveliness reader, specified in RTPS spec.
*/
#define PRES_INTER_PARTICIPANT_RTPS_OBJECT_ID_READER \
MIG_RTPS_OBJECT_ID_P2P_BUILTIN_PARTICIPANT_MESSAGE_READER
/*e \ingroup PRESInterParticipantModule
Object ID for liveliness secure writer, specified in DDS Security spec.
*/
#define PRES_INTER_PARTICIPANT_RTPS_OBJECT_ID_SECURE_WRITER \
MIG_RTPS_OBJECT_ID_SECURE_P2P_BUILTIN_PARTICIPANT_MESSAGE_WRITER
/*e \ingroup PRESInterParticipantModule
Object ID for liveliness secure reader, specified in DDS Security spec.
*/
#define PRES_INTER_PARTICIPANT_RTPS_OBJECT_ID_SECURE_READER \
MIG_RTPS_OBJECT_ID_SECURE_P2P_BUILTIN_PARTICIPANT_MESSAGE_READER
/*e \ingroup PRESInterParticipantModule
Default inter participant message kind
*/
#define PRES_INTER_PARTICIPANT_MESSAGE_KIND_UNKNOWN (0x00000000)
/*e \ingroup PRESInterParticipantModule
Automatic liveliness update message kind.
*/
#define PRES_INTER_PARTICIPANT_MESSAGE_KIND_AUTOMATIC_LIVELINESS_UPDATE \
NDDS_TRANSPORT_INTER_PARTICIPANT_MESSAGE_KIND_AUTOMATIC_LIVELINESS_UPDATE
/*e
* \ingroup PRESInterParticipantModule
* Manual liveliness update message kind.
*/
#define PRES_INTER_PARTICIPANT_MESSAGE_KIND_MANUAL_LIVELINESS_UPDATE \
NDDS_TRANSPORT_INTER_PARTICIPANT_MESSAGE_KIND_MANUAL_LIVELINESS_UPDATE
#define PRES_INTER_PARTICIPANT_DATA_MAX_LENGTH_DEFAULT (256)
#define PRES_INTER_PARTICIPANT_DATA_MAX_LENGTH_NAME "PRESInterParticipantDataMaxLength"
#define PRES_INTER_PARTICIPANT_DATA_MAX_LENGTH_VALUE_LENGTH (32)
struct PRESInterParticipantProperty {
/*e property used to govern liveliness reader behavior */
struct PRESPsSrReaderProperty readerProperty;
/*e property used to govern liveliness writer behavior */
struct PRESPsSrWriterProperty writerProperty;
/*e priority of liveliness traffic on transport */
struct PRESTransportPriorityQosPolicy transportPriority;
/*e enabled transports */
struct RTINetioAliasList transportAliasList;
/*e ID of participant */
MIGRtpsParticipantId participantId;
/*e Maximum length of inter participant data sequence */
int interParticipantDataMaximumLength;
/*e Cdr stream padding kind */
PRESCdrPaddingKind cdrPaddingKind;
/*e This determines if we use reliable liveliness reader. This may be
* enabled for backwards compatibility with versions previous to 5.2.0. */
RTIBool useReliableReader;
/*e
* Used to determine whether interpaticipant channel should be used to
* maintain participant liveliness.
*/
RTIBool assertParticipantLiveliness;
/*
* This determines if we will optimize when we send automatic liveliness
* updates if we also are using manual liveliness updates.
* If this is set to RTI_TRUE, we will not send an automatic liveliness
* update if we have sent a manual update within the same period. If we
* discover any non-RTI participants, we will resume sending auto
* liveliness updates even if we have sent a manual update.
* If this is set to RTI_FALSE, we will send automatic liveliness updates
* regardless of whether we have sent manual updates in the same period.
* This field only exists for compliance with the spec.
*/
RTIBool optimizeAutomaticLiveliness;
};
#define PRES_INTER_PARTICIPANT_PROPERTY_DEFAULT { \
PRES_PS_SR_READER_PROPERTY_DEFAULT, /* readerProperty */ \
PRES_PS_SR_WRITER_PROPERTY_DEFAULT, /* writerProperty */ \
{NDDS_TRANSPORT_PRIORITY_DEFAULT},/* transportPriority */ \
RTI_NETIO_ALIAS_LIST_DEFAULT,/* transportAliasList */ \
MIG_RTPS_GUID_PREFIX_UNKNOWN, /* participant Id */ \
PRES_INTER_PARTICIPANT_DATA_MAX_LENGTH_DEFAULT, /* interParticipantDataMaximumLength */\
PRES_AUTO_CDR_PADDING, /* cdrPaddingKind */ \
RTI_FALSE, /* useReliableReader */ \
RTI_FALSE, /* assertParticipantLiveliness */ \
RTI_TRUE /* optimizeAutomaticLiveliness */ \
}
struct PRESInterParticipant;
struct PRESInterParticipantKey {
MIGRtpsParticipantId participantId;
RTI_UINT32 kind;
};
#define PRES_INTER_PARTICIPANT_KEY_DEFAULT { \
MIG_RTPS_GUID_PREFIX_UNKNOWN /* participantId */, \
PRES_INTER_PARTICIPANT_MESSAGE_KIND_UNKNOWN /* kind */ \
}
struct PRESInterParticipantData {
struct PRESInterParticipantKey key;
struct PRESSequenceOctet data;
};
#define PRES_INTER_PARTICIPANT_DATA_DEFAULT { \
PRES_INTER_PARTICIPANT_KEY_DEFAULT /* key */, \
PRES_SEQUENCE_OCTET_DEFAULT /* data */ \
}
extern PRESDllExport
unsigned int PRESInterParticipantKey_getMaxSizeSerialized(
unsigned int size);
extern PRESDllExport
RTIBool PRESInterParticipantKey_copy(
struct PRESInterParticipantKey *dst,
const struct PRESInterParticipantKey *src);
extern PRESDllExport void
PRESInterParticipantKey_print(
const struct PRESInterParticipantKey *key,
const char *desc, unsigned int indent);
struct PRESInterParticipantDataPool {
struct PRESTypePluginPool *parent;
/* Support for variable length sequence */
int _interParticipantDataMaximumLength;
struct REDAFastBufferPool *_interParticipantDataPool;
};
extern PRESDllExport struct PRESInterParticipant *
PRESInterParticipant_new(
struct PRESParticipant *participant,
struct COMMENDFacade *facade,
struct REDAExclusiveArea* readerGroupEA,
struct REDAExclusiveArea* writerGroupEA,
struct PRESInterParticipantProperty *property,
struct REDAWorker *worker);
extern PRESDllExport
RTIBool PRESInterParticipant_enable(
struct PRESInterParticipant *me,
struct REDAWorker *worker);
extern PRESDllExport
RTIBool PRESInterParticipant_shutdown(
struct PRESInterParticipant *me,
struct REDAWorker *worker);
extern PRESDllExport
void PRESInterParticipant_delete(
struct PRESInterParticipant *me);
extern PRESDllExport RTIBool PRESInterParticipant_shutdownWriter(
struct PRESInterParticipant *me,
RTIBool isSecure,
struct REDAWorker *worker);
/* TODO/FIXME: Remove this when bugfix merged into DISC branch */
#define TOPIC_MASKED_IN_NULL_LISTENER_NOT_SUPPORTED
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* pres_liveliness_h */