SourcePro® API Reference Guide

 
List of all members | Public Member Functions | Related Functions
RWWCharInputStream Class Reference

Handle class for all the wide character input stream implementation classes. More...

#include <rw/stream/RWWCharInputStream.h>

Inheritance diagram for RWWCharInputStream:
RWHandleBase

Public Member Functions

 RWWCharInputStream (RWWCharInputStreamImp *ptr)
 
 RWWCharInputStream (const RWWCharInputStream &handle)
 
RWSize available () const
 
void close ()
 
bool isBad () const
 
bool isEof () const
 
bool isFail () const
 
bool isGood () const
 
RWWCharInputStreamoperator= (const RWWCharInputStream &handle)
 
RWWCharInputStreamoperator>> (RWWCharInputStream &(*pf)(RWWCharInputStream &))
 
RWWCharInputStream operator>> (RWWCharInputStream(*pf)(RWWCharInputStream &))
 
RWWCharInputStreamoperator>> (wchar_t &wcharValue)
 
wchar_t read ()
 
RWSize read (wchar_t *wcharArray, RWSize numWChars)
 
RWSize readUntil (wchar_t *wcharArray, RWSize maxSize, wchar_t delim)
 
RWSize skip (RWSize numUnits)
 
- Public Member Functions inherited from RWHandleBase
bool isValid (void) const
 
bool operator!= (const RWHandleBase &second) const
 
bool operator< (const RWHandleBase &second) const
 
bool operator== (const RWHandleBase &second) const
 

Related Functions

(Note that these are not member functions.)

RWWCharInputStreamrwDisc (RWWCharInputStream &stream)
 
RWWCharInputStream rwGuard (RWWCharInputStream &stream)
 

Additional Inherited Members

- Protected Member Functions inherited from RWHandleBase
 RWHandleBase (void)
 
 RWHandleBase (RWStaticCtor)
 
 RWHandleBase (RWBodyBase *body)
 
 RWHandleBase (const RWHandleBase &second)
 
 ~RWHandleBase (void)
 
RWBodyBasebody (void) const
 
RWHandleBaseoperator= (const RWHandleBase &second)
 

Detailed Description

Handle class for all the wide character input stream implementation classes. Implements the handle idiom from the handle-body pattern.

Constructor & Destructor Documentation

RWWCharInputStream::RWWCharInputStream ( RWWCharInputStreamImp ptr)
inlineexplicit

Constructor.

RWWCharInputStream::RWWCharInputStream ( const RWWCharInputStream handle)
inline

Copy constructor.

Parameters
handleA wide character stream handle used to initialize the newly created handle.

Member Function Documentation

RWSize RWWCharInputStream::available ( ) const
inline

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

void RWWCharInputStream::close ( void  )
inline

Closes the stream.

bool RWWCharInputStream::isBad ( ) const
inline

Returns true to indicate a loss of integrity resulting from an input operation, such as an irrecoverable read error from a file. Throws no exceptions.

bool RWWCharInputStream::isEof ( ) const
inline

Returns true to indicate that an input operation reached the end of an input sequence. Throws no exceptions.

bool RWWCharInputStream::isFail ( ) const
inline

Returns true to indicate that an input operation failed to read the expected data. Throws no exceptions.

bool RWWCharInputStream::isGood ( ) const
inline

Returns true to indicate a stream in a valid state. Throws no exceptions.

RWWCharInputStream& RWWCharInputStream::operator= ( const RWWCharInputStream handle)
inline

Assignment operator. Throws no exceptions.

Parameters
handleA wide character stream handle used to initialize this handle.
RWWCharInputStream& RWWCharInputStream::operator>> ( RWWCharInputStream &(*)(RWWCharInputStream &)  pf)
inline

Extractor executing a manipulator function.

Parameters
pfThe manipulator's function pointer.
RWWCharInputStream RWWCharInputStream::operator>> ( RWWCharInputStream(*)(RWWCharInputStream &)  pf)
inline

Extractor executing a manipulator function.

Parameters
pfThe manipulator's function pointer.
RWWCharInputStream& RWWCharInputStream::operator>> ( wchar_t &  wcharValue)
inline

Reads a single wide character from the stream.

Parameters
wcharValueThe wide character to be read from the stream.
wchar_t RWWCharInputStream::read ( void  )
inline

Reads a single wide character from the stream.

RWSize RWWCharInputStream::read ( wchar_t *  wcharArray,
RWSize  numWChars 
)
inline

Reads an array of wide characters from the stream. The array must be pre-allocated to contain at least numWChars elements. The function returns the actual number of wide characters extracted from the stream.

Parameters
wcharArrayA pointer to the first element of the array.
numWCharsThe number of wide characters to be read from the stream.
RWSize RWWCharInputStream::readUntil ( wchar_t *  wcharArray,
RWSize  maxSize,
wchar_t  delim 
)
inline

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

Parameters
wcharArrayA pointer to the array receiving the wide characters extracted from the stream.
maxSizeThe maximum number of wide characters to be read.
delimThe wide character used as a delimiter.
RWSize RWWCharInputStream::skip ( RWSize  numUnits)
inline

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

Parameters
numUnitsThe number of wide characters to be skipped.

Friends And Related Function Documentation

RWWCharInputStream & rwDisc ( RWWCharInputStream stream)
related

Manipulator that discards a narrow character from a stream input sequence.

Parameters
streamThe wide character stream.
RWWCharInputStream rwGuard ( RWWCharInputStream stream)
related
Header File
#include <rw/stream/RWGuardedWCharInputStreamImp.h>

Manipulator that is used to guard a series of extraction operations.

Parameters
streamA wide character input stream.

A rwGuard() manipulator creates a temporary guarded stream that locks the internal mutex of the preceding synchronized stream. In this way, any extractions following the manipulator within the statement will be atomic, that is, uninterrupted by any other threads. Note that if the preceding stream is not a synchronized stream, the rwGuard() manipulator has no effect.

// Lock the stream for the duration of all three insertions:
instr >> rwGuard >> data1 >> data2 >> data3;

Copyright © 2023 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved.