*DECK,QFIRES
PROC QFIRES(OVERLAYED,NETSAVAIL,DBGAVAIL);
      BEGIN    # QFIRES # 
*CALL COMCBEGN
# 
***   QTF - QUEUE FILE TRANSFER FACILITY. 
* 
*     K. P. HOFFMANN  XX/XX/80  (ORIGINAL NOS 1 VERSION)
*     D. P. KARVONEN  XX/XX/81  (ORIGINAL NOS/BE VERSION) 
*     N. A. DEILY     10/01/82  (NOS 2 - NOS/BE VERSION)
*     P. C. HAHN
*     R. L. FEARN 
*     M. M. CHEN      10/12/84  (SUPPORT TRANSFERS THROUGH NAM) 
*     K. E. KING
*     N. A. DEILY     07/01/85  (MULTI-STREAMING ENHANCEMENTS)
* 
*     COPYRIGHT (C), CONTROL DATA SYSTEMS INC. 1994.
*     ALL RIGHTS RESERVED.
* 
*     THE QUEUE FILE TRANSFER FACILITY (QTF) PROVIDES HOST-TO-HOST
*     TRANSFER OF QUEUE FILES USING THE RHF APPLICATION-TO-APPLICATION
*     FILE TRANSFER PROTOCOL ON CONNECTIONS THROUGH EITHER THE
*     RHF OR NAM ACCESS METHOD. 
* 
*     THERE ARE SEVERAL VARIANTS OF QTF AND QTFS WHICH CAN BE BUILT.
*     ALL OPERATING-SYSTEM-DEPENDENT CODE (NOS 2 VS. NOS/BE) IS 
*     CONTROLLED BY COMPILE- AND ASSEMBLY-TIME CONDITIONALS.
*     ALL SUBSYSTEM-DEPENDENT (RHF VS. NAM) AND OVERLAY-DEPENDENT CODE
*     IS CONTROLLED BY EXECUTION-TIME CONDITIONAL CODE WHICH TEST 
*     VARIABLES PASSED TO QFIRES/QFSRES BY THE BUILD-PROCEDURE-GENERATED
*     MAIN PROGRAMS.
* 
*     THE ACTUAL OVERLAY STRUCTURE AND ENTRY POINT NAMES ARE CONTROLLED 
*     BY PARAMETERS OF THE SKELETON-DECK BUILD PROCEDURES, QTFSKEL AND
*     QFSSKEL, WHICH PRODUCE A FILE OF COMPASS ROUTINES CONTAINING THE
*     PROPER IDENT, ENTRY, LDSET DIRECTIVES, AND OVERLAY LOAD CALLS TO
*     PRODUCE THE DESIRED VARIANT FROM THE USER LIBRARY FTULIB, WHICH 
*     CONTAINS ALL OF THE RELOCATABLES FROM THIS PL, AND THE PROPER 
*     SUBSYSTEM-INTERFACE LIBRARY, LCNLIB (RHF) OR NETXIO/NETXIOD (NAM).
* 
*     THE FOLLOWING CHART LISTS THE POSSIBLE VARIANTS:  
* 
*     (*NOTE* - ONLY THOSE VARIANTS PRODUCED BY DEFAULT BY THE OPERATING
*               SYSTEM BUILD PROCEDURES OR THOSE VARIANTS WHICH ARE 
*               DOCUMENTED IN THE OPERATING SYSTEM INSTALLATION 
*               HANDBOOKS ARE SUPPORTED.) 
* 
*       O/S         NOS 2   NOS 2   NOS 2   NOS 2   NOS/BE  NOS/BE
*       SUBSYSTEM   RHF     RHF     NAM     NAM     RHF     RHF 
*       OVERLAYS    NO      YES     NO      YES     NO      YES 
*       > 1 STREAM  YES     NO      YES     NO      YES     NO
*       =========================================================== 
* 
*       INITIATOR   QTFI    QTFI    QTFIN   QTFIN   QTFI    QTFI
*         QFIMAIN     -       -       -       -       -       - 
*         QTFXFR      -       -       -       -       -       - 
* 
*       SERVICER    QTFS    QTFS    QTFSN   QTFSN   QTFS    QTFS
*         QFSMAIN     -     QFS0100   -     QFS0300   -     QFS0100 
*         QTFXFR      -     QFS0200   -     QFS0400   -     QFS0200 
* 
* 
  
**    QFIRES     QTFI RESIDENT ROUTINE. 
* 
* 
*     QFIRES IS THE QTF INITIATOR RESIDENT ROUTINE. 
  
# 
  
      ITEM OVERLAYED  B;             # TRUE IF QTF/S IS OVERLAYED # 
      ITEM NETSAVAIL  U;             # NETWORK INTERFACES AVAILABLE # 
      ITEM DBGAVAIL   B;             # TRUE IF DEBUG OPTIONS LOADED # 
  
# 
****  XREF
# 
      XREF
        BEGIN 
        PROC DROP;                 # TERMINATE INITIATOR #
        PROC DUMMAIN;              # INTERFACE TO QFIMAIN # 
        PROC FTUOFF;               # NETOFF FROM ACCESS METHOD #
        PROC INITI;                # INITIALIZE INITIATOR # 
        PROC NAME;
        PROC RECOVR;               # REPRIEVE INTERFACE # 
        PROC RHCRPV;               # COMMON REPRIEVE ROUTINE #
        END 
  
# 
****  XREF END
# 
  
      CONTROL PRESET;              # INITIALIZE COMMON BLOCKS # 
  
*CALL COMCAPR 
*CALL COMCCAE 
*CALL COMQCAF 
*CALL COMQCIO 
*CALL COMQCMD 
*CALL COMQCPM 
*CALL COMQDEF 
*CALL COMQDSP 
*CALL COMQFIL 
*CALL COMQKDS 
*CALL COMQKRS 
*CALL COMQNET 
*CALL COMQPAR 
*CALL COMQPID 
*CALL COMQQAC 
*CALL COMQRMB 
*CALL COMQRTP 
*CALL COMQSCH 
*CALL COMQSEL 
*CALL COMQTXT 
  
      XDEF
        BEGIN                      # DECLARE STORAGE FOR FILE TABLE # 
        ARRAY AFT$QFI [1:ACNMAXC] S(FILENT); ;
        END 
  
        $BEGIN
        NAME("QFIRES"); 
        $END
  
      NAM = B<59-NETWNAM,1>NETSAVAIL NE 0; # SET NETWORK INDICATOR #
      LACNMAX = ACNMAXC;
      INITI;                       # PERFORM INITIALIZATION # 
      IF NOT SHUTDOWN              # IF NO ERROR #
      THEN
        BEGIN 
        RECOVR(DROP,   O"277", 0); # ADD *DROP* TO REPRIEVE LIST #
        RECOVR(RHCRPV, O"277", 0); # ADD *RHCRPV* TO REPRIEVE LIST #
        DUMMAIN;                   # CALL QFIMAIN # 
        DROP;                      # TERMINATE INITIATOR #
        IF ACNNO EQ 0              # IF NORMAL TERMINATION #
        THEN
          BEGIN 
          FTUOFF;                  # NETOFF FROM ACCESS METHOD #
          END 
  
        END 
  
      END  # QFIRES # 
    TERM
