Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
feature_flags.h
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
31#pragma once
32
33//==============================================================================
34// Common System Integration
35//==============================================================================
36
37// Include common_system's feature flags if available
38// This provides access to all KCENON_* feature macros from common_system
39#if __has_include(<kcenon/common/config/feature_flags.h>)
40 #include <kcenon/common/config/feature_flags.h>
41 #ifndef KCENON_HAS_COMMON_SYSTEM
42 #define KCENON_HAS_COMMON_SYSTEM 1
43 #endif
44#else
45 #ifndef KCENON_HAS_COMMON_SYSTEM
46 #define KCENON_HAS_COMMON_SYSTEM 0
47 #endif
48#endif
49
50//==============================================================================
51// Monitoring System Feature Flags
52//==============================================================================
53
61#ifndef KCENON_MONITORING_ENABLE_LEGACY_ALIASES
62 #define KCENON_MONITORING_ENABLE_LEGACY_ALIASES 1
63#endif
64
65//==============================================================================
66// Legacy Aliases
67//==============================================================================
68
83#if KCENON_MONITORING_ENABLE_LEGACY_ALIASES
84
85//------------------------------------------------------------------------------
86// Common system integration aliases
87//------------------------------------------------------------------------------
88
89// BUILD_WITH_COMMON_SYSTEM -> KCENON_HAS_COMMON_SYSTEM
90#ifndef BUILD_WITH_COMMON_SYSTEM
91 #if KCENON_HAS_COMMON_SYSTEM
92 #define BUILD_WITH_COMMON_SYSTEM 1
93 #endif
94#endif
95
96// MONITORING_USING_COMMON_INTERFACES -> KCENON_HAS_COMMON_SYSTEM
97#ifndef MONITORING_USING_COMMON_INTERFACES
98 #if KCENON_HAS_COMMON_SYSTEM
99 #define MONITORING_USING_COMMON_INTERFACES 1
100 #endif
101#endif
102
103//------------------------------------------------------------------------------
104// Logger system integration aliases
105//------------------------------------------------------------------------------
106
107// BUILD_WITH_LOGGER_SYSTEM -> KCENON_WITH_LOGGER_SYSTEM (from common_system)
108#ifndef BUILD_WITH_LOGGER_SYSTEM
109 #if defined(KCENON_WITH_LOGGER_SYSTEM) && KCENON_WITH_LOGGER_SYSTEM
110 #define BUILD_WITH_LOGGER_SYSTEM 1
111 #endif
112#endif
113
114#endif // KCENON_MONITORING_ENABLE_LEGACY_ALIASES
115
116//==============================================================================
117// Feature Detection Helpers
118//==============================================================================
119
126#ifndef KCENON_HAS_COMMON_CONCEPTS
127 #if KCENON_HAS_COMMON_SYSTEM && defined(KCENON_HAS_CONCEPTS) && KCENON_HAS_CONCEPTS
128 #define KCENON_HAS_COMMON_CONCEPTS 1
129 #else
130 #define KCENON_HAS_COMMON_CONCEPTS 0
131 #endif
132#endif
133
137#ifndef KCENON_HAS_COMMON_DI
138 #if KCENON_HAS_COMMON_SYSTEM
139 #define KCENON_HAS_COMMON_DI 1
140 #else
141 #define KCENON_HAS_COMMON_DI 0
142 #endif
143#endif
144
148#ifndef KCENON_HAS_COMMON_ILOGGER
149 #if KCENON_HAS_COMMON_SYSTEM
150 #define KCENON_HAS_COMMON_ILOGGER 1
151 #else
152 #define KCENON_HAS_COMMON_ILOGGER 0
153 #endif
154#endif
155
159#ifndef KCENON_HAS_COMMON_IMONITOR
160 #if KCENON_HAS_COMMON_SYSTEM
161 #define KCENON_HAS_COMMON_IMONITOR 1
162 #else
163 #define KCENON_HAS_COMMON_IMONITOR 0
164 #endif
165#endif