SourcePro® API Reference Guide

 
List of all members | Public Member Functions
RWbistream Class Reference

Restores variables stored in binary format by RWbostream. More...

#include <rw/bstream.h>

Inheritance diagram for RWbistream:
RWvistream RWvios RWeistream

Public Member Functions

 RWbistream (std::istream &str)
 
 RWbistream (std::streambuf *sb)
 
virtual int bad ()
 
virtual void clear (int v=0)
 
virtual int eof ()
 
virtual int fail ()
 
virtual int get ()
 
virtual RWvistreamget (char &c)
 
virtual RWvistreamget (signed char &c)
 
virtual RWvistreamget (unsigned char &c)
 
virtual RWvistreamget (wchar_t &wc)
 
virtual RWvistreamget (bool &b)
 
virtual RWvistreamget (short &i)
 
virtual RWvistreamget (unsigned short &i)
 
virtual RWvistreamget (int &i)
 
virtual RWvistreamget (unsigned int &i)
 
virtual RWvistreamget (long &i)
 
virtual RWvistreamget (unsigned long &i)
 
virtual RWvistreamget (long long &i)
 
virtual RWvistreamget (unsigned long long &i)
 
virtual RWvistreamget (float &f)
 
virtual RWvistreamget (double &d)
 
virtual RWvistreamget (long double &d)
 
virtual RWvistreamget (char *v, size_t n)
 
virtual RWvistreamget (signed char *v, size_t n)
 
virtual RWvistreamget (unsigned char *v, size_t n)
 
virtual RWvistreamget (wchar_t *v, size_t n)
 
virtual RWvistreamget (bool *, size_t n)
 
virtual RWvistreamget (short *v, size_t n)
 
virtual RWvistreamget (unsigned short *v, size_t n)
 
virtual RWvistreamget (int *v, size_t n)
 
virtual RWvistreamget (unsigned int *v, size_t n)
 
virtual RWvistreamget (long *v, size_t n)
 
virtual RWvistreamget (unsigned long *v, size_t n)
 
virtual RWvistreamget (long long *v, size_t n)
 
virtual RWvistreamget (unsigned long long *v, size_t n)
 
virtual RWvistreamget (float *v, size_t n)
 
virtual RWvistreamget (double *v, size_t n)
 
virtual RWvistreamget (long double *, size_t n)
 
virtual RWvistreamgetChar (char &c)
 
virtual RWvistreamgetChar (signed char &c)
 
virtual RWvistreamgetChar (unsigned char &c)
 
virtual RWvistreamgetChar (wchar_t &wc)
 
virtual RWvistreamgetChars (char *s, size_t n)
 
virtual RWvistreamgetSizeT (size_t &sz)
 
virtual RWvistreamgetString (char *s, size_t n)
 
virtual int good ()
 
virtual int rdstate ()
 
- Public Member Functions inherited from RWvistream
virtual ~RWvistream ()
 
void version (unsigned v)
 
unsigned version () const
 
- Public Member Functions inherited from RWvios
 operator void * ()
 

Additional Inherited Members

Detailed Description

Class RWbistream specializes the abstract base class RWvistream to restore variables stored in binary format by RWbostream.

You can think of it as a binary veneer over an associated std::streambuf. Because the RWbistream retains no information about the state of its associated std::streambuf, its use can be freely exchanged with other users of the std::streambuf (such as an std::istream or std::ifstream).

RWbistream can be interrogated as to the stream state using member functions good(), bad(), eof(), and so on.

Synopsis
#include <rw/bstream.h>
RWbistream bstr(std::cin); // Construct an RWbistream using cin's streambuf
Persistence
None
Example
#include <iostream>
#include <fstream>
#include <rw/bstream.h>
int main()
{
// Open an input file
std::ifstream fstr("data.dat");
// Construct RWbistream from it
RWbistream bstr(fstr);
int i;
float f;
double d;
// Restore an int that was stored in binary
if(!(bstr >> i))
{
std::cout << "Run bostream.exe first!\n";
}
else
{
// Restore a float & double
bstr >> f >> d;
std::cout << "The integer: " << i << std::endl;
std::cout << "The float: " << f << std::endl;
std::cout << "The double: " << d << std::endl;
}
return 0;
}

Program output:

An integer, a float and a double sent out on an RWbostream!

Constructor & Destructor Documentation

RWbistream::RWbistream ( std::istream &  str)

Constructs an RWbistream using the std::streambuf associated with the std::istream str. For DOS, the std::streambuf must have been opened in binary mode.

RWbistream::RWbistream ( std::streambuf *  sb)

Constructs an RWbistream from the std::streambuf sb. For DOS, this std::streambuf must have been opened in binary mode.

Member Function Documentation

virtual int RWbistream::bad ( )
inlinevirtual

Returns a nonzero integer if the bad bit has been set. Normally this indicates that a severe error has occurred from which recovery is probably impossible.

Implements RWvistream.

virtual void RWbistream::clear ( int  v = 0)
inlinevirtual

Sets the current error state to v. If v is zero, then this clears the error state.

Implements RWvistream.

virtual int RWbistream::eof ( )
inlinevirtual

Returns a nonzero integer if an EOF is encountered.

Implements RWvistream.

virtual int RWbistream::fail ( )
inlinevirtual

