rwlogo
SourcePro C++ 12.0

SourcePro® C++ API Reference Guide



   SourcePro C++
Documentation Home

RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp > Class Template Reference
[Streams]

Implements a buffer that can be used with any kind of input stream. More...

#include <rw/stream/RWTInputStreamBufferImp.h>

List of all members.

Public Types

typedef InputStream RWInputStream_type
typedef InputStream::element_type element_type

Public Member Functions

virtual ~RWTInputStreamBufferImp ()
virtual bool isEof () const
virtual bool isBad () const
virtual bool isFail () const
virtual bool isGood () const
virtual element_type read ()
virtual RWSize read (element_type *array, RWSize num)
virtual RWSize readUntil (element_type *array, RWSize maxSize, element_type delim)
virtual RWSize available () const
virtual RWSize skip (RWSize numUnits)

Static Public Member Functions

static InputStream make (const InputStream &sourceStream)
static InputStream make (const InputStream &sourceStream, RWSize bufSize)
static InputStream make (const InputStream &sourceStream, element_type *buffer, RWSize bufSize)

Protected Member Functions

 RWTInputStreamBufferImp (const InputStream &sourceStream)
 RWTInputStreamBufferImp (const InputStream &sourceStream, RWSize bufSize)
 RWTInputStreamBufferImp (const InputStream &sourceStream, element_type *buffer, RWSize bufSize)
element_typeeback () const
element_typegptr () const
element_typeegptr () const
element_typeebuf () const
void setg (element_type *gbeg_arg, element_type *gcur_arg, element_type *gend_arg)
void setBufferEnd (element_type *gend_arg)
void gbump (RWSize n)
void freeBuffer ()
bool underflow ()

Detailed Description

template<class InputStream, class FilteredInputStreamImp>
class RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >

The class RWTInputStreamBufferImp implements a buffer that can be used with any kind of input stream. The size of the buffer is specified in its static member make() function, which is used to create it.


Member Typedef Documentation

template<class InputStream, class FilteredInputStreamImp>
typedef InputStream::element_type RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::element_type

A typedef for the type of element to be read from RWInputStream_type.

template<class InputStream, class FilteredInputStreamImp>
typedef InputStream RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::RWInputStream_type

A typedef for the template parameter InputStream which will be used as the source of elements.


Constructor & Destructor Documentation

template<class InputStream, class FilteredInputStreamImp>
virtual RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::~RWTInputStreamBufferImp (  )  [virtual]

Destructor.

template<class InputStream, class FilteredInputStreamImp>
RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::RWTInputStreamBufferImp ( const InputStream &  sourceStream  )  [protected]

Initializes the reference to the input stream that will be used as the source of elements, as well as the internal buffer capacity, which will be equal to RW_STREAM_BUFFER_SIZE.

Parameters:
sourceStream The input stream that will serve as the source of elements.
template<class InputStream, class FilteredInputStreamImp>
RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::RWTInputStreamBufferImp ( const InputStream &  sourceStream,
RWSize  bufSize 
) [protected]

Initializes the reference to the input stream that will be used as the source of elements, as well as the buffer capacity.

Parameters:
sourceStream The input stream that will serve as the source of elements.
bufSize The buffer capacity in number of elements.
template<class InputStream, class FilteredInputStreamImp>
RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::RWTInputStreamBufferImp ( const InputStream &  sourceStream,
element_type buffer,
RWSize  bufSize 
) [protected]

Initializes the reference to the input stream that will be used as the source of elements, as well as the internal buffer.

Parameters:
sourceStream The input stream that will serve as the source of elements.
buffer A pre-allocated buffer of size bufSize to be used internally by the constructed RWTInputStreamBufferImp object.
bufSize The buffer capacity in number of elements.

Member Function Documentation

template<class InputStream, class FilteredInputStreamImp>
virtual RWSize RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::available (  )  const [virtual]

Returns the number of elements that can be read from the stream without blocking. Throws no exceptions.

template<class InputStream, class FilteredInputStreamImp>
element_type* RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::eback (  )  const [inline, protected]

Returns a pointer to the buffer first element. Throws no exceptions.

template<class InputStream, class FilteredInputStreamImp>
element_type* RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::ebuf (  )  const [inline, protected]

Returns a pointer one position past the end of the buffer. Throws no exceptions.

template<class InputStream, class FilteredInputStreamImp>
element_type* RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::egptr (  )  const [inline, protected]

Returns a pointer one position past the input sequence last element. Throws no exceptions.

template<class InputStream, class FilteredInputStreamImp>
void RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::freeBuffer (  )  [protected]

Frees the memory associated with the internal buffer if necessary. Throws no exceptions.

template<class InputStream, class FilteredInputStreamImp>
void RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::gbump ( RWSize  n  )  [inline, protected]

Moves the current get pointer n positions forward. Throws no exceptions.

