Skip to content

[MODULE] Create C++20 module files for kcenon.database #314

Description

@kcenon

Summary

Create C++20 module files for database_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.database;

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

export import kcenon.database.core;
export import kcenon.database.query;
export import kcenon.database.backends;

Module Partitions

Partition Contents
:core Core database interfaces
:query Unified query builder (Strategy pattern)
:backends Database backend implementations

File Structure

src/modules/
├── database.cppm            # Primary module interface
├── core.cppm                # Core partition
├── query.cppm               # Query partition
└── backends.cppm            # Backends partition

CMake Configuration

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

add_library(kcenon_database)
target_sources(kcenon_database
    PRIVATE FILE_SET CXX_MODULES
    FILES
        src/modules/database.cppm
        src/modules/core.cppm
        src/modules/query.cppm
        src/modules/backends.cppm
)

Tasks

  • Wait for Tier 0/1 module completion
  • Create module directory structure
  • Create module files
  • Update CMakeLists.txt for module support
  • Verify no circular module dependencies
  • Update all tests to use modules
  • Update documentation

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

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