/* * 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 mig_log_h #define mig_log_h #ifndef log_common_h #include "log/log_common.h" #endif #ifndef mig_dll_h #include "mig/mig_dll.h" #endif #ifdef __cplusplus extern "C" { #endif /*e \mainpage MIG (Message Interpreter and Generator) module handles formation and interpretation of RTPS protocol compliant messages. MIG is composed of several subpackages. Their interdependencies are shown below: \image html ImplementationDiagram-MIG_submodules.jpg "MIG modules and their dependencies" The interface of this module to the rest of the system is described by the classes shown below: \image html ClassDiagram-MIG_public.jpg "MIG interface" @see MIGRtpsProtocolVersion MIGInterpreter MIGGenerator */ /*e \defgroup MIGModule MIG \ingroup RTI \brief takes care of formatting and deciphering RTPS protocol compliant message. @see RTPS protocol specification, version 1.1 */ /*e \defgroup MIGLogClass MIGLog \ingroup MIGModule NOTE: When a new submodule is added to mig, 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_MIG_RTPS (0x1000) #define SUBMODULE_MIG_INTERPRETER (0x2000) #define SUBMODULE_MIG_GENERATOR (0x3000) /*e \ingroup MIGLogClass Core services all other submodules depend on, for RTPS compliance */ #define MIG_SUBMODULE_MASK_RTPS (0x0001) /*e \ingroup MIGLogClass \brief interpretation of received RTPS messages */ #define MIG_SUBMODULE_MASK_INTERPRETER (0x0002) /*e \ingroup MIGLogClass \brief formation of RTPS messages to be sent */ #define MIG_SUBMODULE_MASK_GENERATOR (0x0004) /*e \ingroup MIGLogClass \brief Convenient way to say "log all submodules" */ #define MIG_SUBMODULE_MASK_ALL RTI_LOG_SUBMODULE_MASK_ALL extern MIGDllVariable const struct RTILogMessage MIG_LOG_INTERPRETER_ADD_FAILURE_XXXX; extern MIGDllVariable const struct RTILogMessage MIG_LOG_ADD_FAILURE_s; extern MIGDllVariable const struct RTILogMessage MIG_LOG_INTERPRETER_BAD_ALIGNMENT_d; #ifdef __cplusplus } /* extern "C" */ #endif #endif /* mig_log_h */