Files
qt6-migration-pipeline/external/rti_connext_dds-7.7.0/include/ndds/commend/commend_log.h
T
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

130 lines
5.2 KiB
C

/*
* Copyright (c) 2025 Real-Time Innovations, Inc. All rights reserved.
* No duplications, whole or partial, manual or electronic, may be made
* without express written permission. Any such copies, or revisions thereof,
* must display this notice unaltered.
* This code contains trade secrets of Real-Time Innovations, Inc.
*/
#ifndef commend_log_h
#define commend_log_h
#ifndef log_common_h
#include "log/log_common.h"
#endif
#ifndef commend_dll_h
#include "commend/commend_dll.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif
/*e \mainpage
* COMMEND - COMMunication ENDpoint layer
*
* COMMEND provides a basic end to end communication model. Using
* COMMEND services, the user creates readers & writers and
* sets up communication channels among them, each with possibly
* different types of QoS (in accordance with the RTPS protocol).
*
* The following two concepts form the core of the COMMEND layer:
* \li Reader and writer services
* \li Listeners
*
* COMMEND provides \e reader \e services to add readers to the network.
* Reader services make it possible to create and delete readers, and
* assert and remove remote writers for a given reader. By asserting
* a remote writer for a given reader, the user specifies this reader
* can expect to receive data from that particular writer and thereby
* defines a communication channel.
*
* Similarly, COMMEND provides \e writer \e services to add writers
* to the network. Each writer can have multiple remote readers to
* send data to. When issuing a writer send command, the data passed
* will be sent to all its readers.
*
* Different reader and writer services exist depending on the intended
* QoS of the reader or writer the user wants to create. With a best effort
* reader service, the user can add best effort readers to the network.
* Strict reliable readers require a strict reliable reader service.
* Multiple instances of either service can coexist in the same
* application.
*
* Listeners handle the callbacks associated with both readers and writers.
* Each reader or writer is associated with a reader or writer listener
* respectively upon creation.
* The listener contains the callback routines that will be executed for
* the associated reader or writer when well defined events occur, such as
* the arrival of data for a reader. The type of listener used, and therefore
* the types of callbacks supported, depends upon the desired QoS of the
* reader or writer.
*
* COMMEND implements the behavioral aspects of the RTPS protocol, i.e.
* it knows the valid sequences to send and receive submessages and the
* proper way to respond to submessages.
* For example, a COMMEND reader understands how to respond to a
* HEARTBEAT message.
* Similarly, a strict reliable writer knows how to periodically
* send a HEARTBEAT and that it needs to resend data when a NACK is
* received in response to a HEARTBEAT.
*
* COMMEND does not store any data, however. That is, in order to resend
* an issue, it must inquire and receive this data again from the
* user of the API, typically the PRESENTATION layer. This is achieved
* using the callback mechanism.
* Similarly, upon receiving new data, a callback for that reader will
* pass the data on to the PRESENTATION layer.
*
* COMMEND does not know the wire representation of the different RTPS
* submessages. It merely knows the parameters required to define and
* interpret each submessage. The MIG layer handles the actual wire
* representation.
*
* @see COMMENDReaderServiceModule COMMENDWriterServiceModule
*/
/*e \defgroup COMMENDModule COMMEND
\ingroup NDDS
*/
/*e \defgroup COMMENDLogModule COMMENDLog
* \ingroup COMMENDModule
* NOTE: When a new submodule is added to commend, it must be given
* a number and entered here. Because of the use of this id
* for logging, there are 16 submodule id's: 0x1000, 0x2000, ... , 0xF000.
* It is suggested we put the modules here in an order that
* respects their dependencies: modules with a lower number
* cannot depend on modules with a higher number.
*/
#define SUBMODULE_COMMEND_FRAG_SAMPLE_TABLE (0x1000)
#define SUBMODULE_COMMEND_FACADE (0x2000)
#define SUBMODULE_COMMEND_PASSIVE_FACADE (0x3000)
#define SUBMODULE_COMMEND_ACTIVE_FACADE (0x4000)
#define SUBMODULE_COMMEND_BE_WRITER_SERVICE (0x5000)
#define SUBMODULE_COMMEND_BE_READER_SERVICE (0x6000)
#define SUBMODULE_COMMEND_SR_WRITER_SERVICE (0x7000)
#define SUBMODULE_COMMEND_SR_READER_SERVICE (0x8000)
#define SUBMODULE_COMMEND_ANON_WRITER_SERVICE (0x9000)
#define SUBMODULE_COMMEND_ANON_READER_SERVICE (0xA000)
#define COMMEND_SUBMODULE_MASK_FRAG_SAMPLE_TABLE (0x0001)
#define COMMEND_SUBMODULE_MASK_FACADE (0x0002)
#define COMMEND_SUBMODULE_MASK_PASSIVE_FACADE (0x0004)
#define COMMEND_SUBMODULE_MASK_ACTIVE_FACADE (0x0008)
#define COMMEND_SUBMODULE_MASK_BE_WRITER_SERVICE (0x0010)
#define COMMEND_SUBMODULE_MASK_BE_READER_SERVICE (0x0020)
#define COMMEND_SUBMODULE_MASK_SR_WRITER_SERVICE (0x0040)
#define COMMEND_SUBMODULE_MASK_SR_READER_SERVICE (0x0080)
#define COMMEND_SUBMODULE_MASK_ANON_WRITER_SERVICE (0x0100)
#define COMMEND_SUBMODULE_MASK_ANON_READER_SERVICE (0x0200)
#define COMMEND_SUBMODULE_MASK_ALL RTI_LOG_SUBMODULE_MASK_ALL
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* commend_log_h */