Botan 3.7.1
Crypto and TLS for C&
Botan::Output_Buffers Class Referencefinal

#include <out_buf.h>

Public Member Functions

void add (SecureQueue *)
 
size_t get_bytes_read (Pipe::message_id) const
 
Pipe::message_id message_count () const
 
 Output_Buffers ()
 
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 remaining (Pipe::message_id) const
 
void retire ()
 

Detailed Description

Container of output buffers for Pipe

Definition at line 23 of file out_buf.h.

Constructor & Destructor Documentation

◆ Output_Buffers()

Botan::Output_Buffers::Output_Buffers ( )

Definition at line 110 of file out_buf.cpp.

110 {
111 m_offset = 0;
112}

Member Function Documentation

◆ add()

void Botan::Output_Buffers::add ( SecureQueue * queue)

Definition at line 63 of file out_buf.cpp.

63 {
64 BOTAN_ASSERT(queue, "queue was provided");
65
66 BOTAN_ASSERT(m_buffers.size() < m_buffers.max_size(), "Room was available in container");
67
68 m_buffers.push_back(std::unique_ptr<SecureQueue>(queue));
69}
#define BOTAN_ASSERT(expr, assertion_made)
Definition assert.h:50

References BOTAN_ASSERT.

◆ get_bytes_read()

size_t Botan::Output_Buffers::get_bytes_read ( Pipe::message_id msg) const

Definition at line 52 of file out_buf.cpp.

52 {
53 SecureQueue* q = get(msg);
54 if(q) {
55 return q->get_bytes_read();
56 }
57 return 0;
58}

References Botan::SecureQueue::get_bytes_read().

◆ message_count()

Pipe::message_id Botan::Output_Buffers::message_count ( ) const

Definition at line 103 of file out_buf.cpp.

103 {
104 return (m_offset + m_buffers.size());
105}

◆ peek()

size_t Botan::Output_Buffers::peek ( uint8_t output[],
size_t length,
size_t stream_offset,
Pipe::message_id msg ) const

Definition at line 30 of file out_buf.cpp.

30 {
31 SecureQueue* q = get(msg);
32 if(q) {
33 return q->peek(output, length, stream_offset);
34 }
35 return 0;
36}

References Botan::SecureQueue::peek().

◆ read()

size_t Botan::Output_Buffers::read ( uint8_t output[],
size_t length,
Pipe::message_id msg )

Definition at line 19 of file out_buf.cpp.

19 {
20 SecureQueue* q = get(msg);
21 if(q) {
22 return q->read(output, length);
23 }
24 return 0;
25}

References Botan::SecureQueue::read().

◆ remaining()

size_t Botan::Output_Buffers::remaining ( Pipe::message_id msg) const

Definition at line 41 of file out_buf.cpp.

41 {
42 SecureQueue* q = get(msg);
43 if(q) {
44 return q->size();
45 }
46 return 0;
47}

References Botan::SecureQueue::size().

◆ retire()

void Botan::Output_Buffers::retire ( )

Definition at line 74 of file out_buf.cpp.

74 {
75 for(auto& buf : m_buffers) {
76 if(buf && buf->empty()) {
77 buf.reset();
78 }
79 }
80
81 while(!m_buffers.empty() && !m_buffers[0]) {
82 m_buffers.pop_front();
83 m_offset = m_offset + Pipe::message_id(1);
84 }
85}
size_t message_id
Definition pipe.h:34

The documentation for this class was generated from the following files: