OSI/MHS Management Programming Manual

Examples
OSI/MHS Management Programming Manual424824-001
C-6
SPI Example in TACL
#SET err [#REQUESTER /WAIT spi_buflen / == OPEN scp.#ZSPI
READ [scp_name].#ZSPI io_err reply request]
[#IF err |THEN| spi_error [err] opening [scp_name].#ZSPI]
#SETV subsys_status "INDETERMINATE"
]
==
== ROUTINE close_scp
==
== Close the SCP process
==
[#DEF close_scp ROUTINE |BODY|
#SET err [#REQUESTER CLOSE request]
[#IF e
rr |THEN| spi_error [err] closing [scp_name].#ZSPI]
]
== Main routine to add MTA object
[#DEF add_mta_ ROUTINE |BODY|
#FRAME
#APPENDV request add_mta_req == send the request
#EXTRACTV reply spi_rep
[#IF NOT [#EMPTYV io_err] |THEN|
io_error [io_err] sending to [scp_name].#ZSPI
]
#SET err [#SSPUT spi_rep zspi^tkn^RESET^BUFFER spi_buflen]
[#IF err |THEN|
spi_error [err] from #SSPUT zspi^tkn^reset^buffer
]
#SET err [#SSPUT spi_rep zspi^tkn^INITIAL^POSITION zspi^val^INITIAL^BUFFER]
[#IF err |THEN|
spi_error [err] from #SSPUT zspi^tkn^initial^position
]
#SETMANY err _{count 1} retcode &
, [#SSGET /INDEX 1/ spi_rep zspi^tkn^RETCODE]
[#IF err |THEN|
spi_error [err] from #SSGET zspi^tkn^retcode
]
[#IF (retcode <> zspi^err^ok) |THEN|
#output Error in ADD MTA ZSPI^TKN^RETCODE = [retcode]
|ELSE|
#output ADD MTA successful!
]
]
[#DEF add_mta ROUTINE |BODY|
#FILTER unknownSCPError
[#CASE [#EXCEPTION]
| _CALL |
initialize
| UnknownSCPError | #output Unknown SCP Error
#RESET FRAMES
#RETURN
| OTHERWISE | #output *** Error: An unexpected exception occurred
]
add_mta_
]