- 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
332 lines
10 KiB
C
332 lines
10 KiB
C
/*
|
|
* (c) Copyright, Real-Time Innovations, 2002-2026.
|
|
* 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 reda_log_h
|
|
#define reda_log_h
|
|
|
|
#include "reda/reda_dll.h"
|
|
#include "log/log_common.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*e \file
|
|
* @brief Data structures on which the entire Waveworks is built
|
|
*/
|
|
/*e \mainpage
|
|
* utility library written in C that implements programming
|
|
* patterns that have been optimized for real-time environments.
|
|
*
|
|
* REDA is composed of sevaral packages handling buffers,
|
|
* thread-specific storage, concurent table access. etc. The packages
|
|
* and their interdependencies are illustrated below:
|
|
*
|
|
* \image html REDA_Dependencies.jpg "REDA modules and their dependencies"
|
|
*/
|
|
/*e \defgroup REDAModule REDA
|
|
* \ingroup RTI
|
|
* \brief Real-time Efficient Data-structures and Algorithms.
|
|
*/
|
|
|
|
/*e \defgroup REDALogClass REDALog
|
|
* \ingroup REDAModule
|
|
* \brief integrated logging
|
|
*
|
|
* NOTE: When a new submodule is added to REDA, it must be given
|
|
* a number and entered here. Because of the use of this id
|
|
* for logging, there are 16 submodule id's: 0x0000, 0x1000,...
|
|
* ..., 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_REDA_BUFFER (0 << 10)
|
|
#define SUBMODULE_REDA_FAST_BUFFER (1 << 10)
|
|
#define SUBMODULE_REDA_EPOCH (2 << 10)
|
|
#define SUBMODULE_REDA_SEQUENCE_NUMBER (3 << 10)
|
|
#define SUBMODULE_REDA_INLINE_LIST (4 << 10)
|
|
#define SUBMODULE_REDA_CONCURRENT_QUEUE (5 << 10)
|
|
#define SUBMODULE_REDA_HASH (6 << 10)
|
|
#define SUBMODULE_REDA_ORDERED_DATA_TYPE (7 << 10)
|
|
#define SUBMODULE_REDA_WORKER (8 << 10)
|
|
#define SUBMODULE_REDA_SKIPLIST (9 << 10)
|
|
#define SUBMODULE_REDA_HASHED_SKIPLIST (10 << 10)
|
|
#define SUBMODULE_REDA_TABLE (11 << 10)
|
|
#define SUBMODULE_REDA_DATABASE (12 << 10)
|
|
#define SUBMODULE_REDA_STRING (13 << 10)
|
|
#define SUBMODULE_REDA_DBSHELL (14 << 10)
|
|
#define SUBMODULE_REDA_INLINE_MEMORY (15 << 10)
|
|
#define SUBMODULE_REDA_GENERIC (16 << 10)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDABuffer
|
|
@see REDABuffer
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_BUFFER (0x0001)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDAFastBuffer
|
|
@see REDAFastBuffer
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_FAST_BUFFER (0x0002)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDAEpoch
|
|
@see REDAEpoch
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_EPOCH (0x0004)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDASequenceNumber
|
|
@see REDASequenceNumber
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_SEQUENCE_NUMBER (0x0008)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDAInlineList
|
|
@see REDAInlineList
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_INLINE_LIST (0x0010)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from
|
|
REDAConcurrentQueue
|
|
@see REDAConcurrentQueue
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_CONCURRENT_QUEUE (0x0020)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDAHash
|
|
@see REDAHash
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_HASH (0x0040)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from
|
|
REDAOrderedDataType
|
|
@see REDAOrderedDataType
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_ORDERED_DATA_TYPE (0x0080)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDAWorker,
|
|
REDAWorkerManager or REDAExclusiveArea
|
|
@see REDAWorker REDAWorkerManager REDAExclusiveArea
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_WORKER (0x0100)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDASkiplist
|
|
@see REDASkiplist
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_SKIPLIST (0x0200)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDAHashedSkiplist
|
|
@see REDAHashedSkiplist
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_HASHED_SKIPLIST (0x0400)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDATable
|
|
or REDAWeakReference
|
|
@see REDATable REDAWeakReference
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_TABLE (0x0800)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDADatabase
|
|
@see REDADatabase RTIEventActiveDatabase
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_DATABASE (0x1000)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDAString
|
|
@see REDAString
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_STRING (0x2000)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDADBShell
|
|
@see REDADBShell
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_DBSHELL (0x4000)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDAUtils
|
|
@see REDAUtils
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_UTILS (0x8000)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDABloomFilter
|
|
@see REDABloomFilter
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_BLOOM_FILTER (0x10000)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDAHashedSkiplist
|
|
@see REDAHashedSkiplist
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_INLINE_MEMORY (0x20000)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from
|
|
REDAPluggableMemoryAllocator
|
|
@see REDAPluggableMemoryAllocator
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_PLUGGABLE_MEMORY_ALLOCATOR (0x40000)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Turn off this bit if you don't want log coming from REDASharedPointer
|
|
@see REDASharedPointer
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_SHARED_POINTER (0x80000)
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Convenient way to say "log all submodules"
|
|
*/
|
|
#define REDA_SUBMODULE_MASK_ALL RTI_LOG_SUBMODULE_MASK_ALL
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when concurrent queue write failed.
|
|
|
|
Most likely, the reader forgot to release the zero copy buffer.
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_CONCURRENT_QUEUE_START_WRITE_FAILURE;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failure to take or give exclusive area.
|
|
|
|
Most likely, the deadlock possibility (not certainly) occured, or
|
|
the exclusive area level was breached.
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_WORKER_EXCLUSIVE_AREA_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to get handle to a thread specific
|
|
object that is supposed to have been created already.
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_WORKER_GET_OBJECT_FAILURE;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to create a thread specific object
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_WORKER_CREATE_OBJECT_FAILURE;
|
|
|
|
/*e \ingroup REDALogClass
|
|
* @brief Log message when error associating the worker with the Activity
|
|
* Context.
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_WORKER_ASSOCIATE_ACTIVITY_CONTEXT_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
* @brief Log message when error storing the worker in the TSS.
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_WORKER_STORE_TSS_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
* @brief Log message when error associating the worker with the thread.
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_WORKER_ASSOCIATE_THREAD_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to copy the read write area of a record
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_CURSOR_COPY_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to get a weak reference to a record
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_CURSOR_CREATE_WR_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to go to a record given a key
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_CURSOR_GOTO_KEY_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to go to a record given a weak record
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_CURSOR_GOTO_WR_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to lock a table
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_CURSOR_LOCK_TABLE_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to modify the read write area of a record
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_CURSOR_MODIFY_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to remove a record from a table
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_CURSOR_REMOVE_RECORD_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to remove a table from the database
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_CURSOR_REMOVE_TABLE_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to start a view of table
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_CURSOR_START_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to get key
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_CURSOR_GET_KEY_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to get read only area
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_CURSOR_GET_READ_ONLY_AREA_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to get weak reference
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_CURSOR_GET_WR_FAILURE_s;
|
|
|
|
/*e \ingroup REDALogClass
|
|
\brief Log message when failed to create a table in a database
|
|
*/
|
|
extern REDADllVariable const struct RTILogMessage
|
|
REDA_LOG_DATABASE_CREATE_TABLE_FAILURE_s;
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#include "reda/reda_log_impl.h"
|
|
|
|
#endif /* reda_log_h */
|