RWvistream(3C++) RWvistream(3C++)
NameRWvistream - Rogue Wave library class
Synopsis
#include <rw/vstream.h>
Description
Class RWvistream is an abstract base class. It provides an interface for
format-independent retrieval of fundamental types and arrays of
fundamental types. Its counterpart, RWvostream, provides a complementary
interface for the storage of the fundamental types. Because the interface
of RWvistream and RWvostream is independent of formatting, the user of
these classes need not be concerned with how variables will actually be
stored or restored. That will be up to the derived class to decide. It
might be done using an operating-system independent ASCII format (classes
RWpistream and RWpostream), a binary format (classes RWbistream and
RWbostream), or the user could define his or her own format (e.g., an
interface to a network). Note that because it is an abstract base class,
there is no way to actually enforce these goals -- the description here
is merely the model of how a class derived from RWvistream and RWvostream
should act. See class RWvostream for additional explanations and
examples of format-independent stream storage.
Persistence
None
Example
#include <rw/vstream.h>
void restoreStuff( RWvistream& str) {
int i;
double d;
char string[80];
str >> i; // Restore an int
str >> d; // Restore a double
// Restore a character string, up to 80 characters long:
str.getString(string, sizeof(string));
if(str.fail()) cerr << "Oh, oh, bad news.0;
Public Destructor
}
virtual ~RWvistream();
Page 1
RWvistream(3C++) RWvistream(3C++)
This virtual destructor allows specializing classes to deallocate any
resources that they may have allocated.
Public Operators
virtual RWvistream&
operator>>(char& c) = 0;
Get the next char from the input stream and store it in c.
virtual RWvistream&
operator>>(wchar_t& wc) = 0;
Get the next wchar_t from the input stream and store it in wc.
virtual RWvistream&
operator>>(double& d) = 0;
Get the next double from the input stream and store it in d.
virtual RWvistream&
operator>>(float& f) = 0;
Get the next float from the input stream and store it in f.
virtual RWvistream&
operator>>(int& i) = 0;
Get the next int from the input stream and store it in i.
virtual RWvistream&
operator>>(long& l) = 0;
Get the next long from the input stream and store it in l.
virtual RWvistream&
operator>>(short& s) = 0;
Get the next short from the input stream and store it in s.
virtual RWvistream&
operator>>(unsigned char& c) = 0;
Page 2
RWvistream(3C++) RWvistream(3C++)
Get the next unsigned char from the input stream and store it in c.
virtual RWvistream&
operator>>(unsigned short& s) = 0;
Get the next unsigned short from the input stream and store it in s.
virtual RWvistream&
operator>>(unsigned int& i) = 0;
Get the next unsigned int from the input stream and store it in i.
virtual RWvistream&
operator>>(unsigned long& l) = 0;
Get the next unsigned long from the input stream and store it in l.
operator void*();
Inherited from RWvios.
Public Member Functions
virtual int
get() = 0;
Get and return the next byte from the input stream, returning its value.
Returns EOF if end of file is encountered.
virtual RWvistream&
get(char& c) = 0;
Get the next char from the input stream, returning its value in c.
virtual RWvistream&
get(wchar_t& wc) = 0;
Get the next wchar_t from the input stream, returning its value in wc.
virtual RWvistream&
get(unsigned char& c) = 0;
Get the next unsigned char from the input stream, returning its value in
c.
Page 3
RWvistream(3C++) RWvistream(3C++)
virtual RWvistream&
get(char* v, size_t N) = 0;
Get a vector of chars and store them in the array beginning at v. If the
restore operation stops prematurely because there are no more data
available on the stream, because an exception is thrown, or for some
other reason, get stores what has already been retrieved from the stream
into v, and sets the failbit. Note that get retrieves raw characters and
does not perform any conversions on speical characters such as "0.
virtual RWvistream&
get(wchar_t* v, size_t N) = 0;
Get a vector of wide characterss and store them in the array beginning at
v. If the restore operation stops prematurely because there are no more
data available on the stream, because an exception is thrown, or for some
other reason, get stores what has already been retrieved from the stream
into v, and sets the failbit. Note that get retrieves raw characters and
does not perform any conversions on speical characters such as "0.
virtual RWvistream&
get(double* v, size_t N) = 0;
Get a vector of N doubles and store them in the array beginning at v. If
the restore operation stops prematurely because there are no more data
available on the stream, because an exception is thrown, or for some
other reason, get stores what has already been retrieved from the stream
into v, and sets the failbit.
virtual RWvistream&
get(float* v, size_t N) = 0;
Get a vector of N floats and store them in the array beginning at v. If
the restore operation stops prematurely because there are no more data
available on the stream, because an exception is thrown, or for some
other reason, get stores what has already been retrieved from the stream
into v, and sets the failbit.
virtual RWvistream&
get(int* v, size_t N) = 0;
Get a vector of N ints and store them in the array beginning at v. If the
restore operation stops prematurely because there are no more data
available on the stream, because an exception is thrown, or for some
other reason, get stores what has already been retrieved from the stream
into v, and sets the failbit.
Page 4
RWvistream(3C++) RWvistream(3C++)
virtual RWvistream&
get(long* v, size_t N) = 0;
Get a vector of N longs and store them in the array beginning at v. If
the restore operation stops prematurely because there are no more data
available on the stream, because an exception is thrown, or for some
other reason,get stores what has already been retrieved from the stream
into v, and sets the failbit.
virtual RWvistream&
get(short* v, size_t N) = 0;
Get a vector of N shorts and store them in the array beginning at v. If
the restore operation stops prematurely because there are no more data
available on the stream, because an exception is thrown, or for some
other reason,get stores what has already been retrieved from the stream
into v, and sets the failbit.
virtual RWvistream&
get(unsigned char* v, size_t N) = 0;
Get a vector of N unsigned chars and store them in the array beginning at
v. If the restore operation stops prematurely because there are no more
data available on the stream, because an exception is thrown, or for some
other reason, get stores what has already been retrieved from the stream
into v, and sets the failbit. Note that this member preserves ASCII
numerical codes, not their corresponding character values. If you wish
to restore a character string, use the function getString(char*, size_t).
virtual RWvistream&
get(unsigned short* v, size_t N) = 0;
Get a vector of N unsigned shorts and store them in the array beginning
at v. If the restore operation stops prematurely because there are no
more data available on the stream, because an exception is thrown, or for
some other reason, get stores what has already been retrieved from the
stream into v, and sets the failbit.
virtual RWvistream&
get(unsigned int* v, size_t N) = 0;
Get a vector of N unsigned ints and store them in the array beginning at
v. If the restore operation stops prematurely because there are no more
data available on the stream, because an exception is thrown, or for some
other reason, get stores what has already been retrieved from the stream
into v, and sets the failbit.
Page 5
RWvistream(3C++) RWvistream(3C++)
virtual RWvistream&
get(unsigned long* v, size_t N) = 0;
Get a vector of N unsigned longs and store them in the array beginning at
v. If the restore operation stops prematurely because there are no more
data available on the stream, because an exception is thrown, or for some
other reason, get stores what has already been retrieved from the stream
into v, and sets the failbit.
virtual RWvistream&
getString(char* s, size_t N) = 0;
Restores a character string from the input stream that was stored to the
output stream with RWvostream::putstring and stores it in the array
beginning at s. The function stops reading at the end of the string or
after N-1 characters, whichever comes first. If N-1 characters have been
read and the Nth character is not the string terminator, then the failbit
of the stream will be set. In either case, the string will be terminated
with a null byte.
virtual RWvistream&
getString(wchar_t* ws, size_t N) = 0;
Restores a wide character string from the input stream that was stored to
the output stream with RWvostream::putstring and stores it in the array
beginning at ws. The function stops reading at the end of the string or
after N-1 characters, whichever comes first. If N-1 characters have been
read and the Nth character is not the string terminator, then the failbit
of the stream will be set. In either case, the string will be terminated
with a null byte.
Page 6