Botan  1.11.15
Public Member Functions
Botan::DataSource Class Reference

#include <data_src.h>

Inheritance diagram for Botan::DataSource:
Botan::DataSource_Memory Botan::DataSource_Stream Botan::Pipe Botan::SecureQueue

List of all members.

Public Member Functions

 DataSource ()
 DataSource (const DataSource &)
size_t discard_next (size_t N)
virtual bool end_of_data () const =0
virtual size_t get_bytes_read () const =0
virtual std::string id () const
DataSourceoperator= (const DataSource &)
virtual size_t peek (byte out[], size_t length, size_t peek_offset) const =0
size_t peek_byte (byte &out) const
virtual size_t read (byte out[], size_t length)=0
size_t read_byte (byte &out)
virtual ~DataSource ()

Detailed Description

This class represents an abstract data source object.

Definition at line 21 of file data_src.h.


Constructor & Destructor Documentation

Definition at line 88 of file data_src.h.

{}
virtual Botan::DataSource::~DataSource ( ) [inline, virtual]

Definition at line 89 of file data_src.h.

{}

Member Function Documentation

size_t Botan::DataSource::discard_next ( size_t  N)

Discard the next N bytes of the data

Parameters:
Nthe number of bytes to discard
Returns:
number of bytes actually discarded

Definition at line 35 of file data_src.cpp.

References n, and read_byte().

   {
   size_t discarded = 0;
   byte dummy;
   for(size_t j = 0; j != n; ++j)
      discarded += read_byte(dummy);
   return discarded;
   }
virtual bool Botan::DataSource::end_of_data ( ) const [pure virtual]

Test whether the source still has data that can be read.

Returns:
true if there is still data to read, false otherwise

Implemented in Botan::Pipe, Botan::DataSource_Stream, Botan::DataSource_Memory, and Botan::SecureQueue.

Referenced by Botan::BER_Decoder::end_cons(), Botan::BER_Decoder::more_items(), Botan::BER_Decoder::verify_end(), and Botan::Pipe::write().

virtual size_t Botan::DataSource::get_bytes_read ( ) const [pure virtual]
Returns:
number of bytes read so far.

Implemented in Botan::Pipe, Botan::DataSource_Stream, Botan::DataSource_Memory, and Botan::SecureQueue.

virtual std::string Botan::DataSource::id ( ) const [inline, virtual]

return the id of this data source

Returns:
std::string representing the id of this data source

Reimplemented in Botan::DataSource_Stream.

Definition at line 58 of file data_src.h.

{ return ""; }
DataSource& Botan::DataSource::operator= ( const DataSource )
virtual size_t Botan::DataSource::peek ( byte  out[],
size_t  length,
size_t  peek_offset 
) const [pure virtual]

Read from the source but do not modify the internal offset. Consecutive calls to peek() will return portions of the source starting at the same position.

Parameters:
outthe byte array to write the output to
lengththe length of the byte array out
peek_offsetthe offset into the stream to read at
Returns:
length in bytes that was actually read and put into out

Implemented in Botan::Pipe, Botan::DataSource_Stream, Botan::DataSource_Memory, and Botan::SecureQueue.

Referenced by Botan::PEM_Code::matches(), and peek_byte().

size_t Botan::DataSource::peek_byte ( byte out) const

Peek at one byte.

Parameters:
outan output byte
Returns:
length in bytes that was actually read and put into out

Definition at line 27 of file data_src.cpp.

References peek().

Referenced by Botan::ASN1::maybe_BER().

   {
   return peek(&out, 1, 0);
   }
virtual size_t Botan::DataSource::read ( byte  out[],
size_t  length 
) [pure virtual]

Read from the source. Moves the internal offset so that every call to read will return a new portion of the source.

Parameters:
outthe byte array to write the result to
lengththe length of the byte array out
Returns:
length in bytes that was actually read and put into out

Implemented in Botan::Pipe, Botan::DataSource_Stream, Botan::DataSource_Memory, and Botan::SecureQueue.

Referenced by Botan::BER_Decoder::get_next_object(), read_byte(), and Botan::Pipe::write().

Read one byte.

Parameters:
outthe byte to read to
Returns:
length in bytes that was actually read and put into out

Definition at line 19 of file data_src.cpp.

References read().

Referenced by Botan::PEM_Code::decode(), discard_next(), Botan::BER_Decoder::discard_remaining(), Botan::PGP_decode(), and Botan::BER_Decoder::raw_bytes().

   {
   return read(&out, 1);
   }

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