Levels of Persistence
An object has one of four levels of persistence:
• No persistence. There is no mechanism for storage and retrieval of the object.
• Simple persistence. A level of persistence that provides storage and retrieval of individual objects to and from a stream or file. Simple persistence does not preserve pointer relationships among the persisted objects.
• Isomorphic persistence. A level of persistence that preserves the pointer relationships among the persisted objects.
• Polymorphic persistence. The highest level of persistence. Polymorphic persistence preserves pointer relationships among the persisted objects and allows the restoring process to restore an object without prior knowledge of that object's type.
The
SourcePro API Reference Guide indicates the level of persistence for each class. This section provides information about each level of persistence through descriptions, examples, and procedures for designing your own persistent classes.
A Note About Terminology
The Essential Tools Module provides input and output classes that let you save and restore objects. These classes are:
• RWFile —
RWFile lets you save and restore objects to a file.
To keep our explanations simple, we'll refer to all of these input and output classes as
streams. For a discussion of the trade-offs in using
RWvostream and
RWvistream versus
RWFile, see
Chapter 5 and
Chapter 10.
About the Examples in this Section
For your convenience, all examples listed in this section are provided on disk in the directory buildspace\examples\tools. Each of the examples in this chapter has the name persist*.cpp.