VR-Engage  2.2
Loading...
Searching...
No Matches
vreRtdBackendLibCommon.h
Go to the documentation of this file.
1/*******************************************************************************
2** Copyright (c) 2025 MAK Technologies
3** All rights reserved.
4*******************************************************************************/
5
6//! \file vreRtdBackendLibCommon.h
7//! \ingroup vreVrfRtd
8//! \brief Common definitions for the RTD backend library
9//!
10//! This file provides common preprocessor macros, export declarations, and includes
11//! that are used throughout the VREngage RTD (Real-Time Dynamics) backend libraries.
12//! It establishes the export/import declarations for DLL boundaries and common
13//! utility macros used by RTD components.
14
15#pragma once
16
17//! \brief Platform-specific DLL export/import declarations
18//!
19//! These macros define the appropriate export/import declarations for Windows DLLs
20//! and establish proper visibility for shared libraries on Linux platforms.
21#ifdef WIN32
22 #ifdef RTD_SHARED_BACKENDLIB_DLL
23 #ifdef RTD_VRF_BACKEND_PLUGIN_EXPORTS
24 #define RTD_VRF_BACKEND_PLUGIN_EXPORT _declspec(dllexport)
25 #else
26 #define RTD_VRF_BACKEND_PLUGIN_EXPORT _declspec(dllimport)
27 #endif
28 // Disable warnings: non dll-interface class 'Dt...' used as base for dll-interface class 'RtdVrf::...'
29 // This is perfectly OK in this scenario.
30 #pragma warning(disable : 4275)
31 #else
32 #define RTD_VRF_BACKEND_PLUGIN_EXPORT
33 #endif
34#elif defined(__linux)
35 #define RTD_VRF_BACKEND_PLUGIN_EXPORT
36#endif
37
38//! \brief Macro to declare unimplemented copy constructor and assignment operator
39//! \param className The name of the class to declare these functions for
40//!
41//! This macro declares a private, unimplemented copy constructor and assignment operator
42//! for the specified class, preventing implicit copying and assignment. This is used
43//! for classes that should not be copied, especially components and repositories.
44#define UNIMPLEMENTED_COPYCTOR_AND_ASSIGNMENT_OPERATOR(className) \
45 className(const className& orig); \
46 const className& operator=(const className& orig);
47
48//! \brief Include helper for managing warning configurations
50
51//! \brief Configure warnings for external includes
52//!
53//! Temporarily adjusts compiler warning settings for external includes.
54//! Warnings are restored after the includes with #pragma warning(pop).
56#include <vrftasks/radioMessageTypes.h>
57#pragma warning(pop)
58
59//! \brief Defines the minimum user radio message type
60//!
61//! This macro establishes the minimum value for user-defined radio message types,
62//! ensuring they don't conflict with system-defined message types.
63#define RTD_MIN_USER_RADIO_MESSAGE_TYPE MIN_USER_INTERFACE_MESSAGE_TYPE
64
65//! \brief Include RTD common definitions
66//!
67//! Includes common types, constants, and utility functions used by the RTD system.
68#include <RTD/Common.h>
Compiler warning configuration for external includes.
#define RTDVRFConfigWarnsForExternalIncludes()
Macro to configure compiler warnings for external includes.
Definition RTDVRFConfigWarnsForExternalIncludes.h:29