3#include <StormByte/buffer/shared.hxx>
18namespace StormByte::Buffer {
77 std::
size_t AvailableBytes() const noexcept;
90 void Discard(const std::
size_t& length, const
Read::Position& mode) noexcept;
96 bool End() const noexcept;
102 bool Empty() const noexcept;
117 Read::Status ExtractInto(const
size_t& length,
Shared& output) noexcept;
124 bool HasEnoughData(const std::
size_t& length) const;
131 std::
string HexData(const std::
size_t& column_size = 16) const;
137 bool IsEoF() const noexcept;
143 bool IsReadable() const noexcept;
155 std::
size_t Position() const noexcept;
169 void Seek(const std::ptrdiff_t& position, const
Read::Position& mode) const;
175 std::
size_t Size() const noexcept;
181 enum Status Status() const noexcept;
184 std::shared_ptr<
Shared> m_shared;
Exception class for buffer overflow errors.
Definition exception.hxx:48
A read-only interface for accessing a shared buffer.
Definition consumer.hxx:34
~Consumer() noexcept=default
Destructor.
Consumer(const Consumer &other)=default
Deleted copy constructor.
Consumer(Consumer &&other) noexcept=default
Default move constructor.
A write-only interface for accessing a shared buffer.
Definition producer.hxx:40
A thread-safe version of the Simple buffer.
Definition shared.hxx:40
Namespace for buffer-related components in the StormByte library.
Namespace for read-related utilities in the StormByte library.