Skip to content

[REFACTOR] Clarify public vs internal buffer APIs #313

Description

@kcenon

Summary

Establish clear separation between public and internal buffer APIs in preparation for C++20 module migration.

Parent Issue

Part of #309 (Consolidate buffering layer - C++20 Module preparation)

Current State

Public API (include/)

  • thread_local_buffer.h - Used by central_collector
  • time_series_buffer.h - Used by system_resource_collector

Internal API (src/utils/)

  • ring_buffer.h - Core ring buffer implementation
  • buffering_strategy.h - Buffering strategies
  • buffer_manager.h - Buffer lifecycle management

Problem

  • Unclear which buffers are public vs internal
  • Internal implementations exposed through include paths
  • C++20 modules need explicit export decisions

Proposed Solution

  1. Document public vs internal distinction in header comments
  2. Consider moving internal buffers to detail or internal namespace
  3. Update include structure if needed for module preparation
  4. Add @internal doxygen tags to internal APIs

Acceptance Criteria

  • Clear documentation of public vs internal APIs
  • Internal APIs marked appropriately
  • No breaking changes to public API
  • Ready for C++20 module partitioning

Files Affected

  • All buffer-related headers
  • Documentation files

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions