Distributed Name Service (DNS) Management Programming Manual

DNS Programming Example, TACL
46958 Tandem Computers Incorporated F–23
== <continuation> NUMBER if passed and non-zero, ZSPI^TKN^CONTEXT
== will be moved from <response-variable>
== to <request-variable> prior to sending
== the request.
==
#FRAME
#PUSH l^continuation^request {<continuation> parameter}
#PUSH dns^request^sym {Name of <request-variable>}
#PUSH dns^response^sym {Name of <response-variable>}
#PUSH l^status {SPI procedure status}
#PUSH l^initial^position {parameter to SSPUT}
==
== Get name of <request-variable>.
==
SINK [#ARGUMENT /VALUE dns^request^sym/ VARIABLE]
==
== Get name of <response-variable>.
==
SINK [#ARGUMENT /VALUE dns^response^sym/ VARIABLE]
==
== See if there is a <continuation> parameter.
==
[#IF ([#ARGUMENT/VALUE l^continuation^request/ NUMBER END]) = 2 |THEN|
#SET l^continuation^request 0
|ELSE|
SINK [#ARGUMENT END]
]
==
== Move ZSPI^TKN^CONTEXT from <response-variable> to <request-variable>
== if asked to do so.
==
[#IF [l^continuation^request] |THEN|
#SET l^status [#SSMOVE /COUNT 1, SINDEX 1, DINDEX 1/
[dns^response^sym]
[dns^request^sym]
[zspi^tkn^context]] dns^check^status SSMOVE
]
==
== Append <request-variable> to the name manager <prompt-variable>.
==
#APPENDV dns^request [dns^request^sym]
==
== Wait for response.
==