*DECK NVFSDQE
USETEXT TEXTNVF
USETEXT TEXTSS
USETEXT TXSANVF
PROC NVFSDQE;
# TITLE NVFSDQE - DISPATCH QUEUE ENTRIES FOR MAINTAIN-APPL-STATUS PROC #
BEGIN # NVFSDQE #
#
** NVFSDQE - DISPATCH QUEUE ENTRIES FOR MAINTAIN-APPL-STATUS PROCESS.
*
* E. THAVIKULWAT 81/12/18
*
* THIS PROCEDURE IS THE MAIN MODULE FOR MAINTAIN STATUS OF
* APPLICATION PROCESS AND IS CALLED INTO EXECUTION WHENEVER THERE IS
* DATA IN THE *ASQ* QUEUE. THE PROCEDURE'S MAIN FUNCTION IS TO
* ROUTE EACH ENTRY IN ITS INPUT QUEUE TO THE APPROPRIATE ROUTINES.
*
* PROC NVFSDQE
*
* ENTRY:
* ASQ - APPLICATION STATUS QUEUE
*
* EXIT:
* ALL QUEUE ENTRIES PROCESSED.
*
* METHOD:
* CALL *SSTRQE* TO COPY THE FIRST ENTRY IN THE QUEUE INTO THE
* WORKING BUFFER. EACH ENTRY IS THEN ROUTED TO THE APPROPRIATE
* ROUTINE TO BE PROCESSED.
#
#
**** PROC NVFSDQE - XREF LIST.
#
XREF
BEGIN
PROC NVFSNOF; # PROCESS FAIL/APPL AND NET/OFF SM #
PROC NVFSNON; # PROCESS NET/ON SM #
PROC NVFSTIM; # PROCESS TIMEOUT OF REQUEST STARTED APPL #
PROC SSTRQE; # TRANSFER QUEUE ENTRY TO FIXED BUFFER #
END
#
****
#
ITEM I I; # LOOP VARIABLE #
ITEM SMID S:ASQSTAT; # SUBSCRIPT FOR GOTO SWITCH #
SWITCH SASWT:ASQSTAT
LLFAIL : SFAIL, # LABEL FOR FAIL/APPL SM #
LLNETON : SNETON, # LABEL FOR NET/ON SM #
LLNETOF : SNETOFF, # LABEL FOR NET/OFF SM #
LLTIME : TIMEOUT; # LABEL FOR TIMEOUT PROCESSING #
#
* DISPATCH ENTRIES FROM *ASQ* TO APPROPRIATE ROUTINES.
#
FOR I = 0 WHILE ASQLNGTH NQ 0
DO
BEGIN
SSTRQE(P<ASQ>,WCBUF,ABHBUF,MSGBUF); # TRANSFER TO FIX BUFFER #
SMID = WCB$SMID[0]; # GET INTERNAL SM IDENTIFIER #
GOTO SASWT[SMID];
LLFAIL: # FAIL/APPL SM #
LLNETOF: # NET/OFF SM #
NVFSNOF; # PROCESS FAIL/APPL, NET/OFF SM #
GOTO ENDSAS;
LLNETON: # NET/ON SM #
NVFSNON; # PROCESS NET/ON SM #
GOTO ENDSAS;
LLTIME:
NVFSTIM; # TIMEOUT PROCESSING #
GOTO ENDSAS;
ENDSAS: # END OF CASE #
END
END # END NVFSDQE #
TERM