Avro C++
Public Member Functions | Public Attributes
avro::StreamReader Struct Reference

A convenience class for reading from an InputStream. More...

#include <Stream.hh>

List of all members.

Public Member Functions

 StreamReader ()
 Constructs an empty reader.
 StreamReader (InputStream &in)
 Constructs a reader with the given underlying stream.
void reset (InputStream &is)
 Replaces the current input stream with the given one after backing up the original one if required.
uint8_t read ()
 Read just one byte from the underlying stream.
void readBytes (uint8_t *b, size_t n)
 Reads the given number of bytes from the underlying stream.
void skipBytes (size_t n)
 Skips the given number of bytes.
bool fill ()
 Get as many byes from the underlying stream as possible in a single chunk.
void more ()
 Tries to get more data and if it cannot, throws an exception.
bool hasMore ()
 Returns true if and only if the end of stream is not reached.

Public Attributes

InputStreamin_
 The underlying input stream.
const uint8_t * next_
 The next location to read from.
const uint8_t * end_
 One past the last valid location.

Detailed Description

A convenience class for reading from an InputStream.


Member Function Documentation

bool avro::StreamReader::fill ( ) [inline]

Get as many byes from the underlying stream as possible in a single chunk.

Returns:
true if some data could be obtained. False is no more data is available on the stream.

References end_, in_, avro::InputStream::next(), and next_.

Referenced by hasMore(), and more().

uint8_t avro::StreamReader::read ( ) [inline]

Read just one byte from the underlying stream.

If there are no more data, throws an exception.

References end_, more(), and next_.

void avro::StreamReader::readBytes ( uint8_t *  b,
size_t  n 
) [inline]

Reads the given number of bytes from the underlying stream.

If there are not that many bytes, throws an exception.

References end_, more(), and next_.

void avro::StreamReader::skipBytes ( size_t  n) [inline]

Skips the given number of bytes.

Of there are not so that many bytes, throws an exception.

References end_, in_, next_, and avro::InputStream::skip().


The documentation for this struct was generated from the following file: