/* * (c) Copyright, Real-Time Innovations, 2002-2024. * 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 clock_log_h #define clock_log_h #include "log/log_common.h" #include "clock/clock_dll.h" #ifdef __cplusplus extern "C" { #endif /** @internal \file * \brief clock module documentation top level */ /** @internal \mainpage * * An application may use multiple clocks if they are synchronized so that * MT safe monotonicity (but NOT strict monotonicity) can be guaranteed. * * RTI supplies clocks that conform to this \ref RTIClockClass interface: * */ /** @internal \defgroup RTIClockModule Clock * \ingroup RTI * @brief pluggable clock interface and RTI provided clocks. */ /** @internal \defgroup RTIClockLogClass RTIClockLog * \ingroup RTIClockModule */ /** @internal NOTE: When a new submodule is added to clock module, 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_CLOCK_SYSTEM (0x1000) #define SUBMODULE_CLOCK_HIGH_RESOLUTION (0x2000) #define SUBMODULE_CLOCK_MONOTONIC (0x3000) #define SUBMODULE_INFRASTRUCTURE (0x4000) /** @internal \ingroup RTIClockLogClass * @brief turn on logging for only the system clock. */ #define RTI_CLOCK_SUBMODULE_MASK_SYSTEM (0x0001) /** @internal \ingroup RTIClockLogClass * @brief turn on logging for only the high resolution clock. */ #define RTI_CLOCK_SUBMODULE_MASK_HIGH_RESOLUTION (0x0002) /** @internal \ingroup RTIClockLogClass * @brief turn on logging for only the monotonic clock. */ #define RTI_CLOCK_SUBMODULE_MASK_MONOTONIC (0x0004) /** @internal \ingroup RTIClockLogClass * @brief turn on logging for only infrastructure */ #define RTI_CLOCK_SUBMODULE_MASK_INFRASTRUCTURE (0x0008) /** @internal \ingroup RTIClockLogClass * @brief turn on logging for all clock submodules. */ #define RTI_CLOCK_SUBMODULE_MASK_ALL RTI_LOG_SUBMODULE_MASK_ALL /** @internal \ingroup RTIClockLogClass * @brief clock->getTime() failed. * @see RTIClockTimeGetFunction */ extern RTIClockDllVariable const struct RTILogMessage RTI_CLOCK_LOG_GET_TIME_FAILURE; /** @internal \ingroup RTIClockLogClass * @brief RTIClock_getTimeOverhead() failed. */ extern RTIClockDllVariable const struct RTILogMessage RTI_CLOCK_LOG_GET_TIME_OVERHEAD_FAILURE; /** @internal \ingroup RTIClockLogClass * @brief RTIClock_getSpinPerMicrosecond() fail. */ extern RTIClockDllVariable const struct RTILogMessage RTI_CLOCK_LOG_GET_SPIN_PER_MICROSECOND_FAILURE; #ifdef __cplusplus } /* extern "C" */ #endif #endif /* clock_log_h */