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
- Document public vs internal distinction in header comments
- Consider moving internal buffers to
detail or internal namespace
- Update include structure if needed for module preparation
- Add
@internal doxygen tags to internal APIs
Acceptance Criteria
Files Affected
- All buffer-related headers
- Documentation files
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 bycentral_collectortime_series_buffer.h- Used bysystem_resource_collectorInternal API (src/utils/)
ring_buffer.h- Core ring buffer implementationbuffering_strategy.h- Buffering strategiesbuffer_manager.h- Buffer lifecycle managementProblem
exportdecisionsProposed Solution
detailorinternalnamespace@internaldoxygen tags to internal APIsAcceptance Criteria
Files Affected