Skip to content

feat(modules): add C++20 module files for kcenon.messaging#205

Merged
kcenon merged 5 commits into
mainfrom
feature/204-cpp20-module-files
Jan 3, 2026
Merged

feat(modules): add C++20 module files for kcenon.messaging#205
kcenon merged 5 commits into
mainfrom
feature/204-cpp20-module-files

Conversation

@kcenon

@kcenon kcenon commented Jan 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add C++20 module files for messaging_system as part of the Tier 5 (Application) layer
  • This completes the C++20 module migration across all kcenon systems

Changes

  • Module files (src/modules/):

    • messaging.cppm - Primary module interface
    • core.cppm - Core messaging (message, queue, bus, broker)
    • patterns.cppm - Messaging patterns (pub/sub, request/reply)
    • task.cppm - Distributed task queue system
    • integration.cppm - Transports, backends, DI
  • CMake (CMakeLists.txt):

    • Add MESSAGING_BUILD_MODULES option (OFF by default)
    • Add messaging_system_modules target with module file set
    • Link dependent module targets (common, thread, container, logger, database, network)
  • Documentation:

    • Add C++20 module build section to README.md
    • Add module support entry to CHANGELOG.md

Module Structure

import kcenon.messaging;

// Available partitions:
// - kcenon.messaging:core
// - kcenon.messaging:patterns
// - kcenon.messaging:task
// - kcenon.messaging:integration

Requirements

  • CMake 3.28+
  • Ninja or Ninja Multi-Config generator
  • Clang 16+ or GCC 14+ or MSVC 17.4+

Test plan

  • Verify header-based build still works
  • Verify CMake configuration with modules enabled
  • Verify all header directories exist
  • Full module build test (requires compatible compiler)

Related

kcenon added 5 commits January 4, 2026 00:37
Add C++20 module interface files as part of the modular migration:
- messaging.cppm: Primary module interface
- core.cppm: Core messaging (message, queue, bus, broker)
- patterns.cppm: Messaging patterns (pub/sub, request/reply)
- task.cppm: Distributed task queue system
- integration.cppm: Transports, backends, DI

This completes the Tier 5 module in the dependency chain:
common -> thread -> container -> logger -> database -> network -> messaging

Refs #204
- Add MESSAGING_BUILD_MODULES option (OFF by default)
- Add messaging_system_modules target with module file set
- Link dependent module targets (common, thread, container, etc.)
- Add module status to build configuration summary

Module build requires CMake 3.28+ and compatible compiler.
Refs #204
- Add C++20 module build section to README.md
- Add module support entry to CHANGELOG.md
- Document module requirements and structure

Refs #204
Replace deprecated container set_value() calls with set() to fix
MSVC build failure (C4996 warning treated as error).

Refs #204
Update test files to use the new set() API instead of deprecated
set_value() method in value_container. This fixes Windows MSVC build
failures where deprecated warnings are treated as errors.

Modified files:
- test/unit/task/test_worker_pool.cpp
- test/unit/task/test_task_handler.cpp
- test/unit/task/test_task_context.cpp
- test/benchmarks/task/bench_result_backend.cpp
@kcenon kcenon merged commit 17574be into main Jan 3, 2026
11 checks passed
@kcenon kcenon deleted the feature/204-cpp20-module-files branch January 3, 2026 17:00
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.

[MODULE] Create C++20 module files for kcenon.messaging

1 participant