Next: Documentation
Up: Components of the Virtual Laboratory
Previous: Tcl scripts and time

Archiving

One of the goals of Oorange development was to avoid creating another file format if possible. This goal has been partially reached, in the following sense: Instances of Oorange objects archive themselves as Tcl scripts containing Objective C method calls (see Section 3.1.2). That is, the format of the archive is implicit in the definition of the object rather than being imposed from outside.

To be exact, the sequence of the archiving method calls is governed by the OoClassFields protocol. This protocol was mentioned in 3.3 above with respect to inspection. As there, the situation here requires that a class provide a description of its instance variables. In this case, the protocol provides information from which the set/get methods for all public, ``archivable'' instance variables, can be generated. Then, for each such pair, the get method is invoked by the Tcl interpreter and yields a string which is then appended to the set method name to yield an Objective C statement which is appended to the archive file. Here we skip over various subtleties described in more detail in the protocol documentation.

The resulting archive is in ASCII form, so that experiments can be edited and exchanged in a human readable form.

The possibility of including predefined network nodes within a larger network presents a serious challenge for the archiving process, since users need to be able to save changes to an included node without losing the reference to that node. Oorange provides a solution to this problem by recording a set of change commands along with the reference to the included node.


Copyright © 1997 Sonderforschungsbereich 288, Differential Geometry and Quantum Physics, TU-Berlin