### Application Data Interfaces

A class that supports streaming should provide, as part of its documentation, a description of its data format on a stream. This application data interface (ADI) will enable developers to create, without access to the original source code, programs that can read the streamed data.

The ADI should include the type (class or primitive) and purpose of each item written by the stream out function of the class, in the order that they are written. In the case of polymorphic streaming, the ADI need only specify a base class type.

An ADI for a class would not include a description of the encoding for primitive types or the stream tags and control information used by the IStreamIO class. It would also not include the description for any embedded classes; these would be obtained directly from the description of the embedded class.

Note: Applications which need to interoperate with other applications that are not built with VisualAge may want to support a data format that does not use Open Class streaming. For example, a word processor would probably provide a way to save or export a plain-text file for exchange with other applications.

Introduction to the Streaming Classes
Data Streams

Adding Streaming Support to Structs and Simple Classes
Creating a Streamable Class
Streaming Aliases and Aliased Objects
Streaming Objects Monomorphically
Streaming Objects Polymorphically