Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Essential Tools Module Reference Guide

RWvostream

Module:  Essential Tools Module   Group:  Virtual Stream


RWvostreamRWvios

Local Index

Members

Non-Members

Synopsis

#include <rw/vstream.h>

Description

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 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 (such as 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.

Note that there is no need to separate variables with whitespace. It is the responsibility of the derived class to delineate variables with whitespace, packet breaks, or whatever might be appropriate for the final output sink. The model is one where 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.

Persistence

None

Example

Public Destructor

virtual ~RWvostream();

Public Operators

virtual RWvostream&
operator<<(const char* s) = 0; 
virtual RWvostream&
operator<<(const wchar_t* ws) = 0;
virtual RWvostream&
operator<<(char c) = 0;
virtual RWvostream&
operator<<(wchar_t wc) = 0;
virtual RWvostream&
operator<<(unsigned char c) = 0;
virtual RWvostream&
operator<<(double d) = 0;
virtual RWvostream&
operator<<(long double d) = 0;
virtual RWvostream&
operator<<(float f) = 0;
virtual RWvostream&
operator<<(int i) = 0;
virtual RWvostream&
operator<<(unsigned int i) = 0;
virtual RWvostream&
operator<<(long l) = 0;
virtual RWvostream&
operator<<(long long l) = 0;
virtual RWvostream&
operator<<(unsigned long l) = 0;
virtual RWvostream&
operator<<(unsigned long long l) = 0;
virtual RWvostream&
operator<<(short s) = 0;
virtual RWvostream&
operator<<(unsigned short s) = 0;
operator void*();

Public Member Functions

virtual RWvostream&
flush();
virtual RWvostream&
put(char c) = 0; 
virtual RWvostream&
put(wchar_t wc) = 0;
virtual RWvostream&
put(unsigned char c) = 0;
virtual RWvostream&
put(const char* p, size_t N) = 0;
virtual RWvostream&
put(const wchar_t* p, size_t N) = 0; 
virtual RWvostream&
put(const unsigned char* p, size_t N) = 0;
virtual RWvostream&
put(const short* p, size_t N) = 0;
virtual RWvostream&
put(const unsigned short* p, size_t N) = 0;
virtual RWvostream&
put(const int* p, size_t N) = 0;
virtual RWvostream&
put(const unsigned int* p, size_t N) = 0;
virtual RWvostream&
put(const long* p, size_t N) = 0;
virtual RWvostream&
put(const long long* p, size_t N) = 0;
virtual RWvostream&
put(const unsigned long* p, size_t N) = 0;
virtual RWvostream&
put(const unsigned long long* p, size_t N) = 0;
virtual RWvostream&
put(const float* p, size_t N) = 0;
virtual RWvostream&
put(const double* p, size_t N) = 0;
virtual RWvostream&
put(const long double* p, size_t N) = 0;
virtual RWvostream&
putString(const char*s, size_t N); 

Related Global Operators

RWvostream&
operator<<(RWvostream&, const RWCString& str);
RWvostream&
operator<<(RWvostream&, const RWInteger& x);
RWvostream&
operator<<(RWvostream&, const RWTime& t);
RWvostream&
operator<< (RWvostream& strm, const RWTPtrDeque<T,A>& coll);
RWvostream&
operator<<(RWvostream& strm, const RWTPtrDlist<T,A>& coll); 
RWvostream&
operator<<(RWvostream& strm, const RWTPtrHashMap<K,T,H,EQ,A>& coll);
RWvostream&
operator<<(RWvostream& strm, 
           const RWTPtrHashMultiMap<K,T,H,EQ,A>& coll);
RWvostream&
operator<<(RWvostream& strm, 
           const RWTPtrHashMultiSet<T,H,EQ,A>& coll);
RWvostream&
operator<<(RWvostream& strm, 
           const RWTPtrHashSet<T,H,EQ,A>  & coll);
RWvostream&
operator<<(RWvostream& strm, const RWTPtrMap<K,T,C,A>& coll); 
RWvostream&
operator<<(RWvostream& strm, 
          const RWTPtrMultiMap<K,T,C,A>& coll);
RWvostream&
operator<<(RWvostream& strm, 
           const RWTPtrMultiSet<T,C,A>& coll); 
RWvostream&
operator<<(RWvostream& strm, 
           const RWTPtrOrderedVector<T,A> RWTPtrOrderedVector<T,A> & coll); 
RWvostream&
operator<<(RWFile& strm, const RWTPtrSet<T,C,A>& coll);
RWvostream&
operator<<(RWvostream& strm, const RWTPtrSlist<T,A>& coll); 
RWvostream&
operator<<(RWvostream& strm, 
           const RWTPtrSortedDlist<T,C,A>& coll);
RWvostream&
operator<<(RWvostream& strm, 
           const RWTPtrSortedVector<T,C,A> & coll);
RWvostream&
operator<<(RWvostream& strm, const RWTValDeque<T,A>& coll);
RWvostream&
operator<<(RWvostream& strm, const RWTValDlist<T,A>& coll);
RWvostream&
operator<<(RWvostream& strm, 
           const RWTValHashMap<T,H,EQ>& coll);
RWvostream&
operator<<(RWvostream& strm, 
           const RWTValHashMultiMap<K,T,H,EQ,A>& coll);
RWvostream&
operator<<(RWvostream& strm, 
           const RWTValHashMultiSet<T,H,EQ,A>& coll);
RWvostream&
operator<<(RWvostream& strm, 
           const RWTValHashSet<T,H,EQ,A>& coll);
RWvostream&
operator<<(RWvostream& strm, const RWTValMap<K,T,C,A>& coll);
RWvostream&
operator<<(RWvostream& strm, 
           const RWTValMultiMap<K,T,C,A>& coll);
RWvostream&
operator<<(RWvostream& strm, 
           const RWTValMultiSet<T,C,A>& coll);
RWvostream&
operator<<(RWvostream& strm, 
           const RWTValOrderedVector<T,A>& coll);
RWvostream&
operator<<(RWvostream& strm, const RWTValSet<T,C,A>& coll);
RWvostream&
operator<<(RWvostream& strm, const RWTValSlist<T,A>& coll);
RWvostream&
operator<<(RWvostream& strm,
           const RWTValSortedDlist<T,C,A>& coll);
RWvostream&
operator<<(RWvostream& strm, 
           const RWTValSortedVector<T,C,A>& coll);


Previous fileTop of DocumentContentsIndex pageNext file

©2004 Copyright Quovadx, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Quovadx, 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.