*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<RML>,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
