9#include <botan/internal/out_buf.h>
11#include <botan/assert.h>
12#include <botan/internal/secqueue.h>
22 return q->
read(output, length);
33 return q->
peek(output, length, stream_offset);
66 BOTAN_ASSERT(m_buffers.size() < m_buffers.max_size(),
"Room was available in container");
68 m_buffers.push_back(std::unique_ptr<SecureQueue>(queue));
75 for(
auto& buf : m_buffers) {
76 if(buf && buf->empty()) {
81 while(!m_buffers.empty() && !m_buffers[0]) {
82 m_buffers.pop_front();
97 return m_buffers[msg - m_offset].get();
104 return (m_offset + m_buffers.size());
#define BOTAN_ASSERT(expr, assertion_made)
Pipe::message_id message_count() const
size_t get_bytes_read(Pipe::message_id) const
size_t remaining(Pipe::message_id) const
size_t peek(uint8_t[], size_t, size_t, Pipe::message_id) const
size_t read(uint8_t[], size_t, Pipe::message_id)
size_t read(uint8_t[], size_t) override
size_t get_bytes_read() const override
size_t peek(uint8_t[], size_t, size_t=0) const override