next up previous 264
Next: AST_CIRCLE - Create a Circle
Up: AST Routine Descriptions
Previous: AST_BOX - Create a Box


AST_CHANNEL - Create a Channel

Description:
This function creates a new Channel and optionally initialises its attributes.

A Channel implements low-level input/output for the AST library. Writing an Object to a Channel (using AST_WRITE) will generate a textual representation of that Object, and reading from a Channel (using AST_READ) will create a new Object from its textual representation.

Normally, when you use a Channel, you should provide "source" and "sink" routines which connect it to an external data store by reading and writing the resulting text. By default, however, a Channel will read from standard input and write to standard output.

Invocation:
RESULT = AST_CHANNEL( SOURCE, SINK, OPTIONS, STATUS )
Arguments:
SOURCE = SUBROUTINE (Given)
A source routine, which is a subroutine which takes a single integer error status argument. This routine will be used by the Channel to obtain lines of input text. On each invocation, it should read the next input line from some external data store, and then return the resulting text to the AST library by calling AST_PUTLINE. It should supply a negative line length when there are no more lines to read. If an error occurs, it should set its own error status argument to an error value before returning.

If the null routine AST_NULL is suppied as the SOURCE value, the Channel will read from standard input instead.

SINK = SUBROUTINE (Given)
A sink routine, which is a subroutine which takes a single integer error status argument. This routine will be used by the Channel to deliver lines of output text. On each invocation, it should obtain the next output line from the AST library by calling AST_GETLINE, and then deliver the resulting text to some external data store. If an error occurs, it should set its own error status argument to an error value before returning.

If the null routine AST_NULL is suppied as the SINK value, the Channel will write to standard output instead.

OPTIONS = CHARACTER $*$ ( $*$ ) (Given)
A character string containing an optional comma-separated list of attribute assignments to be used for initialising the new Channel. The syntax used is identical to that for the AST_SET routine.
STATUS = INTEGER (Given and Returned)
The global status.
Returned Value:
AST_CHANNEL = INTEGER
A pointer to the new Channel.
Notes:
  • The names of the routines supplied for the SOURCE and SINK arguments should appear in EXTERNAL statements in the Fortran routine which invokes AST_CHANNEL. However, this is not generally necessary for the null routine AST_NULL (so long as the AST_PAR include file has been used).

  • A null Object pointer (AST__NULL) will be returned if this function is invoked with STATUS set to an error value, or if it should fail for any reason.

  • Note that the null routine AST_NULL (one underscore) is different to AST__NULL (two underscores), which is the null Object pointer.


next up previous 264
Next: AST_CIRCLE - Create a Circle
Up: AST Routine Descriptions
Previous: AST_BOX - Create a Box

AST A Library for Handling World Coordinate Systems in Astronomy
Starlink User Note 210
R.F. Warren-Smith & D.S. Berry
24th May 2011
E-mail:ussc@star.rl.ac.uk

Copyright (C) 2009 Science \& Technology Facilities Council