StormByte C++ Library 0.0.9999
StormByte is a comprehensive, cross-platform C++ library aimed at easing system programming, configuration management, logging, and database handling tasks. This library provides a unified API that abstracts away the complexities and inconsistencies of different platforms (Windows, Linux).
Loading...
Searching...
No Matches
pipeline.hxx
1#pragma once
2
3#include <StormByte/buffer/consumer.hxx>
4#include <StormByte/buffer/producer.hxx>
5#include <StormByte/buffer/typedefs.hxx>
6
20namespace StormByte::Buffer {
55 class STORMBYTE_PUBLIC Pipeline final {
56 public:
61 Pipeline() noexcept = default;
62
68 Pipeline(const Pipeline& other) = default;
69
75 Pipeline(Pipeline&& other) noexcept = default;
76
80 ~Pipeline() noexcept = default;
81
87 Pipeline& operator=(const Pipeline& other) = default;
88
94 Pipeline& operator=(Pipeline&& other) noexcept = default;
95
100 void AddPipe(const PipeFunction& pipe);
101
106 void AddPipe(PipeFunction&& pipe);
107
128 Consumer Process(Consumer buffer) const noexcept;
129
130 private:
131 std::vector<PipeFunction> m_pipes;
132 };
133}
A read-only interface for accessing a shared buffer.
Definition consumer.hxx:37
A class designed to execute a sequence of functions asynchronously in a pipeline.
Definition pipeline.hxx:55
Pipeline() noexcept=default
Default constructor Initializes an empty pipeline buffer.
Namespace for buffer-related components in the StormByte library.
Definition consumer.hxx:19
std::function< void(Consumer, Producer)> PipeFunction
Represents a function that processes a data pipe.
Definition typedefs.hxx:156