. .LAYOUT 0 .PS 60,60 .RM 60 .AUTOPARAGRAPH .ENABLE INDEXING .ENABLE TOC .SET PARAGRAPH 5,1,2 .SPACING 1 .FLAGS INDEX .FLAGS SUBINDEX .FLAGS UNDERLINE .NO FLAGS HYPHENATE .FLAGS COMMENT .FLAGS SUBSTITUTE ` .NO FLAGS ACCEPT .DATE .TITLE ROUTDB files .ST REVISION 1.0 .FT .hl FILES .HL 2 MESSAGE_ID.DAT The MESSAGE_ID.DAT file will be an indexed file. The file will have a primary key of C_MESSAGE_ID. The following structure is what the RECORD will look like: .sk .literal STRUCTURE/MESSAGE_ID/ CHARACTER*16 MES_C_MESSAGE_ID ! MESSAGE ID PRIMARY KEY CHARACTER*6 MES_C_PRIM_NODE ! PRIMARY DESTINATION NODE INTEGER*4 MES_C_MESSAGE_SIZE ! MESSAGE SIZE INTEGER*4 MES_I_BITTARRAY(64) ! THE BIT ARRAY CONTAINING ! THE NODE NUMBERS A MESSAGE ! ACCESSES END STRUCTURE RECORD/MESSAGE_ID/ MESSAGE_ID_REC .END literal Each message id will have a record. The file will be opend for keyed access. Like the following: .literal OPEN(UNIT=1,FILE='MESSAGE_ID.DAT',STATUS='UNKNOWN', 1 ORGANIZATION='INDEXED',ACCESS='KEYED', 2 RECORDTYPE='FORMATED',FORM='FORMATED,RECORDSIZE=282 3 KEY=(1:16:CHARACTER),ERR=9999) .END LITERAL .PAGE .HL 2 NODE_DESCR.DAT The node description file is an indexed file. The primary key is the NODE_C_PRIME_NAME. A secondary key is NODE_I_BIT_NUM. The structure is .literal STRUCTURE/NODE_DESCRIPTION/ CHARACTER*6 NODE_C_PRIME_NAME ! PRIMARY NAME PRIME KEY CHARACTER*6 NODE_C_SEC_NAME ! WHERE MESSAGE IS ROUTED ! IF RPIMARY FAILS CHARACTER*80 NODE_C_DESCRIPTION! TEXT DESCRIPTION OF NODE CHARACTER*5 NODE_C_TYPE ! RSX,VMS,OTHER INTEGER*4 NODE_I_MESS_ACCESSED ! NUMBER OF DIFERENT ! MESSAGE IDS RECISVIDE ! BY THIS NODE INTEGER*4 NODE_I_LARGEST_MESS ! THE LARGEST POSSIBLE OUTGOING ! MESSAGE THAT IS SENT BY ! THIS NODE INTEGER*4 NODE_I_INPSZ ! LARGEST POSIBLE INCOMING ! MESSAGE SIZE INTEGER*4 NODE_I_BIT_NUM ! THE BIT NUMBER IN ! MESSAGE ID BIT ARRAY ! IS THE SECONDARY INDEX KEY END STRUCTURE RECORD/NODE_DESCRIPTION/ NODE_DESCRIPTION_REC .END literal The file will be opend for keyed access .literal OPEN(UNIT=2,FILE='NODE_DESCRIP.DAT,STATUS='UNKNOWN', 1 ORGANIZATION='INDEXED',ACCESS='KEYED',RECORDTYPE='FIXED', 2 FORM='FORMATED', 3 KEY=(1:6:CHARACTER,108:112:INTEGER),ERR=9999) .END LITERAL .page .hl 2 ROUTE_DATABES_(NODENAME).MAR This will be a sequential file. The file wil consist of outputed nodes and message ids. .literal CHARACTER*30 RTN_C_OUTLINE ! A LINE OF INFORMATION ! TO BE PLACED IN THE FILE .END literal The file will be open for sequential writing as follows .lt OUT_FILE_NAME = CONCATINATION OF ROUTE_DATABASE_,NODENAME,.MAR OPEN(UNIT=4,FILE=OUT_FILE_NAME,STATUS='UNKNOWN') .EL Of which the first records will have this information in them. This information is the header information for the nodes routing database. .literal .LIBRARY /MA_Q$LIB:QUEUE.MLB/ RTBUFDEF MAX_OUT_MSG_SIZE=(INTV) MAX_OUT_COUNT=(INTV) RESP_BUF_COUNT=(INTV) .el The following is output to the file for each node the person wants to be on the database. The secondary node name is only used if a secondary node exists. .lt NODE PRIMARY=NODENAME SECONDARY=NODENAME .el Each message id will have the following record output into the file. .lt ROUTE (MESSAGE_ID) .el Befor a new node name is output to the file a blank route line will be output for the list terminator .lt ROUTE .el After we are all done we will add an end marker to the file for the macros' .lt .END .el .PAGE .HL 2 ROUTE_DATABASE_MASTER.DAT This file will be organized as an INDEXED file. This file is set up as a temperary file. The file will have a primary key that is gennerated that has no meaning. The secondary key of node name will be used to access the information we want. The other feilds will be the required information. the records will have the following format: .lt integer*4 MASTER_I_P_KEY ! A PRIMARY KEY THAT IS ONLY ! TO SET UP THE FILE CHARACTER*6 MASTER_C_NODE_NAME ! THE NODE NAME OF THE RECORD ! WE ARE SEARCHING FOR CHARACTER*16 MASTER_C_MESS_ID! THE MESSAGE ID OF THE ! ASSOCIATED RECORD .EL The file will be read always by the secondary key of MASTER_C_NODE_NAME. The file will be opend as follows: .lt OPEN(UNIT=3,FILE='ROUTE_DATABASE_MASTER.DAT',STATUS='UNKNOWN', 1 ORGANIZATION='INDEXED',ACCESS='KEYED',RECORDTYPE='FIXED', 2 FORM='FORMATED', 3 KEY=(1:8:CHARACTER,9:14:CHARACTER),ERR=9999) .EL .page .HL 2 REPORT_FILE The report file will be a sequential file. The file is dessigned to be outputed to the printer. The file will have the following records in it: .literal STRUCTURE/OUT_LINE/ CHARACTER*1 CARCONTROL CHARACTER*80 OUTPUTTEXT END STRUCTURE .END literal Where the opening of the file is sequential. As follows .lt OPEN(UNIT=9,FILE='REPORT_FILE.LIS',STATUSE='NEW') .EL