Skip to content

[#531-1/5] Header consolidation to include/kcenon/container/ #532

Description

@kcenon

What

Move all .h / .hpp headers from feature directories at the repository root into the canonical location include/kcenon/container/.

Current scattered locations:

  • core/ — 21 headers
  • internal/ — 16 headers
  • integration/ — 1 header
  • messaging/ — 1 header

Target:

  • include/kcenon/container/core/
  • include/kcenon/container/internal/
  • include/kcenon/container/integration/
  • include/kcenon/container/messaging/

Why

include/ already contains some headers under kcenon/container/, but feature directories still hold 39 headers at the repo root. As a result:

  • #include paths are ambiguous: the same type can be reached via multiple roots.
  • core/, internal/, integration/, messaging/ cannot be removed at repo root, blocking the EPIC's layout goal.
  • Some already-moved headers ended up nested awkwardly (e.g. include/kcenon/container/container/fwd.h); this issue is the right time to also fix the nested container/container/ paths.

Where

  • Source: core/, internal/, integration/, messaging/ (header files only — .cpp is out of scope, see #)
  • Target: include/kcenon/container/{core,internal,integration,messaging}/
  • Affected: every translation unit that #includes the moved headers

How

Technical Approach

  1. Move headers preserving subdirectory structure where it exists.
  2. Update every #include site in the repo (sources, tests, examples, benchmarks).
  3. Update target_include_directories(...) in CMakeLists.txt so the new layout is discoverable from public + private targets.
  4. Fix the existing include/kcenon/container/container/... nested paths to flat include/kcenon/container/....
  5. Run full build + tests.

Acceptance Criteria

  • core/, internal/, integration/, messaging/ contain no header files
  • All public/internal headers reachable under include/kcenon/container/
  • include/kcenon/container/container/ nested directory removed (flattened)
  • Full build green
  • All ctest cases pass
  • Downstream consumers (pacs, network) still build

Estimated Size

M (~39 headers + many #include sites). Pure mechanical move + path updates.

Part of #531

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions