*DECK QTCLOSE
USETEXT AIPDEF
USETEXT QTRMCOM
USETEXT QTRMNIT
PROC QTCLOSE;
*IF DEF,IMS
#
*1DC QTCLOSE
*
* 1. PROC NAME AUTHOR DATE
* QTCLOSE J.C. LEE 79/01/12
*
* 2. FUNCTIONAL DESCRIPTION
* TERMINATE ACCESS TO THE NETWORK
*
* 3. METHOD USED
* SET ALL CONNECTION ENTRIES IN NIT TO NULL STATE,
* TRANSFER LAST WORKLIST, IF IT EXISTS, BY ISSUING FORCED NETWAIT
* CALL AIP PROCEDURE NETOFF TO TERMINATE NETWORK ACCESS
*
* 4. ENTRY CONDITIONS
* NONE
*
* 5. EXIT CONDITIONS
* ALL CONNECTIONS IN -NULL- STATE,
* NETON$STATUS IS SET TO FALSE.
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED.
* AIPDEF NP$CRT QTRMCOM QTRMNIT
*
* 7. ROUTINES CALLED
* NETCHEK - AIP PROCEDURE TO FLUSH AIP WORKLIST, IF ANY
* NETFUNC - AIP PROCEDURE TO CHANGE NORMAL PROCESSING PROCEDURES
* NETOFF - AIP PROCEDURE TO TERMINATE NETWORK ACCESS
*
* 8. DAYFILE MESSAGES
* NONE
*
#
*ENDIF
#
CONTROL DEFINITIONS
#
CONTROL PRESET;
CONTROL PACK;
CONTROL DISJOINT;
CONTROL INERT;
CONTROL FASTLOOP;
*CALL NP$CRT
#
ROUTINES CALLED
#
XREF
BEGIN
PROC NETCHEK; # FLUSH AIP WORKLIST, IF ANY #
PROC NETFUNC; # CHANGE NORMAL PROCESSING #
PROC NETOFF; # TERMINATE NETWORK ACCESS #
END
#
LOCAL VARIABLES
#
ITEM M I; # TEMPORARY VARIABLE #
CONTROL EJECT;
#
BEGIN QTCLOSE PROCESSING
#
BEGIN
P<NIT> = NIT$ADDR;
FOR M=1 STEP 1 UNTIL NIT$NO$TERMS[0] DO
BEGIN
NIT$STATE[M] = S"NULL"; # SET ALL CONNECTIONS TO -NULL-#
END
NETON$STATUS = FALSE; # SET APP NOT NETTED-ON #
# FORCED NETWAIT TO TRANSFER #
NETFUNC(3,0); # TELL AIP TO NOT ABORT APP IF #
# NAM IS NO LONGER AVAILABLE #
NETCHEK;
NETOFF; # TERMINATE NETWORK ACCESS #
RETURN;
END # QTCLOSE #
TERM