*DECK NVFTURL USETEXT TEXTNVF USETEXT TXTAPSS PROC NVFTURL((PT)); # TITLE NVFTURL - UPDATE RML TABLE # BEGIN # NVFTURL # # ** NVFTURL - UPDATE RML TABLE. * * G. A. HUGHES 86/01/30 * * THIS PROCEDURE'S MAIN FUNCTION IS TO DELETE A USER'S ENTRY FROM * THE *RML* TABLE USED TO RESTRICT MULTIPLE INTERACTIVE ACCESS. * IT IS CALLED INTO EXECUTION BY THE FOLLOWING PROCEDURES: * *NVFTCRN* *NVFTETC* * * PROC NVFTURL * * ENTRY: * PT = POINTER TO PTAC ENTRY. * * EXIT: * PT = INDEX TO PTAC ENTRY. * RML TABLE UPDATED. * * METHOD: * IF THE DEVICE IS INTERACTIVE, SEARCH FOR THE MATCHING ENTRY IN * THE *RML* TABLE. IF FOUND DELETE IT FROM THE TABLE, IF NOT * ISSUE AN INFORMATIVE DAYFILE MESSAGE. # # **** PROC NVFTURL - XREF LIST. # XREF BEGIN PROC MESSAGE; # SEND MESSAGE TO SYSTEM AND USER DAYFILE # PROC SSTRTS; # REMOVE TABLE SPACE # END # **** # ITEM FIND B; # RML ENTRY INDICATOR # ITEM I I; # LOOP VARIABLE # ITEM NENTRY I; # NUMBER OF ENTRIES IN TABLE # ITEM PT I; # SUBSCRIPT FOR ARRAY PTAC # # * FOLLOWING ARRAY CONTAINS MESSAGE ISSUED TO THE DAYFILE UPON NOT * FINDING AN EXPECTED RML ENTRY. # ARRAY DAYMSG[00:00] S(4); BEGIN ITEM DAY$MSG1 C(00,00,22) = ["NVFTURL - CANNOT FIND "]; ITEM DAY$MSG2 C(02,12,10) = ["RML ENTRY."]; END IF (PTA$DT[PT] EQ DT$CONS) OR (PTA$DT[PT] EQ DT$USER) OR (PTA$DT[PT] EQ DT$CLP ) THEN # INTERACTIVE DEVICE # BEGIN FIND = FALSE; FOR I = 0 STEP 1 WHILE (NOT FIND AND I LS RMLLNGTH) DO BEGIN IF (RML$UIDX[I] EQ PTA$UIDX[PT]) AND (RML$FNAM[I] EQ PTA$FNAM[PT]) THEN # RML ENTRY FOUND # BEGIN SSTRTS(P,I,RMLSIZ$); # DELETE RML ENTRY # FIND = TRUE; # EXIT LOOP # END END END IF NOT FIND THEN BEGIN MESSAGE(DAYMSG,0); # MSG TO SYSTEM AND USR DAYFILE # END END # END NVFTURL # TERM