RWvostreamRWvios
Member Functions | ||
flush() operator void*() |
operator<<() put() |
putString() |
#include <rw/vstream.h>
Class RWvostream is an abstract base class. It provides an interface for format-independent storage of fundamental types and arrays of fundamental types. Its counterpart, RWvistream, provides a complementary interface for the retrieval of variables of the fundamental types.
Because the interface of RWvistream and RWvostream is independent of formatting, the user of these classes need not care how variables are actually stored or restored. That is determined in the derived class. Storage can be done in three kinds of formats:
an operating-system independent ASCII format (classes RWpistream and RWpostream)
a binary format (classes RWbistream and RWbostream)
a user-defined format (an interface to a network, for example)
Note that because RWvostream 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.
NOTE:There is no need to separate variables with white space.
It is the responsibility of the derived class to delineate variables with white space, packet breaks, or whatever might be appropriate for the final output sink. In this model, variables are inserted into the output stream, either individually or as homogeneous vectors, to be restored in the same order using RWvistream.
Storage and retrieval of characters requires some explanation. Characters can be thought of as either representing some alphanumeric or control character, or as the literal number. Generally, the overloaded insertion << and extraction >> operators seek to store and restore characters, preserving their symbolic meaning; that is, storage of a newline should be restored as a newline, regardless of its representation on the target machine. By contrast, member functions get() and put() should treat the character as a literal number whose value is to be preserved. See also class RWpostream.
#include <rw/vstream.h> void storeStuff( RWvostream& str) { int i = 5; double d = 22.5; char string[] = "A string with \t tabs and a newline\n"; str << i; // Store an int str << d; // Store a double str << string; // Store a string if(str.fail()) cerr << "Oh, oh, bad news.\n"; }
virtual ~RWvostream();
Virtual destructor. Allows specializing classes to deallocate any resources that they allocated.
virtual RWvostream& operator<<(const char* s) = 0;
Stores the character string starting at s to the output stream. The character string is expected to be null terminated.
virtual RWvostream& operator<<(const wchar_t* ws) = 0;
Stores the wide character string starting at ws to the output stream. The character string is expected to be null terminated.
virtual RWvostream& operator<<(char c) = 0;
Stores the char c to the output stream. Note that c is treated as a character, not a number.
virtual RWvostream& operator<<(wchar_t wc) = 0;
Stores the wchar_t wc to the output stream. Note that wc is treated as a character, not a number.
virtual RWvostream& operator<<(unsigned char c) = 0;
Stores the unsigned char c to the output stream. Note that c is treated as a character, not a number.
virtual RWvostream& operator<<(double d) = 0;
Stores the double d to the output stream.
virtual RWvostream& operator<<(float f) = 0;
Stores the float f to the output stream.
virtual RWvostream& operator<<(int i) = 0;
Stores the int i to the output stream.
virtual RWvostream& operator<<(unsigned int i) = 0;
Stores the unsigned int i to the output stream.
virtual RWvostream& operator<<(long l) = 0;
Stores the long l to the output stream.
virtual RWvostream& operator<<(unsigned long l) = 0;
Stores the unsigned long l to the output stream.
virtual RWvostream& operator<<(short s) = 0;
Stores the short s to the output stream.
virtual RWvostream& operator<<(unsigned short s) = 0;
Stores the unsigned short s to the output stream.
operator void*();
Inherited from RWvios.
virtual RWvostream& flush();
Sends the contents of the stream buffer to output immediately.
virtual RWvostream& put(char c) = 0;
Stores the char c to the output stream, preserving its value.
virtual RWvostream& put(wchar_t wc) = 0;
Stores the wchar_t wc to the output stream, preserving its value.
virtual RWvostream& put(unsigned char c) = 0;
Stores the char c to the output stream, preserving its value.
virtual RWvostream& put(const char* p, size_t N) = 0;
Stores the vector of N chars starting at p to the output stream. The chars should be treated as literal numbers, not as a character string.
virtual RWvostream& put(const wchar_t* p, size_t N) = 0;
Stores the vector of N wchar_ts starting at p to the output stream. The chars should be treated as literal numbers, not as a character string.
virtual RWvostream& put(const unsigned char* p, size_t N) = 0;
Stores the vector of N unsigned chars starting at p to the output stream. The chars should be treated as literal numbers, not as a character string.
virtual RWvostream& put(const short* p, size_t N) = 0;
Stores the vector of N shorts starting at p to the output stream.
virtual RWvostream& put(const unsigned short* p, size_t N) = 0;
Stores the vector of N unsigned shorts starting at p to the output stream.
virtual RWvostream& put(const int* p, size_t N) = 0;
Stores the vector of N ints starting at p to the output stream.
virtual RWvostream& put(const unsigned int* p, size_t N) = 0;
Stores the vector of N unsigned ints starting at p to the output stream.
virtual RWvostream& put(const long* p, size_t N) = 0;
Stores the vector of N longs starting at p to the output stream.
virtual RWvostream& put(const unsigned long* p, size_t N) = 0;
Stores the vector of N unsigned longs starting at p to the output stream.
virtual RWvostream& put(const float* p, size_t N) = 0;
Stores the vector of N floats starting at p to the output stream.
virtual RWvostream& put(const double* p, size_t N) = 0;
Stores the vector of N doubles starting at p to the output stream.
virtual RWvostream& putString(const char*s, size_t N);
Stores the character string, including embedded nulls, starting at s to the output string.
RWvostream& operator<<(RWvostream&, const RWCString& str);
Saves string str to a virtual stream or RWFile, respectively.
RWvostream& operator<<(RWvostream&, const RWInteger& x);
RWvostream& operator<<(RWvostream&, const RWTime& t);
RWvostream& operator<< (RWvostream& strm, const RWTPtrDeque<T>& coll); RWvostream& operator<<(RWvostream& strm, const RWTPtrDlist<T>& coll); RWvostream& operator<<(RWvostream& strm, const RWTPtrHashMap<K,T,H,EQ>& coll); RWvostream& operator<<(RWvostream& strm, const RWTPtrHashMultiMap<K,T,H,EQ>& coll); RWvostream& operator<<(RWvostream& strm, const RWTPtrHashMultiSet<T,H,EQ>& coll); RWvostream& operator<<(RWvostream& strm, const RWTPtrHashSet<T,H,EQ>& coll); RWvostream& operator<<(RWvostream& strm, const RWTPtrMap<K,T,C>& coll); RWvostream& operator<<(RWvostream& strm, const RWTPtrMultiMap<K,T,C>& coll); RWvostream& operator<<(RWvostream& strm, const RWTPtrMultiSet<T,C>& coll); RWvostream& operator<<(RWvostream& strm, const RWTPtrOrderedVector<T>& coll); RWvostream& operator<<(RWFile& strm, const RWTPtrSet<T,C>& coll); RWvostream& operator<<(RWvostream& strm, const RWTPtrSlist<T>& coll); RWvostream& operator<<(RWvostream& strm, const RWTPtrSortedDlist<T,C>& coll); RWvostream& operator<<(RWvostream& strm, const RWTPtrSortedVector<T,C>& coll); RWvostream& operator<<(RWvostream& strm, const RWTValDeque<T>& coll); RWvostream& operator<<(RWvostream& strm, const RWTValDlist<T>& coll); RWvostream& operator<<(RWvostream& strm, const RWTValHashMap<T,H,EQ>& coll); RWvostream& operator<<(RWvostream& strm, const RWTValHashMultiMap<K,T,H,EQ>& coll); RWvostream& operator<<(RWvostream& strm, const RWTValHashMultiSet<T,H,EQ>& coll); RWvostream& operator<<(RWvostream& strm, const RWTValHashSet<T,H,EQ>& coll); RWvostream& operator<<(RWvostream& strm, const RWTValMap<K,T,C>& coll); RWvostream& operator<<(RWvostream& strm, const RWTValMultiMap<K,T,C>& coll); RWvostream& operator<<(RWvostream& strm, const RWTValMultiSet<T,C>& coll); RWvostream& operator<<(RWvostream& strm, const RWTValOrderedVector<T>& coll); RWvostream& operator<<(RWvostream& strm, const RWTValSet<T,C>& coll); RWvostream& operator<<(RWvostream& strm, const RWTValSlist<T>& coll); RWvostream& operator<<(RWvostream& strm, const RWTValSortedDlist<T,C>& coll); RWvostream& operator<<(RWvostream& strm, const RWTValSortedVector<T,C>& coll);
Saves the collection coll onto the output stream strm; saves a reference to it if it was already saved.
©Copyright 1999, Rogue Wave Software, Inc.
Send mail to report errors or comment on the documentation.