next up previous contents index
Next: Object Mapping Up: Comprehensive Description Previous: Comprehensive Description

Condensed Map of Classes


  
Figure 3.7: Condensed Map of Classes
\begin{figure}
\begin{center}

\includegraphics [scale=.9]{classes.ps}
\end{center}\end{figure}

The classes in the persistent storage are organized basically in a hierarchical structure. The condensed diagram of the classes is shown in the Figure 3.7. There are only the integral parts of the classes in the diagram. All the interfaces and a few peripheral classes are omitted.

The PersistentStorage class is at the top of the hierarchy. The class has the control over the other classes. All the other classes except for the PersistentPointer class act like the internal organs of the PersistentStorage class, whereas the PersistentPointer class acts like the ticket for the reserved seat in the persistent storage.

The arrows across the classes represent the dependencies, which may take different forms. The class A may depend on the class B in the following forms:

Strictly speaking, all the classes are dependent on the others in some way. Even the finest modification in the specifications of any class would radically change the behaviors of the persistent storage.

Thus, both the delicate cooperation and the discrete divisions of labor among the classes are crucial to the implementation of the persistent storage.

To digest the diagram with little difficulty, the explanation of the naming conventions of the member variables will make a convenient guidance. The variables ending with Table are instances of either the SortedPointerTable class or the SortedObjectTable class. The preceding words of Table indicate the element classes which implement the SortableObject interface.

The variables ending with ID are integers for the identification of some objects, which are indicated by the preceding words. Similarly, those ending with Size or Count are integers for sizes or counters of something.

For ease of the coding and maintenance of the sources, there are some typedefs in them. Such types end with Type or ID such as SizeType, CounterType, OffsetType, BoolType, ArenaID, etc. Most of them are just aliases for integers.


next up previous contents index
Next: Object Mapping Up: Comprehensive Description Previous: Comprehensive Description
Mori Tetsuya / t2y3141592@gmail.com