cdc:nos2.source:nam5871:nvftina
Table of Contents
NVFTINA
Table Of Contents
- [00006] PROC NVFTINA
- [00007] NVFTINA - PROCESS TIMER EXPIRED CONDITION (FC/INACT SM)
- [00011] PROCESS TIMER EXPIRED CONDITION (FC/INACT SM)
- [00048] PROC NVFTETC
- [00049] PROC NVFTDAD
- [00050] PROC NVFTDSP
- [00051] PROC NVFUMQE
- [00052] PROC NVFTILP
- [00053] PROC NVFSCAD
Source Code
- NVFTINA.txt
- *DECK NVFTINA
- USETEXT TEXTNVF
- USETEXT TXTANVF
- USETEXT TXTAPSS
- PROC NVFTINA;
- # TITLE NVFTINA - PROCESS TIMER EXPIRED CONDITION (FC/INACT SM) #
- BEGIN # NVFTINA #
- #
- ** NVFTINA - PROCESS TIMER EXPIRED CONDITION (FC/INACT SM)
- *
- * E. THAVIKULWAT 81/09/24
- * C. BRION 83/04/11
- *
- * THIS PROCEDURE WILL EITHER TERMINATE A LOGIN SESSION OR REATTEMPT
- * A SWITCH TO AN APPLICATION. THIS ACTION IS DUE TO EXPIRATION OF
- * NVF'S TIMER. THIS ROUTINE IS CALLED INTO EXECUTION BY PROCEDURE
- * *NVFTDQE*.
- *
- * PROC NVFTINA
- *
- * ENTRY:
- * ABH IN *ABHBUF*
- * FC/INACT SM IN *MSGBUF*
- *
- * EXIT:
- * ONE OF TWO CONDITIONS:
- * - A NEW ATTEMPT IS MADE TO SWITCH TO AN APPLICATION, OR
- * - "TIMEOUT" MESSAGE ISSUED TO THE TERMINAL AND LOGIN SESSION
- * TERMINATED. A CTR/CHAR MAY BE SENT TO FORCE THE TERMINAL
- * TO NON-TRANSPARENT INPUT MODE.
- *
- * METHOD:
- * SEARCH PTAC TABLE FOR ENTRY THAT MATCHES THIS TERMINAL'S ACN
- * AND TIMER CANCELLATION NUMBER. IF ENTRY FOUND, EITHER SEND
- * "TIMEOUT" MESSAGE AND TERMINATE CONNECTION, OR CALL *NVFTDSP* TO
- * ATTEMPT TO SWITCH TO THE APPLICATION. IF NO PTAC ENTRY IS
- * FOUND, IGNORE THE SM.
- #
- #
- **** PROC NVFTINA - XREF LIST.
- #
- XREF
- BEGIN
- PROC NVFTETC; # END TERMINAL CONNECTION #
- PROC NVFTDAD; # DETERMINE ADDITIONAL DIALOGUE #
- PROC NVFTDSP; # DETERMINE SWITCH POSSIBILITY #
- PROC NVFUMQE; # TRANSFER TEXT TO QUEUE #
- PROC NVFTILP; # ISSUE LOGIN PROMPT #
- PROC NVFSCAD; # COMPLETE APPLICATION DEPARTURE #
- END
- #
- ****
- #
- *CALL TMSGNVF
- *CALL TERMCLS
- ITEM ADDR I; # ADDRESSING INFORMATION FOR ABH #
- ITEM MATCH B; # EXIT LOOP VARIABLE #
- ITEM MATCH2 B; # AST MATCH FLAG #
- ITEM MATCH3 B; # SEC AST ENTRY MATCH FLAG #
- ITEM NENTRY I; # NUMBER OF ENTRIES IN TABLE #
- ITEM PT I; # SUBSCRIPT FOR ARRAY PTAC #
- ITEM SORD I; # SECONDARY AST ORDINAL #
- ITEM PORD I; # PRIMARY AST ORDINAL #
- ITEM ERRCOD I; # ERROR CODE FOR NVFTDAD CALL #
- ITEM ASENTRY I; # NUMBER AST ENTRIES #
- #
- * DETERMINE NUMBER OF AST ENTRIES.
- #
- ASENTRY = ASTLNGTH/ASTSIZ$;
- #
- * SEARCH PTAC TABLE FOR ENTRY THAT MATCHES THIS TERMINAL'S ACN
- * AND TIMER CANCELLATION NUMBER. IF NO MATCH, IGNORE SM.
- #
- MATCH = FALSE;
- MATCH3 = FALSE;
- MATCH2 = FALSE;
- NENTRY = PTALNGTH / PTACSIZ$;
- FOR PT = 0 STEP 1 WHILE (NOT MATCH AND PT LS NENTRY)
- DO
- BEGIN
- IF (PTA$ACN[PT] EQ FCACN[0])
- AND (PTA$CNUM[PT] EQ ABHABN[0])
- THEN
- BEGIN # PTAC ENTRY FOUND #
- MATCH = TRUE;
- #
- * CHECK IF TIMEOUT FOR APPLICATION NOT NETTING ON. IF SO, LOCATE THE
- * PRIMARY AST ENTRY.
- * CALL NVFSCAD TO COMPLETE APPLICATION DEPARTURE FOR BOTH ENTRIES.
- #
- IF PTA$STATE[PT] EQ PTACST"AWTNETP"
- THEN
- BEGIN
- #
- * LOCATE THE PRIMARY AST ENTRY FOR THIS PTAC ENTRY.
- #
- FOR PORD = 0 STEP 1 WHILE
- ((PORD LS ASENTRY) AND
- ((NOT MATCH2 AND NOT MATCH3) OR
- (MATCH2 AND NOT MATCH3) OR
- (NOT MATCH2 AND MATCH3)))
- DO
- BEGIN
- IF ((AST$PANAM[PORD] EQ PTA$SWTAPP[PT]) AND
- (AST$PANAM[PORD] EQ AST$SANAM[PORD]))
- THEN
- #
- * PRIMARY AST ENTRY FOUND.
- #
- BEGIN
- NVFSCAD(PORD);
- MATCH2 = TRUE;
- END
- IF ((AST$SANAM[PORD] EQ PTA$SWTAPP[PT]) AND
- (AST$SANAM[PORD] NQ AST$PANAM[PORD]))
- THEN
- #
- * SECONDARY AST ENTRY FOUND.
- #
- BEGIN
- NVFSCAD(PORD);
- MATCH3 = TRUE;
- END
- END
- END
- #
- * CHECK IF TIMEOUT FOR REATTEMPTING TO SWITCH TO AN APPLICATION.
- * IF SO, CALL NVFTDSP TO DETERMINE THE SWITCH POSSIBILITY.
- #
- IF PTA$STATE[PT] EQ PTACST"AWTAPPL"
- THEN
- BEGIN
- PTA$STATE[PT] = PTACST"AWTVAA";
- NVFTDSP(PT,0);
- GOTO ENDEXIT;
- END
- #
- * CHECK TERMINAL CLASS TO SEE IF NVF SHOULD SEND A CTR/CHAR.
- #
- ADDR = PTA$ACN[PT];
- GOTO TERMCLS [PTA$TC[PT]];
- SENDCTRCHAR:
- #
- * SEND CTR/CHAR TO FORCE TERMINAL TO BE IN NON-TRANSPARENT INPUT
- * MODE.
- #
- PFCSFC[1] = CTRCHAR;
- CTRSTR[1] = 0; # CLEAR REST OF WORD 0 #
- B<0,16>CTRSTR[1] = NOXPAR$; # ADD FN/FV PAIR FOR NON-XPARENT#
- NVFUMQE(P<CTQ>,APSM[1],APPPR$,ADDR,LCTRLO$); # TRANSFER TO Q #
- NOCTRCHAR:
- #
- * SEND "TIMEOUT" MESSAGE AND TERMINATE CONNECTION.
- #
- NVFUMQE(P<CTQ>,TOUTBUF[0],APPTTX$,ADDR,LMSG20$); # TXT TO Q #
- #
- * IF NETON PENDING TYPE OF TIMEOUT, SET UP APPLICATION NOT PRESENT
- * ERROR CODE AND CALL NVFTDAD TO DETERMINE NEXT DIALOGUE. OTHER-
- * WISE, END THE CONNECTION.
- #
- IF PTA$STATE EQ PTACST"AWTNETP"
- THEN
- BEGIN
- ERRCOD = ECANP$;
- NVFTDAD(PT,ERRCOD);
- #
- * IF CONNECTION AWAITING PROMPT, CALL NVFTILP TO ISSUE PROMPT.
- #
- IF PTA$STATE[PT] EQ PTACST"AWTPRMT"
- THEN
- NVFTILP(PT);
- END
- ELSE
- NVFTETC(PT); # END TERMINAL CONNECTION #
- END
- END
- ENDEXIT:
- END # END NVFTINA #
- TERM
cdc/nos2.source/nam5871/nvftina.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator