Advanced Tools Module User’s Guide : PART I Advanced Tools Module : Chapter 2 Package Overview
Chapter 2 Package Overview
Advanced Tools Module Packages
The Advanced Tools Module is made up of three packages:
The Streams package
The Serialization package
The Types package
The Streams Package
The Streams package includes flexible, Java-like stream abstractions that include support for streaming tiny and wide characters. These stream abstractions give you more ways to move data into and out of your application and can optionally interoperate with the virtual streaming mechanism in the Essential Tools Module for even more flexibility.
The Streams package provides five stream families:
binary streams
narrow character streams
Unicode character streams
wide character streams
data streams
The wide character streams and Unicode character streams provide support for internationalization.
For more information on using the Advanced Tools Module to internationalize your streams, see Chapter 8, “International Features of the Advanced Tools Module.”
The Serialization Package
The Serialization package includes two object persistence mechanisms: non RWCollectable polymorphic persistence and non-intrusive polymorphic persistence. This package enables you to add polymorphic persistence to your applications without changing your classes. A concrete stream is provided producing a compact data representation like that generated by RWCollectable persistence. The package can also be extended to user-defined formats.
The Serialization package includes the following capabilities:
Provides a mechanism for flattening and transporting objects across communication boundaries and for storing the contents of these objects to disk
Passes objects by value between processes in a distributed system
Makes your classes “serializable” without inheriting from a serializable base class
Streams your objects to and from portable ASCII and portable binary formats
The Types Package
The Types package includes just one class, RWSymbol. This class encapsulates a string name in a reference-counted handle-body pattern. Therefore, several RWSymbols can reference one string name, making storage space smaller, name memory management easier, and name comparisons faster.