summaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/util')
-rw-r--r--src/util/PeakBuffer.cxx14
-rw-r--r--src/util/PeakBuffer.hxx6
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);