A MocChan is a specialised form of Channel which supports the reading and writing of
AST Moc objects as text, using the conventions of the JSON and string encodings
described in the IVOA’
s MOC recommendation, version 1.1. Writing a Moc to a MocChan
(using astWrite) will, if the Moc is suitable, generate a textual description of that
Moc, and reading from a MocChan will create a new Moc from its textual description. See
the Moc class for further information.
Normally, when you use a MocChan, you should provide "
source"
and "
sink"
functions which connect it to an external data store by reading and writing the
resulting text. These functions should perform any conversions needed between
external character encodings and the internal ASCII encoding. If no such functions
are supplied, a Channel will read from standard input and write to standard
output.
Alternatively, a MocChan can be told to read or write from specific text files using the SinkFile and SourceFile attributes, in which case no sink or source function need be supplied.
If "
source"
is NULL and no value has been set for the SourceFile attribute, the
MocChan will read from standard input instead.
If "
sink"
is NULL, and no value has been set for the SinkFile attribute, the MocChan
will write to standard output instead.
"
printf"
format specifiers identified by "
%"
symbols in the
normal way. "
options"
string contains "
%"
format specifiers,
then an optional list of additional arguments may follow it in order to supply
values to be substituted for these specifiers. The rules for supplying these are
identical to those for the astSet function (and for the C "
printf"
function). If the external data source or sink uses a character encoding other than ASCII, the supplied source and sink functions should translate between the external character encoding and the internal ASCII encoding used by AST.
A null Object pointer (AST__NULL) will be returned if this function is invoked with the AST error status set, or if it should fail for any reason.