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)
void add(SecureQueue *queue)
size_t get_bytes_read(Pipe::message_id msg) const
Pipe::message_id message_count() const
size_t remaining(Pipe::message_id msg) const
size_t peek(uint8_t output[], size_t length, size_t stream_offset, Pipe::message_id msg) const
size_t read(uint8_t output[], size_t length, Pipe::message_id msg)
size_t peek(uint8_t output[], size_t length, size_t offset=0) const override
size_t get_bytes_read() const override
size_t read(uint8_t output[], size_t length) override