Skip to main content

DoubleBuffer.ixx File

Double-buffered, type-indexed message system for decoupled inter-system communication. More...

Included Headers

#include <memory> #include <span> #include <vector>

Namespaces Index

namespacehelios
namespacecore

Core utilities shared across the helios engine. More...

namespacecontainer

Generic container types shared across the engine. More...

namespacebuffer

Double-buffering infrastructure for thread-safe message passing. More...

Classes Index

classDoubleBuffer

Abstract base class for type-erased message buffers. More...

Description

Double-buffered, type-indexed message system for decoupled inter-system communication.

File Listing

The file content with the documentation metadata removed is:

1/**
2 * @file DoubleBuffer.ixx
3 * @brief Double-buffered, type-indexed message system for decoupled inter-system communication.
4 */
5module;
6
7#include <memory>
8#include <span>
9#include <vector>
10
11export module helios.core.container.buffer.DoubleBuffer;
12
13
14export namespace helios::core::container::buffer {
15
16 /**
17 * @class DoubleBuffer
18 * @brief Abstract base class for type-erased message buffers.
19 *
20 * @details Provides a common interface for buffer operations (swap, clear)
21 * without exposing the concrete message type. Used internally by TypeIndexedDoubleBuffer
22 * to manage heterogeneous message buffers in a single container.
23 */
25
26 public:
27 DoubleBuffer() = default;
28
29 virtual ~DoubleBuffer() = default;
30
31 /**
32 * @brief Swaps the read and write buffers.
33 *
34 * @details Clears the current read buffer, then exchanges it with the write buffer.
35 * After this call, previously written messages become available for reading.
36 */
37 virtual void swap() = 0;
38
39 /**
40 * @brief Clears all messages from the read buffer.
41 */
42 virtual void clearReadBuffer() = 0;
43
44 /**
45 * @brief Clears all messages from the write buffer.
46 */
47 virtual void clearWriteBuffer() = 0;
48
49 };
50}

Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.