All the objects contained in OBJECTS are not really designed
to be inherited from. They are common definitions of objects
required for any Obsydian model. You can create your own versions
of these objects and not use OBJECTS as a library if you choose.
The objects form two groups: Fields and Variables. All the fields
start with * and so appear in the Environment
variable section of action diagrams.
The two fields required for generated Obsydian functions to
communicate low level operations back to the action diagram code
are *View status and *Call status.
*View status is set after any view I/O operation and reflects
what happened during the operation. The name of this field and
its values are hard coded into the Obsydian generators and they
cannot be changed.
*Call status and its values are also hard coded into the
generators. It is used to communicate the result of a function
call. If the call to the target function is not made successfully
for whatever reason (communications failure, parameter mismatch,
function not found,
), this field is set to a value that is
not *Normal.
Two other fields are automatically used by the generated
functions. These are *Returned status and *Returning status. The
*Returning status field is passed back by any called function to
its caller, putting the value into the calling functions
*Returned status field. The rule is set *Returning status in the
called function and test *Returned status in the calling
function. You have to set *Returning status to a value with
action diagram code, the generators will not set or change either
of these two fields values.
The other * fields in OBJECTS are used by the shipped
class libraries, mainly in meta code, and are always present in
all the class library action diagrams.