Skip to content

Normalize integration flags to KCENON_WITH_*#24

Merged
kcenon merged 8 commits into
mainfrom
feature/23-normalize-integration-flags
Dec 23, 2025
Merged

Normalize integration flags to KCENON_WITH_*#24
kcenon merged 8 commits into
mainfrom
feature/23-normalize-integration-flags

Conversation

@kcenon

@kcenon kcenon commented Dec 23, 2025

Copy link
Copy Markdown
Owner

Summary

  • Replace BUILD_WITH_* preprocessor checks with KCENON_WITH_* macros from feature_flags.h in gateway sources, tests, and benchmarks
  • Update CMake to define WITH_* symbols (consumed by feature_flags.h) instead of BUILD_WITH_*
  • Document the integration macro mapping in README

Test plan

  • Verify tests pass with existing build options
  • Verify container_system integration works correctly when enabled
  • Verify builds succeed with container_system disabled

Closes #23

Replace BUILD_WITH_* preprocessor checks with KCENON_WITH_* macros
from feature_flags.h for consistent integration gating across repos.

Changes:
- Add feature_flags.h include to gateway sources, tests, benchmarks
- Replace #ifdef BUILD_WITH_CONTAINER_SYSTEM with #if KCENON_WITH_*
- Update CMake to define WITH_* symbols instead of BUILD_WITH_*

Refs: #23
Add Integration Macros section explaining the relationship between
CMake options (BUILD_WITH_*) and source code macros (KCENON_WITH_*).

Refs: #23
Define both legacy BUILD_WITH_* macros and new WITH_* macros in
CMake compile definitions to maintain backward compatibility while
enabling KCENON_WITH_* feature flags from feature_flags.h.

Refs: #23
Change forward declarations from legacy namespace aliases to actual class types
to prevent conflicts when network_system/core/messaging_server.h is included.

- Forward declare kcenon::network::core::messaging_server and messaging_session
- Add using aliases for backward compatibility with network_system namespace
Add connection_types.h with server-side implementations of connection pooling
types that were removed from database_system as part of Phase 4.3
(Client Library Diet initiative).

Types added:
- connection_pool_config: Pool configuration parameters
- connection_stats: Statistics for monitoring
- connection_wrapper: Connection metadata wrapper
- connection_pool_base: Abstract base class for pools
- connection_pool: Basic pool implementation

This allows database_server to maintain server-side connection pooling
while database_system clients use ProxyMode for production deployments.
- Document connection_types.h and its contents
- Add note about database_system Phase 4.3 Client Library Diet
- Clarify that connection pooling is now server-side only
Remove redundant BUILD_WITH_* compile definitions from CMakeLists.txt.
The feature_flags.h header from common_system now properly maps WITH_*
symbols to KCENON_WITH_* macros, making the legacy definitions unnecessary.

Changes:
- Replace BUILD_WITH_COMMON_SYSTEM WITH_COMMON_SYSTEM with just WITH_COMMON_SYSTEM
- Replace BUILD_WITH_MONITORING_SYSTEM WITH_MONITORING_SYSTEM with just WITH_MONITORING_SYSTEM
- Replace BUILD_WITH_CONTAINER_SYSTEM WITH_CONTAINER_SYSTEM with just WITH_CONTAINER_SYSTEM
- Update comments to clarify the WITH_* to KCENON_WITH_* mapping

This completes the integration flag normalization for PR #24.
Update Integration Macros section to clearly document the three-layer
mapping:
1. CMake Option (BUILD_WITH_*) - User-facing configuration
2. Preprocessor Symbol (WITH_*) - Compile definition set by CMake
3. Macro (KCENON_WITH_*) - Used in source code via feature_flags.h

This clarifies how BUILD_WITH_* options result in KCENON_WITH_* macros
through the WITH_* intermediate symbols.
@kcenon kcenon merged commit 48be97b into main Dec 23, 2025
39 checks passed
@kcenon kcenon deleted the feature/23-normalize-integration-flags branch December 23, 2025 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Normalize integration flags to KCENON_HAS_*

1 participant