util/PeakBuffer: return ConstBuffer<void>
This commit is contained in:
parent
f2a20a0a80
commit
1f523be72d
@ -60,15 +60,14 @@ FullyBufferedSocket::Flush()
|
|||||||
{
|
{
|
||||||
assert(IsDefined());
|
assert(IsDefined());
|
||||||
|
|
||||||
size_t length;
|
const auto data = output.Read();
|
||||||
const void *data = output.Read(&length);
|
if (data.IsNull()) {
|
||||||
if (data == nullptr) {
|
|
||||||
IdleMonitor::Cancel();
|
IdleMonitor::Cancel();
|
||||||
CancelWrite();
|
CancelWrite();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto nbytes = DirectWrite(data, length);
|
auto nbytes = DirectWrite(data.data, data.size);
|
||||||
if (gcc_unlikely(nbytes <= 0))
|
if (gcc_unlikely(nbytes <= 0))
|
||||||
return nbytes == 0;
|
return nbytes == 0;
|
||||||
|
|
||||||
|
@ -45,19 +45,21 @@ PeakBuffer::IsEmpty() const
|
|||||||
fifo_buffer_is_empty(peak_buffer));
|
fifo_buffer_is_empty(peak_buffer));
|
||||||
}
|
}
|
||||||
|
|
||||||
const void *
|
ConstBuffer<void>
|
||||||
PeakBuffer::Read(size_t *length_r) const
|
PeakBuffer::Read() const
|
||||||
{
|
{
|
||||||
if (normal_buffer != nullptr) {
|
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)
|
if (p != nullptr)
|
||||||
return p;
|
return { p, size };
|
||||||
}
|
}
|
||||||
|
|
||||||
if (peak_buffer != nullptr) {
|
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)
|
if (p != nullptr)
|
||||||
return p;
|
return { p, size };
|
||||||
}
|
}
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
@ -20,11 +20,13 @@
|
|||||||
#ifndef MPD_PEAK_BUFFER_HXX
|
#ifndef MPD_PEAK_BUFFER_HXX
|
||||||
#define MPD_PEAK_BUFFER_HXX
|
#define MPD_PEAK_BUFFER_HXX
|
||||||
|
|
||||||
|
#include "ConstBuffer.hxx"
|
||||||
#include "Compiler.h"
|
#include "Compiler.h"
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
|
||||||
struct fifo_buffer;
|
struct fifo_buffer;
|
||||||
|
template<typename T> struct ConstBuffer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A FIFO-like buffer that will allocate more memory on demand to
|
* A FIFO-like buffer that will allocate more memory on demand to
|
||||||
@ -57,7 +59,9 @@ public:
|
|||||||
gcc_pure
|
gcc_pure
|
||||||
bool IsEmpty() const;
|
bool IsEmpty() const;
|
||||||
|
|
||||||
const void *Read(size_t *length_r) const;
|
gcc_pure
|
||||||
|
ConstBuffer<void> Read() const;
|
||||||
|
|
||||||
void Consume(size_t length);
|
void Consume(size_t length);
|
||||||
|
|
||||||
bool Append(const void *data, size_t length);
|
bool Append(const void *data, size_t length);
|
||||||
|
Loading…
Reference in New Issue
Block a user