VMime
parserInputStreamAdapter Class Reference
Inheritance diagram for parserInputStreamAdapter:
Collaboration diagram for parserInputStreamAdapter:

Public Member Functions

 parserInputStreamAdapter (shared_ptr< seekableInputStream > stream)
 
shared_ptr< seekableInputStreamgetUnderlyingStream ()
 
bool eof () const
 
void reset ()
 
size_t read (byte_t *const data, const size_t count)
 
void seek (const size_t pos)
 
size_t skip (const size_t count)
 
size_t getPosition () const
 
byte_t peekByte () const
 
byte_t getByte ()
 
template<typename T >
bool matchBytes (const T *bytes, const size_t length) const
 
const string extract (const size_t begin, const size_t end) const
 
template<typename PREDICATE >
size_t skipIf (PREDICATE pred, const size_t endPosition)
 
size_t findNext (const string &token, const size_t startPosition=0)
 
- Public Member Functions inherited from stream
virtual ~stream ()
 
virtual size_t getBlockSize ()
 

Additional Inherited Members

- Protected Member Functions inherited from object
 object ()
 
 object (const object &)
 
objectoperator= (const object &)
 
virtual ~object ()
 

Detailed Description

An adapter class used for parsing from an input stream.

Constructor & Destructor Documentation

parserInputStreamAdapter ( shared_ptr< seekableInputStream stream)
Parameters
streaminput stream to wrap

Member Function Documentation

bool eof ( ) const
virtual

Test for end of stream (no more data to read).

Returns
true if we have reached the end of stream, false otherwise

Implements inputStream.

const string extract ( const size_t  begin,
const size_t  end 
) const
size_t findNext ( const string token,
const size_t  startPosition = 0 
)
byte_t getByte ( )

Get the byte at the current position and advance current position by one byte.

Returns
byte at the current position
size_t getPosition ( ) const
virtual

Returns the current position in this stream.

Returns
the offset from the beginning of the stream, in bytes, at which the next read occurs

Implements seekableInputStream.

shared_ptr< seekableInputStream > getUnderlyingStream ( )
bool matchBytes ( const T *  bytes,
const size_t  length 
) const

Check whether the bytes following the current position match the specified bytes.

Position is not updated.

Parameters
bytesbytes to compare
lengthnumber of bytes
Returns
true if the next bytes match the pattern, false otherwise
byte_t peekByte ( ) const

Get the byte at the current position without updating the current position.

Returns
byte at the current position
size_t read ( byte_t *const  data,
const size_t  count 
)
virtual

Read data from the stream.

Parameters
datawill receive the data read
countmaximum number of bytes to read
Returns
number of bytes read

Implements inputStream.

void reset ( )
virtual

Set the read pointer to the beginning of the stream.

Warning
WARNING: this may not work for all stream types.

Implements inputStream.

void seek ( const size_t  pos)
virtual

Sets the position, measured from the beginning of this stream, at which the next read occurs.

Parameters
posthe offset position, measured in bytes from the beginning of the stream, at which to set the stream pointer.

Implements seekableInputStream.

size_t skip ( const size_t  count)
virtual

Skip a number of bytes.

Parameters
countmaximum number of bytes to ignore
Returns
number of bytes skipped

Implements inputStream.

size_t skipIf ( PREDICATE  pred,
const size_t  endPosition 
)

Skips bytes matching a predicate from the current position.

The current position is updated to the next following byte which does not match the predicate.

Parameters
predpredicate
endPositionstop at this position (or at end of the stream, whichever comes first)
Returns
number of bytes skipped

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