Skip to content

[MODULE] Create C++20 module files for kcenon.monitoring #310

Description

@kcenon

Summary

Create C++20 module files for monitoring_system as part of the Tier 3 libraries.

Parent Epic

Part of kcenon/common_system#256 (C++20 Module Migration - Cross-System Preparation)

Prerequisites

Proposed Module Structure

// Primary module interface
export module kcenon.monitoring;

import kcenon.common;           // Required
import kcenon.thread;           // Required
import kcenon.logger;           // Optional

export import kcenon.monitoring.core;
export import kcenon.monitoring.collectors;
export import kcenon.monitoring.adaptive;

Module Partitions

Partition Contents
:core Core monitoring interfaces
:collectors Metric collectors
:adaptive Adaptive monitoring

File Structure

src/modules/
├── monitoring.cppm          # Primary module interface
├── core.cppm                # Core partition
├── collectors.cppm          # Collectors partition
└── adaptive.cppm            # Adaptive partition

CMake Configuration

cmake_minimum_required(VERSION 3.28)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_SCAN_FOR_MODULES ON)

add_library(kcenon_monitoring)
target_sources(kcenon_monitoring
    PRIVATE FILE_SET CXX_MODULES
    FILES
        src/modules/monitoring.cppm
        src/modules/core.cppm
        src/modules/collectors.cppm
        src/modules/adaptive.cppm
)

Tasks

Acceptance Criteria

  • Module builds successfully with CMake 3.28+
  • Successfully imports dependent modules
  • All existing tests pass with module
  • No circular dependencies
  • Header-based build still works (transition period)

Migration Timeline

This is Phase 2 work (Release N+4) per EPIC:

  • Blocked by: Tier 0/1/2 modules, buffering consolidation

Related

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions