Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Advanced Tools Module Reference Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

2.3 Serialization Package

2.3.1 Description

The Serialization package provides a way to flatten objects, so they can be easily transported across communication boundaries or stored to disk. This object serialization mechanism includes two processes:

The classes, macros, and functions in the Serialization package help you to define serializable objects with a minimum of custom code, while retaining control over the formats and policies used. To make your C++ classes serializable, you instrument them with a small set of streaming macros. These macros encapsulate the details associated with streaming protocols, shielding your application from the implementation details but otherwise not affecting your application code. You have a choice of intrusive serialization for your own classes or external serialization for classes that you can't modify, such as classes from a third-party library. The Serialization package also includes a set of utility functions for streaming objects to and from various formats.

For complete information about the Serialization package, see Chapters 4 and 5 of the Advanced Tools Module User's Guide.

2.3.2 Serialization Class Hierarchy

Figure 1 shows the hierarchy of classes for the Serialization package.

Figure 1: Serialization class hierarchy

2.3.3 Index of Serialization Classes and Globals

2.3.3.1 Serialization package global members

Table 1 contains a list of the global members of the Serialization package. See Part II, "Global Reference."

Table 1: Global members of the Serialization package 

Name Description

Serialization Macros

Macros for serialization

rwInsertWithName

Global function

rwTranslateAssoc

Global function

RWStreamType

Global enumerator

rwTranslateObject

Global function

rwTranslateObjectPointer

Global function

rwTranslateSequence

Global function

2.3.3.2 Serialization package classes

Table 2 contains a list of the public classes in the Serialization package. See Part III, "Reference."

Table 2: Index of Serialization classes 

Class Name Description

RWCompactObjectInputStreamImp

Reads objects encoded in a compact format from the supplied RWDataInputStream.

RWCompactObjectOutputStreamImp

Writes objects encoded in a compact format from the supplied RWDataOutputStream.

RWDataFromVirtualInputStreamImp

An adapter class that allows an Essential Tools Module virtual input stream (RWvistream) to be used where a RWDataInputStream is required. Implements the body idiom from the handle-body pattern.

RWDataToVirtualOutputStreamImp

An adapter class that allows an Essential Tools Module virtual output stream (RWvostream) to be used where a RWDataOutputStream is required. Implements the body idiom from the handle-body pattern.

RWObjectInputStream

Handle class for object input stream implementation classes. Implements the handle idiom from the handle-body pattern.

RWObjectInputStreamImp

Base class for all object input stream implementations. The derivation from filtered data input stream provided default implementations for output of all primitive types and allows the low level stream formatting to be controlled by delegation to a separate data input stream object.

RWObjectOutputStream

Handle class for all the object output stream implementation classes. Implements the handle idiom from the handle-body pattern.

RWObjectOutputStreamImp

Base class for all object output streams. Inherits default operations for streaming primitives from data output stream.

RWTInsertProxy

A proxy object for inserting objects with an instance name into object streams

RWWithObjectInputContext

A guard class used to initialize a context for an object input stream.

RWWithObjectOutputContext

A guard class used to initialize a context for an object output stream.



Previous fileTop of DocumentContentsIndex pageNext file

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