OSI/MHS Management Programming Manual
Examples
OSI/MHS Management Programming Manual—424824-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_
]










