Network System 0.1.1
High-performance modular networking library for scalable client-server applications
Loading...
Searching...
No Matches
feature_flags.h
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2021-2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
22#pragma once
23
24//==============================================================================
25// Check for common_system availability
26//==============================================================================
27
28#if defined(WITH_COMMON_SYSTEM) || defined(KCENON_WITH_COMMON_SYSTEM)
29 // common_system is available, use its feature flags
30 #include <kcenon/common/config/feature_flags.h>
31#else
32 // common_system is not available, define feature flags locally
33
34//==============================================================================
35// Thread System Integration
36//==============================================================================
37
38#ifndef KCENON_WITH_THREAD_SYSTEM
39 #if defined(ENABLE_THREAD_INTEGRATION) || defined(WITH_THREAD_SYSTEM)
40 #define KCENON_WITH_THREAD_SYSTEM 1
41 #else
42 #define KCENON_WITH_THREAD_SYSTEM 0
43 #endif
44#endif
45
46//==============================================================================
47// Logger System Integration
48//==============================================================================
49
50#ifndef KCENON_WITH_LOGGER_SYSTEM
51 #if defined(ENABLE_LOGGER_INTEGRATION) || defined(WITH_LOGGER_SYSTEM)
52 #define KCENON_WITH_LOGGER_SYSTEM 1
53 #else
54 #define KCENON_WITH_LOGGER_SYSTEM 0
55 #endif
56#endif
57
58//==============================================================================
59// Monitoring System Integration
60//==============================================================================
61// DEPRECATED: Since issue #342, network_system uses EventBus-based metric
62// publishing instead of compile-time monitoring_system dependency.
63// External consumers should subscribe to network_metric_event via EventBus.
64//
65// This macro is kept for backward compatibility but is no longer used
66// in network_system headers. It will be removed in a future version.
67//==============================================================================
68
69#ifndef KCENON_WITH_MONITORING_SYSTEM
70 #if defined(ENABLE_MONITORING_INTEGRATION) || defined(WITH_MONITORING_SYSTEM)
71 #define KCENON_WITH_MONITORING_SYSTEM 1
72 #else
73 #define KCENON_WITH_MONITORING_SYSTEM 0
74 #endif
75#endif
76
77//==============================================================================
78// Container System Integration
79//==============================================================================
80
81#ifndef KCENON_WITH_CONTAINER_SYSTEM
82 #if defined(ENABLE_CONTAINER_INTEGRATION) || defined(WITH_CONTAINER_SYSTEM)
83 #define KCENON_WITH_CONTAINER_SYSTEM 1
84 #else
85 #define KCENON_WITH_CONTAINER_SYSTEM 0
86 #endif
87#endif
88
89//==============================================================================
90// Common System Integration
91//==============================================================================
92
93#ifndef KCENON_WITH_COMMON_SYSTEM
94 #define KCENON_WITH_COMMON_SYSTEM 0
95#endif
96
97#endif // WITH_COMMON_SYSTEM