top - download
⟦16720669f⟧ Wang Wps File
Length: 37618 (0x92f2)
Types: Wang Wps File
Notes: CPS/SDS/030
Names: »1506A «
Derivation
└─⟦c606dccac⟧ Bits:30005804 8" Wang WCS floppy, CR 0108A
└─ ⟦this⟧ »1506A «
WangText
…14……00……00……00……00……1f……0a……00……00……1f……0b……1f……0e……1f……0f……1f……06……19……0c……19……0f……19……06……13……00……13… …13……06……0b……08……0b……09……0b……0d……0b……0e……0b…
…0b……07……0a……0a……0a……0b……0a……0c……0a……0d……0a……0e……0a……0f……86…1 …02… …02… …02…
#
…02…CPS/SDS/030
…02…841012…02……02…
STORAGE AND RETRIEVAL
DETAILED DESIGN SPECIFICATION…02…ISSUE 1…02…CAMPS
4.2.2 O̲n̲-̲l̲i̲n̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲
This section includes the sub-package specification
for the on-line retrieval sub-package.
4.2.2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
Functions performed by this sub-package are:
- receive retrieval requests
- on-line TOC-DTG/on-line TOC-window/off-line retrieval
separation
- on-line catalogue consult
- access check
- retrieval of CIF
- delivery of retrieval result.
Each of these functions is described in detail during
the next six sub-sections.
Figure 4.2.2.1-1 overleaf shows an overview diagram
of the functional specifications.
Fig. 4.2.2.1-1 On-line Retrieval Functional Specification
4.2.2.1.1 R̲e̲c̲e̲i̲v̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲R̲e̲q̲u̲e̲s̲t̲s̲
Retrieval requests are received in the RRQ. Retrievals
in question are on-line and off-line. Completion of
an on-line retrieval causes the next QEL in RRQ to
be received.
4.2.2.1.2 O̲n̲-̲l̲i̲n̲e̲ ̲/̲ ̲O̲f̲f̲-̲l̲i̲n̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲S̲e̲p̲a̲r̲a̲t̲i̲o̲n̲
The retrieval requests in RRQ contain either a TOC
or a DTG as one of the retrieval key parameters. These
are used for separation of the retrievals in on-line
and off-line retrievals. The volume table is used for
this separation. If TOC or DTG are contained in the
TOC or DTG intervals specified in the table, the retrieval
is marked as an off-line retrieval.
In both cases, on-line or off-line, an answer is returned
to requestor acknowledging whether the retrieval is
on-line or off-line.
The case of an off-line retrieval results in the following
actions:
If the off-line retrieval is off, this is acknowledged
to requestor. QEL is removed from RRQ,
If 10 off-line retrievals are waiting, the corresponding
QEL is removed and requestor is informed that off-line
retrieval is intermediately impossible.
If there are less than 10 off-line retrievals waiting
in RRQ, the OFFL ̲RETR ̲COUNTER is incremented.
4.2.2.1.3 O̲n̲l̲i̲n̲e̲ ̲C̲a̲t̲a̲l̲o̲g̲u̲e̲ ̲C̲o̲n̲s̲u̲l̲t̲
Before consulting the on-line catalogue, it is locked
by "wait semaphore ONLINE ̲CAT ̲SEM". This ensures that
only the on-line retrieval sub-package accesses the
catalogue. According to the retrieval type, the catalogue
is consulted. The types of retrievals are:
- retrieval of CIF which fits the retrieval keys;
- retrieval of catalogue information;
- retrieval of catalogue information or CIF if only
one CIF satisfies the keys.
Results of the catalogue consult are of two kinds.
A CIF-id is used for a later retrieve CIF function
call. A number of catalogue entries are collected in
an CIF.
DTG retrieval is carried out the following way to solve
the overlapping DTG intervals problem in the volume
table. Refer figure 4.2.2.1.3-1. First it is checked
if it is an on-line retrieval and the on-line retrieval
is performed if so. If the on-line retrieval completes
as not found, the DTG retrieval request is marked as
an off-line retrieval request. The off-line DTG retrieval
is performed the same way as TOC retrievals except
that it may turn as not found. In this case a mount
request for the next volume is sent to the supervisors
report printer. This mount and retrieval sequence will
continue until message is found or DTG parameter in
retrieval key is not contained in the next DTG interval
for the mounted volume. A not found completion code
is returned and DTG retrieval completed.
After the catalogue consult and retrieval of CIF, the
catalogue is released by signalling the semaphore ONLINE
̲CAT ̲SEM.
Time
Volume windows
youngest volume oldest
volume
vol. 49 volume 48 volume 47 volume
46
in dump use
Volume table contents
TOC TOC,Y,48 TOC,0,48TOC,Y,47 TOC,0,47TOC,Y,46 TOC,0,46
DTG
DTG,Y,48 DTG,0,47
DTG,Y,47 DTG,0,48
DTG,Y,46 DTG,0,46
Y = Youngest
O = Oldest
DTG RETRIEVAL…01…FIGURE 4.2.2.1.3-1
4.2.2.1.4 A̲c̲c̲e̲s̲s̲ ̲C̲h̲e̲c̲k̲
During the catalogue consult, a number of comparing
functions is performed. The record type identifies
which comparison functions are to be achieved during
the access check.
The TOC or DTG retrieval parameter is the first parameter
checked against catalogue contents. If check turns
out positive next parameter in retrieval request is
checked against next parameter in entry. In case the
time check-failed, next entry in catalogue is used
in the access check.
4.2.2.1.5 R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲o̲f̲ ̲C̲I̲F̲
If the catalogue consult has resulted in determination
of a corresponding CIF, this is retrieved using MMS.
A retrieve CIF function call with CIF as input parameter
performs this action. As a result of this retrieval,
either a view ref. or CIF not found completion code
is returned.
4.2.2.1.6 D̲e̲l̲i̲v̲e̲r̲y̲ ̲o̲f̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲R̲e̲s̲u̲l̲t̲
The result of an on-line retrieval is one of the below
mentioned replies sent to requestors return queue:
- return code 1, no CIF found; QEL contains a reference
to a buffer element which contains completion code
and all retrieval keys; this result is returned
if the retrieval key misfits all on-line catalogue
entries or if MMS returns a not found completion
code;
- a CIF containing catalogue entries fulfilling the
retrieval keys; a QEL referencing the CIF is sent;
- return code 2, off-line retrieval intermediately
impossible; QEL contents as specified for return
code 1; this result is returned if off-line retrieval
is off or more than 10 off-line retrievals are
awaiting in RRQ.
- a QEL referencing a CIF in case where only one
catalogue entry corresponds to the retrieval keys.
4.2.2.2 S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
The on-line retrieval sub-package consists of 2 coroutines.
The main coroutine receives retrieval request detects
type and achieves the TOC or DTG retrieval if type
is either of these two.
The TOC window coroutine performs the TOC window retrieval.
Refer figures 4.2.2.2-1-2.
ONLINE
RETRIEVAL
- RETURN ̲ONE ̲OFFL ̲NOT
- ONL ̲SEND ̲OFF-LINE TOC DTG
RETRIEVAL RETRIEVAL
- ONL ̲SEND ̲OFFLINE - ONL ̲SEND ̲OFFLINE
- ONL ̲RETURN ̲NOT ̲FOUND
- POINT ̲ONL ̲PRI ̲ENTRY - POINT ̲ONL ̲PRI ̲ENTRY
- CHECK ̲STATION ̲KEYS - CHECK ̲SECURITY
- CHECK ̲CHANNEL ̲KEYS - CHECK ̲CAMPS ̲TYPE
- CHECK ̲ORIGINATOR ̲KEYS - ONL ̲RETURN ̲CIF
- CHECK ̲MAIN ̲ENT ̲PTR - ONL ̲RETUR ̲NOT ̲FOUND
- CHECK ̲DELETION - POINT ̲ONL ̲DTG ̲ENTRY
- CHECK ̲CAMPS ̲TYPE - CHECK ̲ORIGINATOR
̲KEYS
- CHECK ̲SECURITY
- CHECK ̲SCD
- RRT ̲CATAL
- INIT ̲RET ̲CATAL
- TERM ̲RET ̲CATAL
- ONL ̲RETURN ̲CIF
FIGURE 4.2.2.2-1
SOFTWARE STRUCTURE TOC COROUTINE
WINDOW
RETRIEVAL
- W ̲RETURN ̲NOT ̲FOUND
- CHECK ̲STATION ̲KEYS
- CHECK ̲CHANNEL ̲KEYS
- CHECK ̲ORIGINATOR ̲KEYS
- CHECK ̲MAIN ̲ENT ̲PARS
- W ̲CHECK ̲DELETION
- CHECK ̲CAMPS ̲TYPE
- CHECK SECURITY
- W ̲INIT ̲RET ̲CATAL
- W ̲RRT ̲CATAL
- W ̲TERM ̲RET ̲CATAL
- W ̲RETURN ̲CIF
SOFTWARE STRUCTURE WINDOW COROUTINE
FIGURE 4.2.2.2-2
4.2.2.3 D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲
4.2.2.3.1 S̲u̲b̲-̲P̲a̲c̲k̲a̲g̲e̲ ̲M̲a̲i̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲
The sub-package main control logic is shown in figure
4.2.2.3-1. For further details refer the module design
section.
FIGURE 4.2.2.3-1…86…1 …02… …02… …02… …02…
4.2.2.3.2 O̲n̲l̲i̲n̲e̲ ̲T̲O̲C̲ ̲W̲i̲n̲d̲o̲w̲ ̲R̲e̲g̲i̲s̲t̲r̲a̲t̲i̲o̲n̲
The online TOC window registration is performed by
the online retrieval coroutine. The online TOC window
retrievals is performed by the TOC window retrieval
coroutine.
Actions performed by online retrieval coroutine:
1: Waiting the semaphore WINDOW ̲OPR ̲EMPTY ̲SEM for
empty operation which shall contain online window
retrieval information.
2: Signalling the semaphore WINDOW ̲IN ̲SEM after having
loaded the operation with TOC window retrieval
information.
Actions performed by TOC window retrieval coroutine:
3: Waiting for TOC window retrieval in the operation
semaphore, WINDOW ̲IN ̲SEM
4: Returning the operation semaphore after the TOC
window retrieval by signalling the semaphore WINDOW
̲OPR ̲EMPTY ̲SEM
Refer figure 4.2.2.3.2-1.
Online TOC Window Registration
Figure 4.2.2.3.2-1
4.2.2.4 M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This section contains the module specification for
the modules contained in the on-line retrieval sub-package.
4.2.2.4.1 R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲R̲e̲g̲i̲s̲t̲r̲a̲t̲i̲o̲n̲ ̲M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.2.4.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module receives retrieval requests and detects
type of retrieval. If request is of type DTG or TOC
corresponding retrieval module is activated. If request
is of type TOC-WINDOW the TOC window module is activated.
If request is of type off-line the request is inserted
in the off-line list.
4.2.2.4.1.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
This module interfaces to the following objects:
- Retrieval request queue
- DTG retrieval module
- TOC retrieval module
- TOC ̲WINDOW retrieval module
a) R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲R̲e̲q̲u̲e̲s̲t̲ ̲Q̲u̲e̲u̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
Retrieval request QEL sent from TEP is received
by this module from RRQ. c̲a̲l̲l̲ ̲s̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
RECEIVE ̲FIRST ̲QEL (WAIT, RRQ)
(RRQ ̲ATTR, RRQ ̲QEL,
RRQ ̲SUBQ, CC):ERROR
b) D̲T̲G̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
DTG retrieval module is activated if DTG retrieval
shall be performed.
Call Specification
ON ̲LINE ̲DTG ̲RETRIEVAL () ()
c) T̲O̲C̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
TOC retrieval module is activated if retrieval
request is of type TOC.
Call Specification
ON ̲LINE ̲TOC ̲RETRIEVAL () ()
d) T̲O̲C̲ ̲W̲I̲N̲D̲O̲W̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
TOC WINDOW module or coroutine is activated if
request is of type TOC WINDOW.
Call Specification
CHAIN ̲TOC ̲WINDOW ̲RETRIEVAL () ()
4.2.2.4.1.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲
M̲a̲i̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲
D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Figure 4.2.2.4.1.5-1 presents the main flow for the
online retrieval subpackage.
R̲e̲c̲e̲i̲v̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲R̲e̲q̲u̲e̲s̲t̲
D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Reception of QELs from RRQ , copying of retrieval
buffer and identify of request type is performed in
flowgram in figure 4.2.2.4.1.5-2-4.
C̲o̲p̲y̲ ̲C̲a̲t̲a̲l̲o̲g̲u̲e̲ ̲H̲e̲a̲d̲
D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The online volume entry and catalugue descriptor is
copied to disk.
The PRI and DTG work areas are preset.
Refer flowgram 4.2.2.4.1.5-5
I̲d̲e̲n̲t̲i̲f̲y̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲
D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The type of retrieval is identified i.e. DTG retrieval,
TOC window retrieval or TOC retrieval.
Refer flowgram 4.2.2.4.1.5-5
C̲h̲a̲i̲n̲ ̲T̲O̲C̲ ̲W̲i̲n̲d̲o̲w̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲
D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The TOC window retrievals are chained via the WINDOW
̲OPR ̲EMPTY ̲SEM semaphore if it is for the online disk.
Otherwise the request is send for offline.
If more than IO TOC ̲WINDOW requests are chained, the
reception of retrievals is hanged op by waiting the
semaphore WINDOW ̲OPR ̲EMPTY ̲SEM.
Refer flowgram figure 4.2.2.4.1.5-7
4.2.2.4.1.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
Refer source list
- SAR.D*ONL ̲RTR.D*WIN ̲RTR ̲PREFIX.S
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
Refer source list
- SAR.D*ONL ̲RTR.D*ONL ̲RTR.IMPORT.D*RETR ̲REG ̲MOD.I
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
FIGURE 4.2.2.4.1.4c-1
Figure 4.2.2.4.1.4c-2
Figure 4.2.2.4.1.4.c-3
4.2.2.4.1.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer figures 4.2.2.4.1.5-1-7
ON ̲LINE ̲RETRIEVAL
LOOP
R̲E̲C̲E̲I̲V̲E̲ ̲R̲E̲T̲R̲I̲E̲V̲A̲L̲ ̲R̲E̲Q̲U̲E̲S̲T̲
WAIT ̲SEM (ONL ̲CAT ̲SEM)
C̲O̲P̲Y̲ ̲C̲A̲T̲A̲L̲O̲G̲ ̲H̲E̲A̲D̲,̲ ̲R̲E̲S̲E̲T̲ ̲W̲O̲R̲K̲ ̲D̲A̲T̲A̲
I̲D̲E̲N̲T̲I̲F̲Y̲
R̲E̲T̲R̲I̲E̲V̲A̲L̲
RETRIEVAL TYPE EQ
TOC WINDOW CHAIN ̲TOC ̲WINDOW ̲RETRIEVAL
RETRIEVE ̲TYPE
EQ DTG ̲RETRIEVAL? ON ̲LINE ̲DTG ̲RETRIEVAL
ON ̲LINE ̲TOC ̲RETRIEVAL
SIGNAL ̲SEM (ONL ̲CAT ̲SEM)
END LOOP
F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲2̲.̲4̲.̲1̲.̲5̲-̲1̲
R̲E̲C̲E̲I̲V̲E̲ ̲R̲E̲T̲R̲I̲E̲V̲A̲L̲ ̲R̲E̲Q̲U̲E̲S̲T̲
CASE RECEIVE ̲FIRST ̲QEL (WAIT, RRQ)
(RRQ ̲ATTR, RRQ ̲QEL, RRQ ̲SUBQ,
CC):
ERROR? -ANALYZE ̲ERROR (CC,0)
OK? ̲
END CASE
CASE READ ̲BUFFER (RRQ ̲QEL, RETRIEVE ̲REQUEST ̲BUFFER.MAX
̲SIZE,0) (SIZE, RRQ ̲BUFF, CC):
ERROR? -ANALYZE ̲ERROR (CC,0)
OK? ̲
END CASE
SET ̲RETRIEVAL ̲FLAGS (RRQ ̲BUF)
(REQUEST ̲RETR ̲TYPE)
F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲2̲.̲4̲.̲1̲.̲5̲-̲2̲…86…1…02… …02… …02… …02… …02… …02… …02… …02…
SET ̲RETRIEVAL ̲FLAGS (RRQ ̲BUFF :
ARRAY
(1..
RETRIEVE
̲
REQUEST
̲BUFFER
̲MAX
̲SIZE)
OF
INTEGER)
(REQUEST ̲RETR ̲TYPE : INTEGER)
EQUIVALENCE (RRQ ̲BUFF, RETR ̲BUFF: SUPV ̲RETRIEVAL ̲RECORD
̲TYPE
̲1)
EQUIVALENCE (RRQ ̲BUFF,RETR ̲BUFF : SUPV ̲RETRIEVAL ̲RECORD
̲TYPE
̲2)
EQUIVALENCE (RRQ ̲BUFF, RETR ̲BUFF: SUPV ̲RETRIEVAL ̲RECORD
̲TYPE
̲3)
CASE RETR ̲BUFF.RETR ̲IDENT OF
RETR ̲INC ̲AND ̲TRANS ̲MSG ̲ON ̲CHN ̲KEYS? - REQUEST ̲RETR
̲TYPE =
F ̲RETR ̲INC ̲AND ̲TRANS ̲MSG ̲ON ̲CHN ̲KEYS
RETR ̲INC ̲AND ̲TRANS ̲MSG ̲ON ̲STN ̲KEYS? - REQUEST ̲RETR
̲TYPE =
F ̲RETR ̲INS ̲AND ̲TRANS ̲MSG ̲ON ̲STN ̲KEYS
RETR ̲INC ̲AND ̲TRANS ̲MSG ̲ON ̲PLA ̲KEYS? - REQUEST ̲RETR
̲TYPE =
F ̲RETR ̲INC ̲AND ̲TRANS ̲MSG ̲ON ̲PLA ̲KEYS
RETR ̲INC ̲TRANS ̲FD ̲COMM ̲RELNOT ̲ON ̲ITEM ̲KEYS? - REQUEST
̲RETR ̲TYPE =
F ̲RETR ̲INC ̲TRANS ̲FD ̲COMM ̲RELNON ̲ON ̲ITEM
̲KEYS
RETR ̲INC ̲MSG ̲ON ̲DTG ̲KEYS? REQUEST ̲RETR ̲TYPE =
F ̲RETR ̲INC ̲MSG ̲ON ̲DTG ̲KEYS
RETR ̲TRANS ̲MSG ̲ON ̲CHN ̲KEYS? REQUEST ̲RETR ̲TYPE
=
F ̲RETR ̲TRANS ̲MSG ̲ON ̲CHN ̲KEYS
RETR ̲INC ̲AND ̲REL ̲MSG ̲ON ̲PLA ̲KEYS? REQUEST ̲RETR
̲TYPE =
F ̲RETR ̲INC ̲AND ̲REL ̲MSG ̲ON ̲PLA ̲KEYS
NEXT PAGE NEXT
PAGE
Figure 4.2.2.4.1.5-3…86…1…02… …02… …02… …02… …02… …02… …02… …02…
PREVIOUS PAGE
PREVIOUS
PAGE
RETR ̲TRANS ̲MSG ̲ON ̲ITEM ̲KEYS? REQUEST ̲RETR ̲TYPE =
F ̲RETR ̲TRANS ̲MSG ̲ON ̲ITEM ̲KEYS
RETR ̲TRANS ̲MSG ̲FOR ̲DEL ̲ON ̲ITEM ̲KEYS? REQUEST ̲RETR
̲TYPE =
F ̲RETR ̲TRANS ̲MSG ̲FOR ̲DEL ̲ON ̲ITEM ̲KEYS
RETR ̲REL ̲MSG ̲ON ̲PLA ̲AND ̲ORIG ̲KEYS? REQUEST ̲RETR ̲TYPE
=
F ̲RETR ̲REL ̲MSG ̲ON ̲PLA ̲AND ̲ORIG ̲KEYS
RETR ̲INC ̲AND ̲TRANS ̲MSG ̲FOR ̲READ ̲ON ̲CHN ̲KEYS? REQUEST
̲RETR ̲TYPE =
F ̲RETR ̲INC ̲AND ̲TRANS ̲MSG ̲FOR ̲READ ̲ON ̲CHN ̲KEYS
RETR ̲INC ̲AND ̲TRANS ̲MSC ̲FOR ̲READ ̲ON ̲STN ̲KEYS? REQUEST
̲RETR ̲TYPE =
F ̲RETR ̲INS ̲AND ̲TRANS ̲MSG ̲FOR ̲READ ̲ON ̲STN ̲KEYS
RETR ̲INC ̲MSG ̲FOR ̲READ ̲ON ̲DTG ̲KEYS? REQUEST ̲RETR ̲TYPE
=
F ̲RETR ̲INC ̲MSG ̲FOR ̲READ ̲ON ̲DTG ̲KEYS
RETR ̲FD ̲ON ̲ITEM ̲AND ̲ORIG ̲KEYS? REQUEST ̲RETR ̲TYPE
=
F ̲RETR ̲FD ̲ON ̲ITEM ̲AND ̲ORIG ̲KEYS
RETR ̲IND ̲PIST ̲MSG ̲ON ̲PLA ̲DIST ̲KEYS? REQUEST ̲RETR
̲TYPE =
F ̲RETR ̲INC ̲DIST ̲MSG ̲ON ̲PLA ̲DIST ̲KEYS
RETR ̲REL ̲MSG ̲ON ̲PLA ̲ORIG ̲DIST ̲KEYS? REQUEST ̲RETR
̲TYPE =
F ̲RETR ̲REL ̲MSG ̲ON ̲PLA ̲ORIG ̲DIST ̲KEYS
RETR ̲COMM ̲ON ̲ITEM ̲ORIG ̲DIST ̲KEYS? REQUEST ̲RETR ̲TYPE
=
F ̲RETR ̲COMM ̲ON ̲ITEM ̲ORIG ̲DIST ̲KEYS
RETR ̲RELNOT ̲ON ̲ITEM ̲AND ̲ORIG ̲KEYS? REQUEST ̲RETR ̲TYPE
=
F ̲RETR ̲RELNOT ̲ON ̲ITEM ̲AND ̲ORIG ̲KEYS
RETR ̲INC ̲DIST ̲MSG ̲ON ̲DTG ̲AND ̲DIST ̲KEYS? REQUEST ̲RETR
̲TYPE =
F ̲RETR ̲INC ̲DIST ̲MSC ̲ON ̲DTG ̲AND ̲DIST ̲KEYS
RETR ̲FD ̲AND ̲COMM ̲ON ̲ITEM ̲AND ̲ORIG ̲KEYS? REQUEST ̲RETR
̲TYPE =
F ̲RETR ̲DS ̲AND ̲COMM ̲ON ̲ITEM ̲AND ̲ORIG ̲KEYS
RETR ̲LOG ̲CIF ̲ON ̲LOG ̲KEYS? REQUEST ̲RETR ̲TYPE =
F ̲RETR ̲LOG ̲CIF ̲ON ̲LOG ̲KEYS
END CASE
Figure 4.2.2.4.1.5-4
C̲O̲P̲Y̲ ̲C̲A̲T̲A̲L̲O̲G̲U̲E̲ ̲H̲E̲A̲D̲,̲ ̲R̲E̲S̲E̲T̲ ̲W̲O̲R̲K̲ ̲D̲A̲T̲A̲
WAIT ̲SEM (ONL ̲CAT ̲HEAD ̲SEM)
ONL ̲HEAD ̲COPY.VOLUME ̲ENTRY =
ONLINE ̲VOL ̲HEAD.VOLUME ̲ENTRY
ONL ̲HEAD ̲COPY.CAT ̲DESCR =
ONLINE ̲VOL ̲HEAD.CAT ̲DESCR
SIGNAL ̲SEM (ONL ̲CAT ̲HEAD ̲SEM)
Set catal data buffers as not loaded with data
ONL ̲PRI ̲WORK.NO ̲OF ̲ENTRIES = 0
ONL ̲DTG ̲WORK.NO ̲OF ̲ENTRIES = 0
F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲2̲.̲4̲.̲1̲.̲5̲-̲5̲
I̲D̲E̲N̲T̲I̲F̲Y̲ ̲R̲E̲T̲R̲I̲E̲V̲A̲L̲
EQUIVALENCE (RRQ ̲BUFF, ONL ̲CHANNEL ̲RETRIEVAL: SUPV
̲RE-
TRIEVAL ̲RECORD ̲TYPE ̲1)
EQUIVALENCE (RRQ ̲BUFF, ONL ̲STATION ̲RETRIEVAL: SUPV
̲RE-
TRIEVAL ̲RECORD ̲TYPE ̲2)
EQUIVALENCE (RRQ ̲BUFF, ONL ̲ORIG ̲RETRIEVAL: RETRIEVAL
̲RE-
CORD ̲TYPE ̲3)
DTG retrieval?
ONL ̲ORIG ̲RETRIEVAL.RETR ̲IDENT
AND RETR ̲KEYS ̲MASK EQ
DTG ̲KEYS?
RETRIEVAL ̲TYPE =
DTG ̲RETRIEVAL
ONL ̲ORIG ̲RETRIEVAL.TOC2 GT ONL
̲ORIG
̲RETRIEVAL.TOC1 ?
RETRIEVAL ̲TYPE =
TOC ̲WINDOW
RETRIEVAL ̲TYPE = TOC ̲RETRIEVAL
F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲2̲.̲4̲.̲1̲.̲5̲-̲6̲
…86…1 …02… …02… …02… …02… …02… …02…
CHAIN ̲TOC ̲WINDOW ̲RETRIEVAL
TOC = ONL ̲ORIG ̲RETRIEVAL.TOC1
In online volume?
ONL ̲HEAD ̲COPY.CAT ̲DESCR.FIRST ̲STILL ̲FOR ̲RETRIEVAL ̲TOC.
TOC GT TOC ?
Hang up if too many TOC ̲WINDOW
WAIT ̲OPSEM (WINDOW ̲OPR ̲EMPTY ̲SEM, OPERATION ̲REF)
EQUIVALENCE (OPERATION ̲REF, OPERATION: WINDOW ̲LIST
̲OPR)
OPERATION.INDIC = WINDOW ̲RETRIEVAL
OPERATION.BUFFER ̲REF = RRQ ̲QEL
OPERATION.W ̲RETR ̲TYPE = REQUEST ̲RETR ̲TYPE
SIGNAL ̲OPSEM (WINDOW ̲IN ̲SEM, OPERATION ̲REF)
ONL ̲SEND ̲FOR ̲OFFLINE
RETURN
F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲2̲.̲4̲.̲1̲.̲5̲-̲7̲
4.2.2.4.2 D̲T̲G̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲M̲o̲d̲u̲l̲e̲
4.2.2.4.2.1 ̲F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module performs all functions related to a DTG
retrieval.
4.2.2.4.2.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲
Upwards interface is for retrieval registration coroutine.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
ONLINE ̲DTG.RETRIEVAL ( ) ( )
Downwards interfaces are as follows:
Originator key check
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲ORIGINATOR ̲KEYS
(ORIGINATOR ̲KEYS: ORIGINATOR ̲KEYS,
ORIGINATOR ̲RETRIEVAL ̲RECORD:
RETRIEVAL ̲RECORD ̲TYPE ̲1,
MASK: BIT ̲MASK
(MATCH: KEY ̲MATCH ̲TYPE)
Security key check
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲SECURITY
(ENTRY: MAIN ̲ENTRY,
REQUEST: RETRIEVAL ̲RECORD ̲TYPE ̲3)
(KET ̲MATCH: KEY ̲MATCH ̲TYPE)
Return pointer to PRI catalogue entry
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
POINT ̲ONL ̲PRI ̲ENTRY
(PHYS ̲ENTRY: LONG)
(PRI ̲ENTRY ̲POINTER: POINTER)
Return pointer to DTG catalogue entry
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
POINTER ̲ONL ̲DTG ̲ENTRY
(PHYS ̲ENTRY ̲NO: LONG)
(DTG ̲ENTRY ̲POINTER: POINTER)
Sent not found answer
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
ONL ̲RETURN ̲NOT ̲FOUND ( ) ( )
Send CIF return to return to retrieval requestor
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
ONL ̲RETURN ̲CIF
(MAIN ̲ENTRY ̲POINTER: POINTER) ( )
Check CAMPS type
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲CAMPS ̲TYPE
(ENTRY: MAIN ̲ENTRY,
RETR ̲TYPE: INTEGER)
(MATCH: KEY ̲MATCH ̲TYPE)
4.2.2.4.2.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
Following module component for the DTG retrieval registration
module has been identified:
a) D̲T̲G̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲
Refer flowgram figure 4.2.2.4.2.5-1-2
The request is checked for on-line retrieval or
off-line retrieval. If off-line, the request is
sent for off-line. If on-line, the on-line DTG
catalogue is searched for a fitting entry. If now
no CIFs have been found the request is sent for
off-line. If found a security check is performed
which can result in return of CIF or not found
notification to requestor.
b) V̲e̲r̲i̲f̲y̲ ̲D̲T̲G̲ ̲E̲n̲t̲r̲y̲
The verify DTG entry procedure compares retrieval
keys with the catalogue entry addressed by ENTRY
̲NO. Output is an identification of found or not
found.
Refer flowgram figure 4.2.2.4.2.5-3-4.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
VERIFY ̲DTG ̲ENTRY (ENTRY ̲NO: LONG)
(STATUS: ONL ̲STATUS ̲TYPE)
4.2.2.4.2.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
Refer source list
- SAR.D*ONL ̲RTR.D*WIN ̲RTR ̲PREFIX.S
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
Refer source list
- SAR.D*ONL ̲RTR.D*ONL ̲RTR ̲IMPORT.D*DTG ̲RETR ̲MOD.I
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.2.4.2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer flowgram figure 4.2.2.4.2.5-1-4.
ON ̲LINE ̲DTG ̲RETRIEVAL
DTG = ONL ̲ORIG ̲RETRIEVAL.DTG
PLA = ONL ̲ORIG ̲RETRIEVAL.PLA ̲REF ̲NO
ONL ̲HEAD ̲COPY.VOLUME ̲ENTRY.YOUNGEST ̲DTG
GE DTG GE ONL ̲HEAD ̲COPY.VOLUME ̲ENTRY.OLDEST ̲DTG?
S̲E̲A̲R̲C̲H̲ ̲F̲O̲R̲ ̲D̲T̲G̲
I̲N̲ ̲O̲N̲L̲I̲N̲E̲ ̲V̲O̲L̲U̲M̲E̲
ONL ̲STATUS ̲EQ ̲FOUND?
POINT ̲ONL ̲PRI ̲ENTRY (CURRENT
̲ENTRY,(CURRENT ̲ENTRY ̲POINTER)
EQUIVALENCE (CURRENT ̲ENTRY ̲POINTER,
ENTRY: MAIN ̲ENTRY)
CHECK ̲CAMPS ̲TYPE (ENTRY,
REQUEST ̲RETR
̲
TYPE)(RESULT)
RESULT EQ FALSE ?
ONL ̲RETURN
̲
NOT ̲FOUND
( )( )
CHECK ̲MAIN ̲ENTRY (ENTRY, OFFL
̲
RETR ̲TYPE)
(RESULT)
RESULT EQ FALSE?
ONL ̲RETURN
̲
NOT ̲FOUND
CHECK ̲SECURITY (ENTRY, ONL ̲ORIG
̲
RETRIEVAL)
(RESULT)
RESULT EQ OK?
ONL ̲SEND ̲FOR ONL ̲RETURN ̲ ONL ̲RETURN
OFFLINE NOT ̲FOUND ̲CIF
F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲2̲.̲4̲.̲2̲.̲5̲-̲1̲
S̲E̲A̲R̲C̲H̲ ̲F̲O̲R̲ ̲D̲T̲G̲
I̲N̲ ̲O̲N̲L̲I̲N̲E̲ ̲V̲O̲L̲U̲M̲E̲
CURRENT ̲ENTRY = ONL ̲HEAD ̲COPY.CAT ̲DESCR.FIRST ̲STILL
̲FOR ̲ RETR ̲DTG ̲PRI.PHYS
̲ENTRY ̲NO
LAST ̲ENTRY = ONL ̲HEAD ̲COPY.CAT ̲DESCR.LAST ̲LOADED ̲DTG
̲ PRI.PHYS ̲ENTRY ̲NO
MAX = ONL ̲HEAD ̲COPY.CAT ̲DESCR.MAX ̲NO ̲IN ̲PRI ̲DTG
LAST ̲ENTRY LT CURRENT ̲ENTRY?
LOOP LOOP
VERIFY ̲DTG ̲ENTRY(CURRENT ̲ENTRY) VERIFY ̲DTG ̲ENTRY
(ONL
̲STATUS) (CURRENT
̲ENTRY)
(ONL
̲STATUS)
ONL ̲STATUS EQ FOUND? EXIT ONL ̲STATUS EQ
FOUND EXIT?
CURRENT ̲ENTRY EQ CURRENT ̲ENTRY
EQ
LAST ̲ENTRY ? EXIT MAX?
EXIT
CURRENT ̲ENTRY = CURRENT ̲ENTRY
=
CURRENT ̲ENTRY + 1 CURRENT ̲ENTRY
+ 1
END LOOP END LOOP
CURRENT ̲ENTRY =
1
LOOP
VERIFY ̲DTG
̲ENTRY (CURRENT
̲ENTRY) (ONL
̲STATUS)
ONL ̲STATUS
EQ FOUND?
EXIT
CURRENT ̲ENTRY
EQ? LAST ̲ENTRY
EXIT
CURRENT ̲ENTRY=
CURRENT ̲ENTRY
+ 1
END LOOP
F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲2̲.̲4̲.̲2̲.̲5̲-̲2̲
VERIFY ̲DTG ̲ENTRY (ENTRY ̲NO: LONG)
(STATUS: ONL ̲STATUS ̲TYPE)
POINT ̲ONL ̲DTG ̲ENTRY (ENTRY ̲NO) (DTG ̲ENT ̲POINTER)
EQUIVALENCE (DTG ̲ENT ̲POINTER, ENTRY: INC ̲MSG ̲DTG ̲RECORD
̲TYPE)
DTG ̲ENT.DTG EQ 0? "Not loaded"
DTG NE DTG ̲ENT.DTG?
PLA NE DTG ̲ENT.PLA ̲REF ̲NO?
Test corresponding PRI ̲ENTRY
POINT ̲ONL ̲PRI ̲ENTRY (ENTRY ̲NO) (PRI ̲ENT ̲POINTER)
EQUIVALENCE (PRI ̲ENT ̲POINTER, PRI ̲ENT: PRI ̲ENTRY ̲TYPE)
CHECK ̲ORIGINATOR ̲KEYS (PRI ̲ENT,ONL ̲ORIG ̲RETRIEVAL,
REQUEST ̲
(MATCH)
MATCH EQ NO FIT?
"SCD ̲CHECK ̲INVOLVED?"
REQUEST ̲RETR ̲TYPE AND RETR ̲DIST ̲SCD EQ 0?
EQUIVALENCE (PRI ̲ENT ̲POINTER, HEAD: CAT ̲ENTRY ̲HEADER)
HEAD.NO ̲OF ̲SCDS EQ 0?
L̲O̲O̲P̲ ̲O̲N̲ ̲S̲C̲D̲ ̲E̲N̲T̲R̲I̲E̲S̲
MATCH EQ NO FIT?
STATUS = FOUND STATUS = NOT ̲FOUND
F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲2̲.̲4̲.̲2̲.̲5̲-̲3̲
L̲O̲O̲P̲ ̲O̲N̲ ̲S̲C̲D̲ ̲E̲N̲T̲R̲I̲E̲S̲ ̲
SCD = ONL ̲ORIG ̲RETRIEVAL.ORIGINATOR ̲SCD
WORK ̲ENTRY ̲NO = ENTRY ̲NO
LOOP
WORK ̲ENTRY ̲NO = WORK ̲ENTRY ̲NO + 1
WORK ̲ENTRY ̲NO LE MAX?
WORK ̲ENTRY ̲NO = 1
POINT ̲ONL ̲PRI ̲ENTRY (WORK ̲ENTRY ̲NO,
WORK ̲ENTRY ̲POINTER)
EQUIVALENCE (WORK ̲ENTRY ̲POINTER, SCD ̲WORK ̲LIST:
SCD ̲
ENTRY)
CHECK ̲SCD (SCD, SCD ̲WORK ̲LIST) (MATCH)
MATCH EQ FIT? EXIT
Continuation entry?
SCD ̲WORK ̲LIST.KIND (1) EQ NOT ̲CONTINUES? EXIT
END LOOP
F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲2̲.̲4̲.̲2̲.̲5̲-̲4̲
4.2.2.4.3 T̲O̲C̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲M̲o̲d̲u̲l̲e̲
4.2.2.4.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module performs the TOC retrieval.
4.2.2.4.3.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
Interfaces upwards are for retrieval registration module,
which calls this module
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
ONLINE ̲TOC ̲RETRIEVAL ( ) ( )
Interfaces downwards are as follows:
Check station keys
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲STATION ̲KEYS
(CHANNEL ̲STATION ̲KEYS: CHANNEL ̲STATION ̲KEYS,
CHENNEL ̲RETRIEVAL ̲RECORD: RETRIEVAL ̲RECORD ̲TYPE
̲2)
(KEY ̲MATCH: KEY ̲MATCH ̲TYPE)
Check originator keys
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲ORIGINATOR ̲KEYS
(ORIGINATOR ̲KEYS: ORIGINATOR ̲KEYS,
ORIGINATOR ̲RETRIEVAL ̲RECORD:
RETRIEVAL ̲RECORD ̲TYPE ̲3)
Mask: BI ̲MASK)
(MATCH: KEY ̲MATCH ̲TYPE)
Check security
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲SECURITY
(ENTRY: MAIN ̲ENTRY,
REQUEST: RETRIEVAL ̲RECORD ̲TYPE ̲3)
(MATCH: KEY ̲MATCH ̲TYPE)
Check main entry parameters
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲MAI ̲ENT ̲PARS
(ENTRY: MAIN ̲ENTRY,
FLACS: INTEGER)
(MATCH: KEY ̲MATCH ̲TYPE)
Check CAMPS type
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲CAMPS ̲TYPE
(ENTRY: MAIN ̲ENTRY,
RETR ̲TYPE: INTEGER)
(MATCH: KEY ̲MATCH ̲TYPE)
Add catalogue entry to CIF
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
RET ̲CATAL
(ENTRY: MAIN ̲ENTRY) ( )
Terminate and return catalogue CIF
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
TERM ̲RET ̲CATAL ( ) ( )
Initialize catalogue CIF
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
INIT ̲RET ̲CATAL ( ) ( )
Return pointer to PRI catalogue entry
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
POINT ̲ONL ̲PRI ̲ENTRY
(PHYS ̲ENTRY ̲NO: LONG)
(PRI ̲ENTRY ̲POINTER: POINTER)
Return not found answer to requestor
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
ONL ̲RETURN ̲NOT ̲FOUND ( ) ( )
Return message to requestor
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
ONL ̲RETURN ̲CIF
(MAIN ̲ENTRY: MAIN ̲ENTRY) ( ) ( )
Send retrieval request to the off-line coroutine
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
ONL ̲SEND ̲OFFLINE ( ) ( )
Check if the referenced is deleted
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲DELETION
(CIF ̲RERENCE ̲NUMBER: LONG)
(RESULT: BOOLEAN)
4.2.2.4.3.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
a) M̲a̲i̲n̲ ̲M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Refer flowgram figure 4.8.2.4.3.5-1-11.
This module first checks if request is for the
off-line disk. If so, the request is sent for off-line.
Otherwise the corresponding TOC interval is searched
on the on-line disk.
This is implemented by calculating the physical
TOC intervals. Transferring a part of the PRI ̲FILE
̲ON into a buffer for search, to verify if any entries
are fitting. Collection of fitting entries to a
possible catalogue CIF or just a single entry and
return of result to requestor.
Following shared module components have been identified
for this module.
b) I̲n̲i̲t̲i̲a̲l̲i̲z̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲C̲a̲t̲a̲l̲o̲g̲u̲e̲
Refer flowgram figure 4.2.2.4.3.5-12.
This module component initializes the CIF to be
returned with catalogue information to requestor.
The CIF is created, the number of entries set to
0 and CIF classification set to unclassified.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
INIT ̲RET ̲CATAL ( ) ( )
c) R̲e̲t̲u̲r̲n̲ ̲c̲a̲t̲a̲l̲o̲g̲u̲e̲ ̲B̲u̲f̲f̲e̲r̲
Refer flowgram figure 4.2.2.4.3.5-13.
This component procedure transfers the catalogue
buffer to a previously created catalogue CIF if
buffer exceeds catal buffer length.
If there is room enough in buffer the catalogue
entry is supplied.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
RET ̲CATAL ( ) ( )
d) T̲e̲r̲m̲i̲n̲a̲t̲e̲ ̲C̲a̲t̲a̲l̲o̲g̲u̲e̲ ̲C̲I̲F̲
Refer flowgram figure 4.2.2.4.3.5-14.
This procedure completes the catalogue CIF i.e.
transfer rest of buffer to CIF, sends the CIF to
requestor and dismantle of QEL.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
TERM ̲RET ̲CATAL ( ) ( )
4.2.2.4.3.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) R̲e̲f̲e̲r̲e̲n̲c̲e̲ ̲D̲a̲t̲a̲
Refer source list
- SAR.D*ONL ̲RTR.D*WIN ̲RTR ̲PREFIX.S
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
Refer source list
- SAR.D*ONL ̲RTR.D*ONL ̲RTR ̲IMPORT.D*TOC ̲RETR ̲MOD.I
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.2.4.3.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer flowgrams 4.2.2.4.3.5-1-14.
ON ̲LINE ̲TOC ̲RETRIEVAL
TOC = ONL ̲ORIG ̲RETRIEVAL.TOC1
Test if on-line
TOC LT ONL ̲HEAD ̲COPY. CAT ̲DESCR.
FIRST ̲STILL ̲FOR ̲RETR ̲TOC. TOC?
ONL ̲SEND ̲FOR ̲OFFLINE
Too young?
TOC GT ONL ̲HEAD ̲COPY. CAT ̲DESCR.
LAST ̲LOADED ̲TOC.TOC ?
ONL ̲RETURN ̲NOT ̲FOUND
C̲A̲L̲C̲U̲L̲A̲T̲E̲ ̲P̲H̲Y̲S̲ ̲T̲O̲C̲ ̲E̲N̲T̲R̲Y̲
R̲E̲A̲D̲ ̲T̲O̲C̲
V̲E̲R̲I̲F̲Y̲ ̲T̲H̲A̲T̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲D̲ ̲E̲N̲T̲R̲Y̲
I̲S̲ ̲N̲O̲T̲ ̲F̲I̲R̲S̲T̲ ̲F̲R̲E̲E̲ ̲A̲N̲D̲ ̲C̲A̲L̲C̲U̲-̲
L̲A̲T̲E̲ ̲P̲H̲Y̲S̲ ̲P̲R̲I̲ ̲E̲N̲T̲ ̲?̲
L̲O̲O̲P̲ ̲O̲N̲ ̲P̲R̲I̲ ̲E̲N̲T̲R̲I̲E̲S̲ ONL ̲RETURN ̲NOT ̲FOUND
CATAL ̲RET EQ TRUE? TERM ̲RET ̲CATAL
NO ̲OF ̲ENTRIES ̲FOUND EQ 0?
POINT ̲ONL ̲PRI ̲ENTRY (FOUND ̲ENTR(1), ONL ̲RETURN ̲NOT
̲FOUND
WORK ̲ENTY ̲POINT)
EQUIVALENCE (WORK ̲ENTRY ̲POINT, ENTRY: MAIN ̲ENTRY)
ONL ̲RETURN ̲CIF
RETURN
FIGURE 4.2.2.4.3.5-1
C̲A̲L̲C̲U̲L̲A̲T̲E̲ ̲P̲H̲Y̲S̲ ̲T̲O̲C̲ ̲E̲N̲T̲R̲Y̲
TOC ̲ENTRY ̲DIFF = (TOC-
ONL ̲HEAD ̲COPY.CAT ̲DESCR.
FIRST ̲STILL ̲FOR ̲RETR ̲TOC.TOC)/60
PHYS ̲TOC ̲ENTRY = TOC ̲ENTRY ̲DIFF +
ONL ̲HEAD ̲COPY.CAT ̲DESCR.
FIRST ̲STILL ̲FOR ̲RETR ̲TOC
PHYS ̲ENTRY ̲NO
MAX = ONL ̲HEAD ̲COPY.CAT ̲DESCR.
MAX ̲NO ̲IN ̲TOC
PHYS ̲TOC ̲ENTRY LT MAX?
PHYS ̲TOC ̲ENTRY =
PHYS ̲TOC ̲ENTRY-MAX
FIGURE 4.2.2.4.3.5-2
R̲E̲A̲D̲ ̲T̲O̲C̲
LOAD ONL ̲TOC ̲FILADD corresponding to
PHYS ̲TOC ̲ENTRY
CASE READBYTES (ONL ̲TOC ̲FD, ONL ̲TOC ̲FILADD,
TOC ̲ENTRY ̲BLE)
(ONL ̲TOC ̲FILADD, CC):
ERROR? ANALYZE ̲ERROR(CC, 0)
OK?
END CASE
FIGURE 4.2.2.4.3.5-3
V̲E̲R̲I̲F̲Y̲ ̲T̲H̲A̲T̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲D̲ ̲E̲N̲T̲R̲Y̲
I̲S̲ ̲N̲O̲T̲ ̲F̲I̲R̲S̲T̲ ̲F̲R̲E̲E̲ ̲A̲N̲D̲
C̲A̲L̲C̲U̲L̲A̲T̲E̲ ̲P̲H̲Y̲S̲ ̲P̲R̲I̲ ̲E̲N̲T̲
TOC ̲ENTRY GT
ONL ̲HEAD ̲COPY.CAT ̲DESCR.
LAST ̲LOADED ̲DTG ̲PRI.ABS ̲ENTRY ̲NO?
IS NOT
PHYS ̲PRI ̲ENT =
ONL ̲HEAD ̲COPY.CAT ̲DESCR.
FIRST ̲STILL ̲FOR ̲RETR ̲DTG ̲PRI.
PHYS ̲ENTRY ̲NO + TOC ̲ENTRY
MAX = ONL ̲HEAD ̲COPY.CAT ̲DESCR.
MAX ̲NO ̲IN ̲PRI ̲DTG
PHYS ̲PRI ̲ENT LE MAX?
PHYS ̲PRI ̲ENT =
PHYS ̲PRI ̲ENT - MAX
LAST ̲ENTRY = ONL ̲HEAD ̲COPY.CAT ̲DESCR.
LAST ̲LOADED ̲DTG ̲PRI.
PHYS ̲ENTRY ̲NO
FIGURE 4.2.2.4.3.5-4
L̲O̲O̲P̲ ̲O̲N̲ ̲P̲R̲I̲ ̲E̲N̲T̲R̲I̲E̲S̲
NO ̲OF ̲ENTRIES ̲FOUND = 0, CATAL ̲RET = FALSE
WORK ̲ENTRY ̲NO = PHYS ̲PRI ̲ENT
KEYTYPE = REQUEST ̲RETR ̲TYPE AND RETR ̲KEYS
L̲O̲A̲D̲ ̲S̲C̲D̲
LOOP
POINT ̲ONL ̲PRI ̲ENTRY (WORK ̲ENTRY ̲NO)
(WORK ̲ENTRY ̲POINT)
EQUIVALENCE(WORK ̲ENTRY ̲POINT, ENTRY: MAIN ̲ENTRY)
CASE ENTRY.KIND(2) OF
ORIGIN ̲ENTRY,CHN ̲STATION ̲ENTRY: H̲A̲N̲D̲L̲E̲ ̲M̲A̲I̲N̲ ̲E̲N̲T̲R̲Y̲
SCD ̲ENTRY: H̲A̲N̲D̲L̲E̲ ̲S̲C̲D̲ ̲E̲N̲T̲R̲Y̲
END CASE
NO ̲OF ̲ENTRIES ̲FOUND EQ2?
CATAL ̲RET = TRUE
INIT ̲RET ̲CATAL
RET ̲CATAL(FOUND ̲ENTR(1))
RET ̲CATAL(FOUND ̲ENTR(2))
NO ̲OF ̲ENTRIES ̲FOUND = 0
CATAL ̲REF EQ TRUE and
NO ̲OF ̲ENTRIES ̲FOUND EQ 1?
RET ̲CATAL(FOUND ̲ENTR(1))
NO ̲OF ̲ENTRIES ̲FOUND = 0
Finished
LAST ̲TOC GT TOC?
WORK ̲ENTRY ̲NO EQ LAST ̲ENTRY?
WORK ̲ENTRY ̲NO =
WORK ̲ENTRY ̲NO + 1
WORK ̲ENTRY ̲NO LE MAX?
WORK ̲ENTRY ̲NO = 1
END LOOP
FIGURE 4.2.2.4.3.5-5
L̲O̲A̲D̲ ̲S̲C̲D̲
CASE KEYTYPE OF
PLA ̲KEYS, ITEM KEYS:
SCD = ONL ̲ORIG ̲RETRIEVAL.ORIGINATOR ̲SCD
OTHER
END CASE
FIGURE 4.2.2.4.3.5-6
H̲A̲N̲D̲L̲E̲ ̲M̲A̲I̲N̲ ̲E̲N̲T̲R̲Y̲
LAST TOC = ENTRY.HEADER.TOC
LAST TOC GT TOC? - MATCH = NO ̲FIT
CASE KEYTYPE OF
STATION ̲KEYS: H̲A̲N̲D̲L̲E̲ ̲S̲T̲A̲T̲I̲O̲N̲ ̲K̲E̲Y̲S̲
CHANNEL ̲KEYS: H̲A̲N̲D̲L̲E̲ ̲C̲H̲A̲N̲N̲E̲L̲ ̲K̲E̲Y̲S̲
PLA ̲KEYS,ITEM ̲KEYS: H̲A̲N̲D̲L̲E̲ ̲O̲R̲I̲G̲ ̲K̲E̲Y̲S̲
END CASE
MATCH EQ NO ̲FIT?
CHECK ̲MAIN ̲ENT ̲PARS (ENTRY, REQUEST ̲RETR ̲TYPE)(MATCH)
MATCH EQ NO ̲FIT?
CHECK ̲CAMPS ̲TYPE (ENTRY,REQUEST ̲RETR ̲TYPE) (MATCH)
MATCH EQ NO ̲FIT?
CHECK ̲SECURITY(ENTRY, ONL ̲ORIG ̲RETRIEVAL)
(RESULT)
RESULT EQ OK?
MATCH = NO ̲FIT MAIN ̲ENT ̲NO = WORK ̲ENTR ̲NO
MATCH EQ NO ̲FIT
KEYTYPE IS NOT STATION OR CHANNEL?
Register a found entry
NO ̲OF ̲ENTRIES ̲FOUND =
NO ̲OF ̲ENTRIES ̲FOUND + 1
FOUND ̲ENTR (NO ̲OF ̲ENTRIES ̲FOUND) = MAIN ̲ENT ̲NO
FIGURE 4.2.2.4.3.5-7
H̲A̲N̲D̲L̲E̲ ̲S̲T̲A̲T̲I̲O̲N̲ ̲K̲E̲Y̲S̲
ENTRY.KIND(1) NE CHN ̲STATION ̲ENTRY?
CHECK ̲STATION ̲KEYS
(ENTRY, ONL ̲STATION ̲RETRIEVAL, MATCH = NO ̲FIT
REQUEST ̲RETR ̲TYPE)(MATCH)
FIGURE 4.2.2.4.3.5-8
H̲A̲N̲D̲L̲E̲ ̲C̲H̲A̲N̲N̲E̲L̲ ̲K̲E̲Y̲S̲
ENTRY.KIND(1) NE CHN ̲STATION ̲ENTRY?
CHECK ̲CHANNEL ̲KEYS
(ENTRY, ONL ̲CHANNEL ̲RETRIEVAL, MATCH = NO ̲FIT
REQUEST ̲RETR ̲TYPE)(MATCH)
FIGURE 4.2.2.4.3.5-9
H̲A̲N̲D̲L̲E̲ ̲O̲R̲G̲ ̲K̲E̲Y̲S̲
ENTRY.KIND(1) NE ORIGIN ̲ENTRY?
CHECK ̲ORIGINATOR ̲KEYS
(ENTRY,ONL ̲ORIG ̲RETRIEVAL, MATCH
=
NO
̲FIT
REQUEST ̲RETR ̲TYPE)(MATCH)
FIGURE 4.2.2.4.3.5-10
H̲A̲N̲D̲L̲E̲ ̲S̲C̲D̲ ̲E̲N̲T̲R̲Y̲
Skip if no main entry fit or entry already found
MATCH EQ NOFIT?
Skip if no SCD check
KEYTYPE EQ CHANNEL ̲KEYS?
KEYTYPE EQ STATION ̲KEYS?
REQUEST ̲RETR ̲TYPE AND RETR ̲DIST ̲SCD EQ 0
CHECK ̲SCD (SCD, ENTRY) (SCD ̲MATCH)
SCD ̲MATCH EQ NO ̲FIT?
Register a found entry (main)
NO ̲OF ̲ENTRIES ̲FOUND =
NO ̲OF ̲ENTRIES ̲FOUND + 1
FOUND ̲ENTR (NO ̲OF ̲ENTRIES ̲FOUND)
= MAIN ̲ENT ̲NO
Stop SCD-Scan for this main entry
MATCH = NO ̲FIT
FIGURE 4.2.2.4.3.5-11
INIT ̲RET ̲CATAL
CASE CREATE ̲CIF (CATAL ̲VIEW ̲ATTR, RRQ)
(CATAL ̲VIEW ̲REF, CC):
ERROR? ̲ANALYZE ̲ERROR (CC,0)
OK?
END CASE
Write field 1 with transmission catal for channel and
station and system catal for other
CATAL ̲BUF ̲NO ̲OF ̲ENT = 0
CATAL ̲MAX ̲CLASS = UNCLASSIFIED
F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲2̲.̲4̲.̲3̲.̲5̲-̲1̲2̲
RET ̲CATAL
INCREMENT CATAL ̲NO ̲OF ̲ENT
PUT parameters from ENTRY into
CATAL ̲BUF (CATAL ̲NO ̲OF ̲ENT)
UPDATE CATAL ̲MAX ̲CLASS
CATAL NO OF ENT EQ
CATAL ̲BUF ̲LENGTH?
CASE WRITE ̲VIEW (BUFFER ̲SIZE,
CATAL ̲FIELD ̲LIST,
CATAL ̲VIEW ̲REF,
CATAL ̲BUF) (CC):
ERROR? ̲ANALYZE ̲ERROR (CC,0)
OK?
END ̲CASE
CATAL ̲NO ̲OF ̲ENT = 0
RETURN
F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲2̲.̲4̲.̲3̲.̲5̲-̲1̲3̲.̲
TERM ̲RET ̲CATAL
Output content of CATAL ̲BUF TO CIF
RETURN CIF
DISCONNECT CATAL ̲VIEW ̲REF
F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲2̲.̲4̲.̲3̲.̲5̲-̲1̲4̲.̲
4.2.2.4.4 T̲O̲C̲ ̲W̲i̲n̲d̲o̲w̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲M̲o̲d̲u̲l̲e̲
4.2.2.4.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module performs the on-line TOC window retrieval.
4.2.2.4.4.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
Interface to other modules is as follows:
- upwards interface
- downwards interface
a) R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲R̲e̲g̲i̲s̲t̲r̲a̲t̲i̲o̲n̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
The retrieval registration module initiates the
TOC window module in case where a TOC window retrieval
has been detected.
Incarnation of TOC window coroutine is performed
by signalling the semaphore WINDOW ̲IN ̲ ̲SEM.
b) D̲o̲w̲n̲w̲a̲r̲d̲s̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
Check station keys
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲STATION ̲KEYS
(CHANNEL ̲STATION ̲KEYS: CHANNEL ̲STATION ̲KEYS,
CHANNEL ̲RETRIEVAL ̲RECORD:
RETRIEVAL ̲RECORD ̲TYPE ̲2)
(KEY ̲MATCH: KEY ̲MATCH ̲TYPE)
Check originator keys
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲ORIGINATOR ̲KEYS
(ORIGINATOR ̲KEYS: ORIGINATOR ̲KEYS,
ORIGINATOR ̲RETRIEVAL ̲RECORD:
RETRIEVAL ̲RECORD ̲TYPE ̲3,
MASK: BIT ̲MASK)
(MATCH: KEY ̲MATCH ̲TYPE
Check security
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲SECURITY
(ENTRY: MAIN ̲ENTRY,
REQUEST: RETRIEVAL ̲RECORD ̲TYPE ̲3)
(MATCH: KEY ̲MATCH ̲TYPE)
Check main entry parameters
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲MAIN ̲ENT ̲PARS,
(ENTRY: MAIN ̲ENTRY,
FLACS: INTEGER)
(MATCH: KEY ̲MATCH ̲TYPE)
Check CAMPS type
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲CAMPS ̲TYPE
(ENTRY: MAIN ̲ENTRY,
RETR ̲TYPE: INTEGER)
(MATCH: KEY ̲MATCH ̲TYPE)
Add catalogue entry to catalogue CIF
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
W ̲RET ̲CATAL
(ENTRY: MAIN ̲ENTRY) ( )
Terminate and return catalogue CIF
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
W ̲TERM ̲RET ̲CATAL ( ) ( )
Initialize catalogue CIF
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
W ̲INIT ̲RET ̲CATAL ( ) ( )
Return pointer to PRI catalogue entry
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
POINT ̲ONL ̲PRI ̲ENTRY
(PHYS ̲ENTRY ̲NO: LONG)
(PRI ̲ENTRY ̲POINTER: POINTER)
Return not found answer to requestor
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
W ̲RETURN ̲NOT ̲FOUND ( ) ( )
Return message to requestor
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
W ̲RETURN ̲CIF
(MAIN ̲ENTRY: MAIN ̲ENTRY) ( )
Check if the referenced is deleted
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
W ̲CHECK ̲DELETION
(CIF ̲RERENCE ̲NUMBER: LONG)
(RESULT: BOOLEAN)
Dismantling window coroutine QEL's
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
W ̲DISCONNECT ̲QEL
(QEL: QEL ̲REFERENCE,
OBJ: OBJECT ̲TYPE) ( )