diff options
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/PeakBuffer.cxx | 14 | ||||
-rw-r--r-- | src/util/PeakBuffer.hxx | 6 |
2 files changed, 13 insertions, 7 deletions
diff --git a/src/util/PeakBuffer.cxx b/src/util/PeakBuffer.cxx index a3659b8f4..7db1c97dc 100644 --- a/src/util/PeakBuffer.cxx +++ b/src/util/PeakBuffer.cxx @@ -45,19 +45,21 @@ PeakBuffer::IsEmpty() const fifo_buffer_is_empty(peak_buffer)); } -const void * -PeakBuffer::Read(size_t *length_r) const +ConstBuffer<void> +PeakBuffer::Read() const { if (normal_buffer != nullptr) { - const void *p = fifo_buffer_read(normal_buffer, length_r); + size_t size; + const void *p = fifo_buffer_read(normal_buffer, &size); if (p != nullptr) - return p; + return { p, size }; } if (peak_buffer != nullptr) { - const void *p = fifo_buffer_read(peak_buffer, length_r); + size_t size; + const void *p = fifo_buffer_read(peak_buffer, &size); if (p != nullptr) - return p; + return { p, size }; } return nullptr; diff --git a/src/util/PeakBuffer.hxx b/src/util/PeakBuffer.hxx index a3f385e3e..0e58e80b8 100644 --- a/src/util/PeakBuffer.hxx +++ b/src/util/PeakBuffer.hxx @@ -20,11 +20,13 @@ #ifndef MPD_PEAK_BUFFER_HXX #define MPD_PEAK_BUFFER_HXX +#include "ConstBuffer.hxx" #include "Compiler.h" #include <stddef.h> struct fifo_buffer; +template<typename T> struct ConstBuffer; /** * A FIFO-like buffer that will allocate more memory on demand to @@ -57,7 +59,9 @@ public: gcc_pure bool IsEmpty() const; - const void *Read(size_t *length_r) const; + gcc_pure + ConstBuffer<void> Read() const; + void Consume(size_t length); bool Append(const void *data, size_t length); |