Parameters:
n The number of elements the current get pointer should be advanced.
template<class InputStream, class FilteredInputStreamImp>
element_type* RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::gptr (  )  const [inline, protected]

Returns a pointer to the input sequence current position. Throws no exceptions.

template<class InputStream, class FilteredInputStreamImp>
virtual bool RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::isBad (  )  const [virtual]

If the stream is in bad state, then this function returns true, otherwise it returns false. Throws no exceptions.

template<class InputStream, class FilteredInputStreamImp>
virtual bool RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::isEof (  )  const [virtual]

If no character can be obtained from the input sequence, this function returns true, otherwise it returns false. Throws no exceptions.

template<class InputStream, class FilteredInputStreamImp>
virtual bool RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::isFail (  )  const [virtual]

If the stream is in fail state, then this function returns true, otherwise it returns false. Throws no exceptions.

template<class InputStream, class FilteredInputStreamImp>
virtual bool RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::isGood (  )  const [virtual]

If the stream is in fail or bad state, then this function returns false, otherwise it returns true. Throws no exceptions.

template<class InputStream, class FilteredInputStreamImp>
static InputStream RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::make ( const InputStream &  sourceStream,
element_type buffer,
RWSize  bufSize 
) [inline, static]

Constructs an RWTInputStreamBufferImp instance that uses sourceStream as its source of elements, and returns a handle to it. The internal buffer is initialized using the pre-allocated element's array of size bufSize.

Parameters:
sourceStream The input stream that will serve as the source of elements.
buffer A pre-allocated buffer of size bufSize to be used internally by the constructed RWTInputStreamBufferImp object.
bufSize The buffer capacity in number of elements.
template<class InputStream, class FilteredInputStreamImp>
static InputStream RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::make ( const InputStream &  sourceStream,
RWSize  bufSize 
) [inline, static]

Constructs an RWTInputStreamBufferImp instance that uses sourceStream as its source of elements, and returns a handle to it. The internal buffer is dynamically allocated to be of size bufSize.

Parameters:
sourceStream The input stream that will serve as the source of elements.
bufSize The buffer capacity in number of elements.

Reimplemented in RWBufferedCharInputStreamImp.

template<class InputStream, class FilteredInputStreamImp>
static InputStream RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::make ( const InputStream &  sourceStream  )  [inline, static]

Constructs an RWTInputStreamBufferImp instance that uses sourceStream as its source of elements, and returns a handle to it. The internal buffer is dynamically allocated to be of size RW_STREAM_BUFFER_SIZE.

Parameters:
sourceStream The input stream that will serve as the source of elements

Reimplemented in RWBufferedCharInputStreamImp.

template<class InputStream, class FilteredInputStreamImp>
virtual RWSize RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::read ( element_type array,
RWSize  num 
) [virtual]

Reads an array of elements. The function returns the actual number of elements read.

Parameters:
array A pointer to the first element of the array. The array must have been pre-allocated to contain at least num elements.
num The number of elements to be read from the stream.
template<class InputStream, class FilteredInputStreamImp>
virtual element_type RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::read (  )  [virtual]

Reads a single element.

template<class InputStream, class FilteredInputStreamImp>
virtual RWSize RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::readUntil ( element_type array,
RWSize  maxSize,
element_type  delim 
) [virtual]

Reads elements until the last element read is equal to delim, or maxSize elements have been read, or the end of the input sequence is reached. The elements read are stored in array. The function returns the actual number of elements read from the stream.

Parameters:
array A pointer to the array receiving the elements extracted from the stream.
maxSize The maximum number of elements to be read.
delim The element value used as a delimiter.
template<class InputStream, class FilteredInputStreamImp>
void RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::setBufferEnd ( element_type gend_arg  )  [inline, protected]

Sets the buffer's end pointer. Throws no exceptions.

Parameters:
gend_arg The value to be set in bufEnd_.
template<class InputStream, class FilteredInputStreamImp>
void RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::setg ( element_type gbeg_arg,
element_type gcur_arg,
element_type gend_arg 
) [inline, protected]

Sets the buffer's pointers. Throws no exceptions.

Parameters:
gbeg_arg The value to be set in gbeg_.
gcur_arg The value to be set in gnext_.
gend_arg The value to be set in gend_.
template<class InputStream, class FilteredInputStreamImp>
virtual RWSize RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::skip ( RWSize  numUnits  )  [virtual]

Skips numUnits elements from the input sequence if possible. The function returns the actual number of elements skipped, which can be any value between 0 and numUnits.

Parameters:
numUnits The number of elements to be skipped.
template<class InputStream, class FilteredInputStreamImp>
bool RWTInputStreamBufferImp< InputStream, FilteredInputStreamImp >::underflow (  )  [protected]

Fills up the buffer. Returns true if there are elements available, otherwise returns false. Throws no exceptions.

 All Classes Functions Variables Typedefs Enumerations Enumerator Friends

© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.