Returns a nonzero integer if the failed or bad bit has been set. Normally, this indicates that some storage or retrieval has failed, but that the stream is still in a usable state.

Implements RWvistream.

virtual int RWbistream::get ( )
virtual

Gets and returns the next byte from the input stream, returning its value. Returns EOF if end of file is encountered.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( char &  c)
virtual

Gets the next char from the input stream, returning its value in c.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( signed char &  c)
virtual

Gets the next signed char from the input stream, returning its value in c.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( unsigned char &  c)
virtual

Gets the next unsigned char from the input stream, returning its value in c.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( wchar_t &  wc)
virtual

Gets the next wchar_t from the input stream, returning its value in wc.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( bool &  b)
virtual

Gets the next bool from the input stream, returning its value in b.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( short &  i)
virtual

Gets the next short from the input stream, returning its value in i.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( unsigned short &  i)
virtual

Gets the next unsigned short from the input stream, returning its value in i.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( int &  i)
virtual

Gets the next int from the input stream, returning its value in i.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( unsigned int &  i)
virtual

Gets the next unsigned int from the input stream, returning its value in i.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( long &  i)
virtual

Gets the next long from the input stream, returning its value in i.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( unsigned long &  i)
virtual

Gets the next unsigned long from the input stream, returning its value in i.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( long long &  i)
virtual

Gets the next long long from the input stream, returning its value in i.

Note
This operator function is available only if your compiler supports the long long type.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( unsigned long long &  i)
virtual

Gets the next unsigned long long from the input stream, returning its value in i.

Note
This operator function is available only if your compiler supports the unsigned long long type.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( float &  f)
virtual

Gets the next float from the input stream, returning its value in f.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( double &  d)
virtual

Gets the next double from the input stream, returning its value in d.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( long double &  d)
virtual

Gets the next long double from the input stream, returning its value in d.

Note
This operator function is available only if your compiler supports the long double type.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( char *  v,
size_t  n 
)
virtual

Gets a vector of n char and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Note
This method retrieves raw characters and does not perform any conversions on special characters such as '\n'.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( signed char *  v,
size_t  n 
)
virtual

Gets a vector of n signed char and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( unsigned char *  v,
size_t  n 
)
virtual

Gets a vector of n unsigned char and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( wchar_t *  v,
size_t  n 
)
virtual

Gets a vector of n wchar_t and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Note
This method retrieves raw characters and does not perform any conversions on special characters such as L'\n'.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( bool *  v,
size_t  n 
)
virtual

Gets a vector of n bool and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( short *  v,
size_t  n 
)
virtual

Gets a vector of n short and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( unsigned short *  v,
size_t  n 
)
virtual

Gets a vector of n unsigned short and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( int *  v,
size_t  n 
)
virtual

Gets a vector of n int and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( unsigned int *  v,
size_t  n 
)
virtual

Gets a vector of n unsigned int and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( long *  v,
size_t  n 
)
virtual

Gets a vector of n long and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( unsigned long *  v,
size_t  n 
)
virtual

Gets a vector of n unsigned long and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( long long *  v,
size_t  n 
)
virtual

Gets a vector of n long long and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Note
This operator function is available only if your compiler supports the long long type.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( unsigned long long *  v,
size_t  n 
)
virtual

Gets a vector of n unsigned long long and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Note
This operator function is available only if your compiler supports the unsigned long long type.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( float *  v,
size_t  n 
)
virtual

Gets a vector of n float and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( double *  v,
size_t  n 
)
virtual

Gets a vector of n double and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::get ( long double *  v,
size_t  n 
)
virtual

Gets a vector of n long double and stores them in the array beginning at v. If the restore operation stops prematurely because there is no more data available on the stream, because an exception is thrown, or for some other reason, stores what has already been retrieved from the stream into v, and sets the failbit.

Note
This operator function is available only if your compiler supports the long double type.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::getChar ( char &  c)
virtual

Gets the next char from the input stream, returning its value in c. c is treated as a character.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::getChar ( signed char &  c)
virtual

Gets the next signed char from the input stream, returning its value in c. c is treated as a character.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::getChar ( unsigned char &  c)
virtual

Gets the next unsigned char from the input stream, returning its value in c. c is treated as a character.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::getChar ( wchar_t &  wc)
virtual

Gets the next wchar_t from the input stream, returning its value in wc. wc is treated as a character.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::getChars ( char *  s,
size_t  n 
)
virtual

Restores n char from the input stream into the array beginning at s. The function stops reading after n char. The resulting buffer is not null terminated.

Reimplemented from RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::getSizeT ( size_t &  sz)
virtual

Gets the next size_t value from the input stream, returning its value in sz.

Implements RWvistream.

Reimplemented in RWeistream.

virtual RWvistream& RWbistream::getString ( char *  s,
size_t  n 
)
virtual

Restores a character string from the input stream that has been stored to the output stream using RWvostream::putString(), then saves 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 sets the failbit of the stream. In either case, the string is terminated with a null byte.

Implements RWvistream.

Reimplemented in RWeistream.

virtual int RWbistream::good ( )
inlinevirtual

Returns a nonzero integer if no error bits have been set.

Implements RWvistream.

virtual int RWbistream::rdstate ( )
inlinevirtual

Returns the current error state.

Implements RWvistream.

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