EasyManua.ls Logo

HP TACL - Page 145

HP TACL
235 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Monitoring Job Status: ENQUIRY
Initiating and Communicating With Processes
107365 Tandem Computers Incorporated 5–37
Figure 5-14. Retrieving TACL Output (Page 2 of 2)
== Successful open:
== Send our message and get a reply (like a WRITEREAD)
#APPENDV prompt enquiry_message == The WRITE
#EXTRACTV r_rec enquiry_reply == The READ
#SET next [enquiry_reply:next]
#SET last [enquiry_reply:next]
== A zero length at this point means a partial buffer, so
== start processing at the beginning
[#IF ([enquiry_reply:line([next]):length] = 0) |THEN|
#SET next 0
== If we do not have an empty buffer, begin the processing
[#IF ([enquiry_reply:line([next]):length] <> 0) |THEN|
[#LOOP |DO|
== Check the line length and truncate if necessary
[#IF [enquiry_reply:line([next]):length] > [max_chars]
|THEN|
#SET enquiry_reply:line([next]):length [max_chars]
]
== Display it for length characters
#SET length [#COMPUTE &
[enquiry_reply:line([next]):length] - 1]
[#OUTPUT [enquiry_reply:line([next]):text(0:[length])]]
== Compute the position of the next read
#SET next [#COMPUTE [next] + 1]
== Should we wrap around to the beginning yet?
[#IF [next] > [last_line] |THEN|
#SET next 0
]
|UNTIL| [next] = [last]
] == LOOP
|ELSE|
== Nothing to display, the buffer is empty.
#OUTPUT Buffer is empty
] == IF
== Close process.
SINK [#REQUESTER/WAIT/CLOSE r_rec]
#UNFRAME

Table of Contents

Related product manuals