Let us now examine the format of the textual output produced by writing an ObjectObject to a basic ChannelChannel (§15.3). To give a concrete example, suppose the Object in question is a SkyFrameSkyFrame, written out as follows:
The output should then look like the following:
You will notice that this output is designed both for a human reader, in that it is formatted, and also to be read back by a computer in order to reconstruct the SkyFrame. In fact, this is precisely the way that astShowastShow works (§4.4), this function being roughly equivalent to the following use of a Channel:
Some lines of the output start with a “#
” comment character,
which turns the rest of the line into a comment. These lines will be
ignored when read back in by astReadastRead. They typically contain default
values, or values that can be derived in some way from the other data
present, so that they do not actually need to be stored in order to
reconstruct the original Object. They are provided purely for human
information. The same comment character is also used to append
explanatory comments to most output lines.
It is not sensible to attempt a complete description of this output format because every class of Object is potentially different and each can define how its own data should be represented. However, there are some basic rules, which mean that the following common features will usually be present:
Beyond these general principles, the best guide to what a particular line of output represents will generally be the comment which accompanies it together with a general knowledge of the class of Object being described.