Distributed Name Service (DNS) Management Programming Manual
DNS Programming Example, TACL
F–24 46958 Tandem Computers Incorporated
[#IF [#MATCH [#VARIABLEINFO/VARIABLE/ [#WAIT dns^send^error
dns^response]]
DNS^SEND^ERROR] |THEN|
==
== Some sort of error; close name manager and raise exception.
==
#OUTPUT *** Server I/O Error [dns^send^error] : [dns^manager]
SINK [#REQUESTER CLOSE dns^response]
#SET dns^send^error NOTOPEN
#RAISE dns_exception
]
==
== Extract <response-variable> from name manager <read-variable>.
==
#EXTRACTV dns^response [dns^response^sym]
==
== Set initial buffer position.
==
#SET l^initial^position 0
#SET l^status [#SSPUT [dns^response^sym]
[zspi^tkn^initial^position]
l^initial^position]
==
== Clear any buffer error.
==
[#IF NOT [l^status] |THEN|
#SET l^status [#SSPUT [dns^response^sym] [zspi^tkn^clearerr]]]
==
== Check for SPI errors.
==
dns^check^status SSPUT
#UNFRAME
?SECTION dns^check^transmode MACRO
[#IF dns^transmode |THEN|
dns^aborttransaction]
?SECTION dns^setup ROUTINE
==
== Create and load variables needed for DNS sample:
==
== dns^setup [ <spidef subvolume> ]
==
== Don't #FRAME as we want the variables that we create here to stay
== around.
==