Next: Data Access
Up: Users View of
Previous: File Representation
ADI data objects can be divided into three groups. The first group are
the primitive data objects. All the primitive HDS types are supported
and have the same names (_UBYTE
, _REAL
etc),
but character strings are of variable length and are known simply by
the name _CHAR
. Primitive objects are not instances of a
class. This means that you cannot place the name of a primitive type
in a class inheritance list.
The second data group are instances of ADI classes.
A class instance is a collection of data objects of three forms,
- Class member data. Can be split into two catagories which exist in
the same name space.
- Mandatory keywords. These are the quantities which are required before
an instance of a class can be created. For example, the keywords for the
class Array are SHAPE and TYPE. The first is a 1-D integer array
and the second a character string.
- Useful data members, ie. the information an application is interested
in accessing. Each class member has a name
which exists in the same name space sa the keywords above.
- Properties. Every class instance has a property list. This is simply
a list of (name,value) pairs which can be indexed by the name.
The property list is used for stuffing useful bits of information by
ADI. User software can also use the property list.
- ADI header data. This is just the information ADI stores to keep
track of each object in the system. The main things are an RTTI (Run
Time Type Identifier) which tells ADI which class the data belongs to,
and the binding field which controls the link from an instance to other
ADI class instances (such as file objects).
Class data members and property values can be either primitive data or
class instances. There is no limit to the numbers of any of
these data members, other than those imposed by the process quotas. The
ADI header data is not really for use by applications and no routines
are provided for its direct manipulation.
The third data group are the aggregates. The most useful aggregate is the
array (not to be confused with the Array class). Arrays may consist of
any primitive type or class instances. Two other aggregates are lists and
hash tables. The system is flexible enough to allow the creation of third
party data aggregates (eg. bags or sets) and the specification of the rules
for creating and disposing of their contents.
Next: Data Access
Up: Users View of
Previous: File Representation
Web Master
Wed Oct 8 09:22:23 BST 1997