Understanding Virtual Streams

A virtual stream is a data sink or source. Virtual streams are extensions of the C++ stream abstraction, an abstract interface that hides the details of data transmission.

Rogue Wave’s Essential Tools Module includes several virtual streams classes, each suited for a different task:

Portable ASCII (RWpistream and RWpostream)

Use these classes for transmitting data between different operating systems.

Binary (RWbistream and RWbostream)

Use these classes for single-platform binary formatting.

Endian (RWeistream and RWeostream)

Use these classes for endian byte ordering.

XDR (RWXDRostream and RWXDRistream)

Use these classes for Sun Microsystem’s XDR formatting.

Standard C++ Library streambufs are the source and sink of bytes for a virtual stream. When an application uses an RWPortalStreambuf, the virtual stream uses a Networking package communications channel as the source or sink of bytes. By using a virtual output stream on one end of a connection and a virtual input stream on the other end of the connection, you can transmit objects across the communications channel.

All virtual streams use operators << and >> to read and write data to and from streams. For more information about virtual streams, see the Essential Tools Module.