Copyright © TIBCO Software Inc. All Rights Reserved
Copyright © TIBCO Software Inc. All Rights Reserved


Chapter 11 Using User Builtin Routines : Sample User Builtin Routines

Sample User Builtin Routines
Samples Available
The USRBLTIN member in the ASM data set includes these sample routines:
The following section describes the entries required for USRSLEEP, and provides a sample rule showing how to call it.
USRSLEEP
This routine has one argument, TIME of nn hundredths of a second.
USRBLTIN Entry

 
$ROUTINE NAME=SLEEP,MODULE=USRSLEEP, X
ARGS=((,B,4,0)), X
ARGNAMES=(TIME)

 
USRCSECT Entry

 
TITLE 'A PROGRAM TO SLEEP FOR N 100THS OF A SECOND.'
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* WARNING: THIS ROUTINE WILL PUT THE INTERPRETER TASK INTO A WAIT. *
* IT SHOULD THEREFORE NOT BE USED IN A MULTI-USER EE SUCH AS CICS, *
* IMS, OR NATIVE. THIS ROUTINE IS SUITABLE ONLY FOR BATCH & TSO. *
* *
* THIS PROGRAM SLEEPS FOR A TIME SPECIFIED IN ARGUMENT1, WHICH IS *
* SPECIFIED IN 100THS OF A SECOND. *
* *
* THIS PROGRAM CAN EXECUTE AS AN OSB EXTERNAL ROUTINE AS DEFINED IN   *
* THE EXTERNAL ENVIRONMENTS GUIDE; HOWEVER, THE IMPLEMENTATION SHOWN  *
* HERE IS TO EXECUTE AS A USER DEFINED BUILTIN ROUTINE AS DOCUMENTED  *
* IN THE TIBCO® OBJECT SERVICE BROKER FOR Z/OS INSTALLING AND         *
* OPERATING MANUAL.                                                   *
* *
* ASSEMBLE & LINK TO HRNEXTR LOAD LIBRARY IF RUNNING AS AN EXTERNAL   *
* ROUTINE. IF RUNNING AS A USER DEFINED BUILTIN ROUTINE, IMPLEMENT    *
* WITH JCL MEMBER USERMOD8.                                           *
* *
* ADD THE FOLLOWING TO THE ROUTINES & ARGUMENTS TABLES. *
* *
* ROUTINES ENTRY | ARGUMENTS(USRSLEEP) ENTRIES *
* NAME = USRSLEEP | *
* LANG = ASSEMBLER | 1) TIME N B 4 *
* FUNC = N | *
* TYPE = | *
* SYNT = | *
* LEN = | *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
USRSLEEP DS 0D
ENTRY USRSLEEP
L 1,0(1) ADDRESS ON PARM 1
STIMER WAIT,BINTVL=(1)
SR 15,15 SET RETURN CODE
BR 14 RETURN TO CALLER

 
Sample Rule

 
SAMPSLEEP(TIME);
_ LOCAL Y;
_ ----------------------------------------------------------------
_ ------------------------------------------------------------+---
_ Y = $REALTIMER; ¦ 1
_ CALL SLEEP(TIME); ¦ 2
_ Y =($REALTIMER - Y) / 1000000; ¦ 3
_ CALL ENDMSG('SLEPT FOR ' || $PIC(Y, 'NNN,NN9V.999') || ¦ 4
_ ' SECONDS.'); ¦
_ ---------------------------------------------------------------

 

Copyright © TIBCO Software Inc. All Rights Reserved
Copyright © TIBCO Software Inc. All Rights Reserved