aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/DecoderBuffer.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/decoder/DecoderBuffer.cxx')
-rw-r--r--src/decoder/DecoderBuffer.cxx56
1 files changed, 12 insertions, 44 deletions
diff --git a/src/decoder/DecoderBuffer.cxx b/src/decoder/DecoderBuffer.cxx
index df536e2b5..a8958d6fd 100644
--- a/src/decoder/DecoderBuffer.cxx
+++ b/src/decoder/DecoderBuffer.cxx
@@ -20,84 +20,52 @@
#include "config.h"
#include "DecoderBuffer.hxx"
#include "DecoderAPI.hxx"
-#include "util/ConstBuffer.hxx"
#include <assert.h>
-const InputStream &
-decoder_buffer_get_stream(const DecoderBuffer *buffer)
-{
- return buffer->is;
-}
-
-void
-decoder_buffer_clear(DecoderBuffer *buffer)
-{
- buffer->buffer.Clear();
-}
-
bool
-decoder_buffer_fill(DecoderBuffer *buffer)
+DecoderBuffer::Fill()
{
- auto w = buffer->buffer.Write();
+ auto w = buffer.Write();
if (w.IsEmpty())
/* buffer is full */
return false;
- size_t nbytes = decoder_read(buffer->decoder, buffer->is,
+ size_t nbytes = decoder_read(decoder, is,
w.data, w.size);
if (nbytes == 0)
/* end of file, I/O error or decoder command
received */
return false;
- buffer->buffer.Append(nbytes);
+ buffer.Append(nbytes);
return true;
}
-size_t
-decoder_buffer_available(const DecoderBuffer *buffer)
-{
- return buffer->buffer.GetAvailable();
-}
-
-ConstBuffer<void>
-decoder_buffer_read(const DecoderBuffer *buffer)
-{
- auto r = buffer->buffer.Read();
- return { r.data, r.size };
-}
-
ConstBuffer<void>
-decoder_buffer_need(DecoderBuffer *buffer, size_t min_size)
+DecoderBuffer::Need(size_t min_size)
{
while (true) {
- const auto r = decoder_buffer_read(buffer);
+ const auto r = Read();
if (r.size >= min_size)
return r;
- if (!decoder_buffer_fill(buffer))
+ if (!Fill())
return nullptr;
}
}
-void
-decoder_buffer_consume(DecoderBuffer *buffer, size_t nbytes)
-{
- buffer->buffer.Consume(nbytes);
-}
-
bool
-decoder_buffer_skip(DecoderBuffer *buffer, size_t nbytes)
+DecoderBuffer::Skip(size_t nbytes)
{
- const auto r = buffer->buffer.Read();
+ const auto r = buffer.Read();
if (r.size >= nbytes) {
- buffer->buffer.Consume(nbytes);
+ buffer.Consume(nbytes);
return true;
}
- buffer->buffer.Clear();
+ buffer.Clear();
nbytes -= r.size;
- return decoder_skip(buffer->decoder, buffer->is, nbytes);
+ return decoder_skip(decoder, is, nbytes);
}