- 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
223 lines
7.2 KiB
C
223 lines
7.2 KiB
C
/*
|
|
* Copyright (c) 2024 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 netio_log_h
|
|
#define netio_log_h
|
|
|
|
#ifndef osapi_ntptime_h
|
|
#include "osapi/osapi_ntptime.h"
|
|
#endif
|
|
#ifndef log_common_h
|
|
#include "log/log_common.h"
|
|
#endif
|
|
#ifndef reda_sequenceNumber_h
|
|
#include "reda/reda_sequenceNumber.h"
|
|
#endif
|
|
#include "netio/netio_dll.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* ================================================================= */
|
|
/* Main Documentation */
|
|
/* ================================================================= */
|
|
/*e \mainpage
|
|
*
|
|
* NETIO handles sending and receiving in a transport independent
|
|
* manner. It presents an abstract communication model that is
|
|
* independent of the network hardware and API, to the higher layers of
|
|
* NDDS. The NETIO Core handles difficult issues such as efficient
|
|
* state management and thread safety, so that the user pluggable
|
|
* transport can be simple.
|
|
*
|
|
* To plug in a new transport, implement the function prototypes
|
|
* described in \ref NDDS_Transport_PluginComponent, and install a
|
|
* transport instance using the \ref RTINetioConfiguratorComponent.
|
|
* The \ref RTINetioConfiguratorComponent, in conjunction with the \ref
|
|
* RTINetioSenderComponent and \ref RTINetioReceiverComponent, ensure
|
|
* that the correct transport plugin instances serve the appropriate
|
|
* entryport or destination request.
|
|
*
|
|
* - Infrastructure
|
|
* - \ref RTINetioLogComponent
|
|
* - \ref RTINetioCommonComponent
|
|
*
|
|
* - NETIO Core
|
|
* - \ref RTINetioConfiguratorComponent
|
|
* - \ref RTINetioSenderComponent
|
|
* - \ref RTINetioReceiverComponent
|
|
*
|
|
*/
|
|
|
|
/* ----------------------------------------------------------------- */
|
|
/* Component Hierarchy */
|
|
|
|
/*IGNORE \defgroup RTINetioComponent NETIO API Reference
|
|
* \ingroup RTIComponent
|
|
* \brief The NETIO component takes care of gather write and
|
|
* blocking/polled read using built-in and user supplied pluggable
|
|
* transports, using IPv6 address notation.
|
|
*/
|
|
|
|
/*e \defgroup RTINetioLogComponent Logging
|
|
* \ingroup RTINetioComponent
|
|
* \brief Logging utlities.
|
|
*/
|
|
|
|
/*e \defgroup RTINetioCommonComponent Common
|
|
* \ingroup RTINetioComponent
|
|
* \brief Common elements to all the components and pluggable transports.
|
|
*/
|
|
|
|
/*e \defgroup RTINetioConfiguratorComponent Configurator
|
|
* \ingroup RTINetioComponent
|
|
*
|
|
* \brief The Configurator component is responsible for installation of
|
|
* custom transport plugins, selection of the actual transport plugin
|
|
* instances used to send and receive mesages, and for updating
|
|
* internal NETIO state upon dynamic change events occuring in a
|
|
* transport plugin instance.
|
|
*/
|
|
|
|
/*e \defgroup RTINetioSenderComponent Sender
|
|
* \ingroup RTINetioComponent
|
|
*
|
|
* \brief Sender component is responsible for sending messages using a
|
|
* pluggable transport.
|
|
*
|
|
* @mtsafety See RTINetio_Sender_public UML diagram.
|
|
*/
|
|
|
|
/*e \defgroup RTINetioReceiverComponent Receiver
|
|
* \ingroup RTINetioComponent
|
|
*
|
|
* \brief Receiver component is responsible for receiving messages from
|
|
* a pluggable transport.
|
|
*/
|
|
|
|
/*e \defgroup NDDS_Transport_PluginComponent Transport
|
|
* \ingroup RTINetioComponent
|
|
*
|
|
* \brief Pluggable transport interface; this is all you need to know
|
|
* to implmement a new transport for NETIO.
|
|
*/
|
|
|
|
/* ================================================================= */
|
|
/* Component: Logging */
|
|
/* ================================================================= */
|
|
/*e \file
|
|
* \ingroup RTINetioLogComponent
|
|
*
|
|
* \brief Logging component interface and definitions. Also defines
|
|
* the organization and layout of the online API documentation.
|
|
*/
|
|
|
|
/* ================================================================= */
|
|
/* Log Messages */
|
|
/* ================================================================= */
|
|
|
|
/*e \defgroup RTINetioLogMessageClass RTINetioLogMessage
|
|
* \ingroup RTINetioLogComponent
|
|
* \brief Standard log message format strings with matching log message number.
|
|
* Use these message format strings to provide a common look and feel for
|
|
* Netio log messages.
|
|
*
|
|
* Example usage:
|
|
* \code
|
|
*
|
|
* ...
|
|
*
|
|
* RTINetioLog_exception(
|
|
* &RTI_NETIO_LOG_SHMEM_FAILED_TO_INIT_s,
|
|
* "incompatible properties");
|
|
* \endcode
|
|
*
|
|
* @see RTILogMessageClass
|
|
*/
|
|
|
|
/*e \ingroup RTINetioLogMessageClass
|
|
* \brief Not really a submodule per se, but a way to get unique number for
|
|
* transport API error code
|
|
* @see RTILogNumberBitmapClass
|
|
*/
|
|
#define SUBMODULE_NETIO_TRANSPORT (0x0000)
|
|
|
|
/*e \ingroup RTINetioLogMessageClass
|
|
* \brief Netio core submodule identifier. For use in log message numbers.
|
|
* @see RTILogNumberBitmapClass
|
|
*/
|
|
#define SUBMODULE_NETIO_CORE (0x1000)
|
|
|
|
/*e \ingroup RTINetioLogMessageClass
|
|
* \brief Netio transport table submodule identifier. For use in log message numbers.
|
|
* @see RTILogNumberBitmapClass
|
|
*/
|
|
#define SUBMODULE_NETIO_CONFIGURATOR (0x5000)
|
|
|
|
/*e \ingroup RTINetioLogMessageClass
|
|
* \brief Netio sender submodule identifier. For use in log message numbers.
|
|
* @see RTILogNumberBitmapClass
|
|
*/
|
|
#define SUBMODULE_NETIO_SENDER (0x6000)
|
|
|
|
/*e \ingroup RTINetioLogMessageClass
|
|
* \brief Netio receiver submodule identifier. For use in log message numbers.
|
|
* @see RTILogNumberBitmapClass
|
|
*/
|
|
#define SUBMODULE_NETIO_RECEIVER (0x7000)
|
|
|
|
/* ================================================================= */
|
|
/* Log Verbosity */
|
|
/* ================================================================= */
|
|
|
|
/*e \ingroup RTINetioLogVerbosityClass
|
|
* \brief Core submodule identifier. Used for enabling log messages
|
|
* in the core submodule.
|
|
* @see \c RTINetioLog_setBitmaps
|
|
*/
|
|
#define RTI_NETIO_SUBMODULE_MASK_COMMON (0x0001)
|
|
|
|
/*e \ingroup RTINetioLogVerbosityClass
|
|
* \brief Transport table submodule identifier. Used for enabling log messages
|
|
* in the transport table submodule.
|
|
* @see \c RTINetioLog_setBitmaps
|
|
*/
|
|
#define RTI_NETIO_SUBMODULE_MASK_CONFIGURATOR (0x0010)
|
|
|
|
/*e \ingroup RTINetioLogVerbosityClass
|
|
* \brief Sender submodule identifier. Used for enabling log messages
|
|
* in the sender submodule.
|
|
* @see \c RTINetioLog_setBitmaps
|
|
*/
|
|
#define RTI_NETIO_SUBMODULE_MASK_SENDER (0x0020)
|
|
|
|
/*e \ingroup RTINetioLogVerbosityClass
|
|
* \brief Receiver submodule identifier. Used for enabling log messages
|
|
* in the receiver submodule.
|
|
* @see \c RTINetioLog_setBitmaps
|
|
*/
|
|
#define RTI_NETIO_SUBMODULE_MASK_RECEIVER (0x0040)
|
|
|
|
/*e \ingroup RTINetioLogVerbosityClass
|
|
* \brief Convenient way to say "enable logging for all netio submodules".
|
|
* @see \c RTINetioLog_setBitmaps
|
|
*/
|
|
#define RTI_NETIO_SUBMODULE_MASK_ALL RTI_LOG_SUBMODULE_MASK_ALL
|
|
|
|
/*e \ingroup RTINetioLogMessageClass
|
|
* \brief Send failed. Specify destination.
|
|
*/
|
|
extern RTINetioDllVariable const struct RTILogMessage RTI_NETIO_LOG_SEND_FAILURE_s;
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* netio_log_h */
|