Botan  1.11.15
Public Member Functions
Botan::Output_Buffers Class Reference

#include <out_buf.h>

List of all members.

Public Member Functions

void add (class SecureQueue *)
size_t get_bytes_read (Pipe::message_id) const
Pipe::message_id message_count () const
 Output_Buffers ()
size_t peek (byte[], size_t, size_t, Pipe::message_id) const
size_t read (byte[], size_t, Pipe::message_id)
size_t remaining (Pipe::message_id) const
void retire ()
 ~Output_Buffers ()

Detailed Description

Container of output buffers for Pipe

Definition at line 21 of file out_buf.h.


Constructor & Destructor Documentation

Definition at line 117 of file out_buf.cpp.

   {
   offset = 0;
   }

Definition at line 125 of file out_buf.cpp.

   {
   for(size_t j = 0; j != buffers.size(); ++j)
      delete buffers[j];
   }

Member Function Documentation

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

Definition at line 64 of file out_buf.cpp.

References BOTAN_ASSERT.

   {
   BOTAN_ASSERT(queue, "queue was provided");

   BOTAN_ASSERT(buffers.size() < buffers.max_size(),
                "Room was available in container");

   buffers.push_back(queue);
   }

Definition at line 53 of file out_buf.cpp.

References Botan::SecureQueue::get_bytes_read(), and q.

Referenced by Botan::Pipe::get_bytes_read().

   {
   SecureQueue* q = get(msg);
   if (q)
      return q->get_bytes_read();
   return 0;
   }

Definition at line 109 of file out_buf.cpp.

Referenced by Botan::Pipe::message_count().

   {
   return (offset + buffers.size());
   }
size_t Botan::Output_Buffers::peek ( byte  output[],
size_t  length,
size_t  stream_offset,
Pipe::message_id  msg 
) const

Definition at line 29 of file out_buf.cpp.

References Botan::SecureQueue::peek(), and q.

Referenced by Botan::Pipe::peek().

   {
   SecureQueue* q = get(msg);
   if(q)
      return q->peek(output, length, stream_offset);
   return 0;
   }
size_t Botan::Output_Buffers::read ( byte  output[],
size_t  length,
Pipe::message_id  msg 
)

Definition at line 17 of file out_buf.cpp.

References q, and Botan::SecureQueue::read().

Referenced by Botan::Pipe::read().

   {
   SecureQueue* q = get(msg);
   if(q)
      return q->read(output, length);
   return 0;
   }

Definition at line 42 of file out_buf.cpp.

References q, and Botan::SecureQueue::size().

Referenced by Botan::Pipe::remaining().

   {
   SecureQueue* q = get(msg);
   if(q)
      return q->size();
   return 0;
   }

Definition at line 77 of file out_buf.cpp.

Referenced by Botan::Pipe::end_msg().

   {
   for(size_t i = 0; i != buffers.size(); ++i)
      if(buffers[i] && buffers[i]->size() == 0)
         {
         delete buffers[i];
         buffers[i] = nullptr;
         }

   while(buffers.size() && !buffers[0])
      {
      buffers.pop_front();
      offset = offset + Pipe::message_id(1);
      }
   }

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