|
|
| | Producer () noexcept |
| | Construct a Producer with a fresh shared Ring.
|
| |
| | Producer (std::shared_ptr< Ring > buffer) noexcept |
| | Construct a Producer that shares an existing Ring.
|
| |
| | Producer (const Consumer &consumer) noexcept |
| | Construct a Producer that shares the Ring of a Consumer.
|
| |
| | Producer (const Producer &other) noexcept |
| | Copy construct (shares the same Ring).
|
| |
| | Producer (Producer &&other) noexcept |
| | Move construct.
|
| |
| | ~Producer () noexcept override |
| | Destructor.
|
| |
| Producer & | operator= (const Producer &other) noexcept |
| | Copy assignment (shares the same Ring afterwards).
|
| |
| Producer & | operator= (Producer &&other) noexcept |
| | Move assignment.
|
| |
|
| bool | operator== (const Producer &other) const noexcept |
| | Equality comparison.
|
| |
| bool | operator!= (const Producer &other) const noexcept |
| | Inequality comparison.
|
| |
|
| void | Close () noexcept override |
| | Close the shared Ring for further writes.
|
| |
| void | SetError () noexcept override |
| | Put the shared Ring into a permanent error state.
|
| |
| bool | IsWritable () const noexcept override |
| | Whether the shared Ring still accepts writes.
|
| |
|
| bool | Write (const std::size_t &count, const DataType &data) noexcept override |
| | Append bytes from a DataType (copy).
|
| |
| bool | Write (const DataType &data) noexcept |
| | Append an entire DataType (copy).
|
| |
| bool | Write (const std::size_t &count, DataType &&data) noexcept override |
| | Append bytes from a DataType (move path).
|
| |
| bool | Write (DataType &&data) noexcept |
| | Append an entire DataType (move path).
|
| |
| bool | Write (const std::size_t &count, const ReadOnly &data) noexcept override |
| | Append bytes from a ReadOnly (copy path).
|
| |
| bool | Write (const std::size_t &count, ReadOnly &&data) noexcept override |
| | Append bytes from a ReadOnly (move / extract path).
|
| |
| virtual bool | Write (const std::size_t &count, const DataType &data) noexcept=0 |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
| virtual bool | Write (const std::size_t &count, DataType &&data) noexcept=0 |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
| virtual bool | Write (const std::size_t &count, const ReadOnly &data) noexcept=0 |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
| virtual bool | Write (const std::size_t &count, ReadOnly &&data) noexcept=0 |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
| bool | Write (const ReadOnly &data) noexcept |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
| bool | Write (ReadOnly &&data) noexcept |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
| bool | Write (std::string_view sv) noexcept |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
| bool | Write (const char *s) noexcept |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
| bool | Write (const std::size_t &count, std::string_view sv) noexcept |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
| bool | Write (const std::size_t &count, const char *s) noexcept |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
| template<std::size_t N> |
| bool | Write (const char(&s)[N]) noexcept |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
| template<Type::ByteInputRange R> |
| bool | Write (const R &r) noexcept |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
| template<Type::ByteInputRange Rw> |
| bool | Write (const std::size_t &count, const Rw &r) noexcept |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
| template<Type::ByteInputRange Rrw> |
| bool | Write (const std::size_t &count, Rrw &&r) noexcept |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
| template<Type::ByteInputRange Rr> |
| bool | Write (Rr &&r) noexcept |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
template<Type::ByteInputIterator I, typename S >
requires Type::SentinelFor<S, I> |
| bool | Write (I first, S last) noexcept |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
template<Type::ByteInputIterator I2, typename S2 >
requires Type::SentinelFor<S2, I2> |
| bool | Write (const std::size_t &count, I2 first, S2 last) noexcept |
| | Bring WriteOnly convenience Write overloads into scope.
|
| |
|
| class Consumer | Consumer () |
| | Create a Consumer that shares this Producer’s Ring.
|
| |
| | WriteOnly () noexcept |
| | Default construct.
|
| |
| | WriteOnly (const WriteOnly &)=default |
| | Copy construct.
|
| |
| | WriteOnly (WriteOnly &&) noexcept=default |
| | Move construct.
|
| |
| virtual | ~WriteOnly () noexcept |
| | Virtual destructor.
|
| |
| WriteOnly & | operator= (const WriteOnly &)=default |
| | Copy assign.
|
| |
| WriteOnly & | operator= (WriteOnly &&) noexcept=default |
| | Move assign.
|
| |
| bool | Write (const ReadOnly &data) noexcept |
| | Append all available bytes from a ReadOnly (copy).
|
| |
| bool | Write (ReadOnly &&data) noexcept |
| | Append all available bytes from a ReadOnly (move path).
|
| |
| bool | Write (std::string_view sv) noexcept |
| | Write a string view (no trailing NUL).
|
| |
| bool | Write (const char *s) noexcept |
| | Write a null-terminated C string.
|
| |
| bool | Write (const std::size_t &count, std::string_view sv) noexcept |
| | Write up to count characters from a string view.
|
| |
| bool | Write (const std::size_t &count, const char *s) noexcept |
| | Write up to count characters from a C string.
|
| |
| template<std::size_t N> |
| bool | Write (const char(&s)[N]) noexcept |
| | Write a string literal without the trailing NUL.
|
| |
| template<Type::ByteInputRange R> |
| bool | Write (const R &r) noexcept |
| | Write all elements from an input range.
|
| |
| template<Type::ByteInputRange Rw> |
| bool | Write (const std::size_t &count, const Rw &r) noexcept |
| | Write up to count elements from an input range.
|
| |
| template<Type::ByteInputRange Rrw> |
| bool | Write (const std::size_t &count, Rrw &&r) noexcept |
| | Write up to count elements from an rvalue range.
|
| |
| template<Type::ByteInputRange Rr> |
| bool | Write (Rr &&r) noexcept |
| | Write all elements from an rvalue range.
|
| |
template<Type::ByteInputIterator I, typename S >
requires Type::SentinelFor<S, I> |
| bool | Write (I first, S last) noexcept |
| | Write all elements from an iterator pair.
|
| |
template<Type::ByteInputIterator I2, typename S2 >
requires Type::SentinelFor<S2, I2> |
| bool | Write (const std::size_t &count, I2 first, S2 last) noexcept |
| | Write up to count elements from an iterator pair.
|
| |
| | Generic () noexcept=default |
| | Default construct.
|
| |
| | Generic (const Generic &) noexcept=default |
| | Copy construct.
|
| |
| | Generic (Generic &&) noexcept=default |
| | Move construct.
|
| |
| virtual | ~Generic () noexcept=0 |
| | Pure virtual destructor (keeps the class abstract).
|
| |
| Generic & | operator= (const Generic &other)=default |
| | Copy assign.
|
| |
| Generic & | operator= (Generic &&) noexcept=default |
| | Move assign.
|
| |
Write-only handle over a shared Ring.
Multiple Producer instances may share the same underlying Ring, allowing concurrent writes in a fully thread-safe manner.
All operations delegate to the shared Ring. Use Consumer() to obtain a matching read-oriented handle on the same buffer.
- See also
- Consumer, Ring, WriteOnly