159 lines
9.4 KiB
HTML
159 lines
9.4 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE html
|
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html lang="en-us" xml:lang="en-us">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="security" content="public" />
|
|
<meta name="Robots" content="index,follow" />
|
|
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
|
|
<meta name="DC.Type" content="reference" />
|
|
<meta name="DC.Title" content="Example: Wait for input from a display file and an ICF file" />
|
|
<meta name="abstract" content="This example shows a program waiting for input from a display file and an ICF file, using a data queue." />
|
|
<meta name="description" content="This example shows a program waiting for input from a display file and an ICF file, using a data queue." />
|
|
<meta name="DC.Relation" scheme="URI" content="explq.htm" />
|
|
<meta name="DC.Relation" scheme="URI" content="qcomm.htm" />
|
|
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
|
|
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
|
|
<meta name="DC.Format" content="XHTML" />
|
|
<meta name="DC.Identifier" content="dspficf" />
|
|
<meta name="DC.Language" content="en-us" />
|
|
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
|
<!-- US Government Users Restricted Rights -->
|
|
<!-- Use, duplication or disclosure restricted by -->
|
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
|
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
|
|
<link rel="stylesheet" type="text/css" href="./ic.css" />
|
|
<title> Example: Wait for input from a display file and an ICF file</title>
|
|
</head>
|
|
<body id="dspficf"><a name="dspficf"><!-- --></a>
|
|
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
|
<h1 class="topictitle1"> Example: Wait for input from a display file and an ICF file</h1>
|
|
<div><p>This example shows a program waiting for input from a display file
|
|
and an ICF file, using a data queue.</p>
|
|
<div class="section"><br /><img src="rbafn544.gif" alt="This example is different from the usual use of data queues because there is only one job. The data queue serves as a communications object within the job rather than between two jobs." /><br /></div>
|
|
<div class="section"><p>The following example is different from the usual use of data
|
|
queues because there is only one job. The data queue serves as a communications
|
|
object within the job rather than between two jobs. </p>
|
|
<p>In this example,
|
|
a program is waiting for input from a display file and an ICF file. Instead
|
|
of alternately waiting for one and then the other, a data queue is used to
|
|
allow the program to wait on one object (the data queue). The program calls
|
|
QRCVDTAQ and waits for an entry to be placed on the data queue that was specified
|
|
on the display file and the ICF file. Both files specify the same data queue.
|
|
Two types of entries are put on the queue by display data management and
|
|
ICF data management support when the data is available from either file. ICF
|
|
file entries start with <samp class="codeph">*ICFF</samp> and display file entries start
|
|
with <samp class="codeph">*DSPF</samp>.</p>
|
|
</div>
|
|
<div class="section"><p>The display file or ICF file entry that is put on the data queue
|
|
is 80 characters in length and contains the field attributes described in
|
|
the following list. Therefore, the data queue that is specified using the
|
|
CRTDSPF, CHGDSPF, OVRDSPF, CRTICFF, CHGICFF, and OVRICFF commands must have
|
|
a length of at least 80 characters. </p>
|
|
<dl><dt><strong>Position (and Data Type)</strong></dt>
|
|
<dd><strong>Description</strong></dd>
|
|
<dt class="dlterm">1 through 10 (character)</dt>
|
|
<dd>The type of file that placed the entry on the data queue. This field will
|
|
have one of two values: <ul><li><samp class="codeph">*ICFF</samp> for ICF file</li>
|
|
<li><samp class="codeph">*DSPF</samp> for display file</li>
|
|
</ul>
|
|
<p>If the job receiving the data from the data queue has only one display
|
|
file or one ICF file open, then this is the only field needed to determine
|
|
what type of entry has been received from the data queue.</p>
|
|
</dd>
|
|
<dt class="dlterm">11 through 12 (binary)</dt>
|
|
<dd>The unique identifier for the file. The value of the identifier is the
|
|
same as the value in the open feedback area for the file. This field should
|
|
be used by the program receiving the entry from the data queue only if there
|
|
is more than one file with the same name placing entries on the data queue.</dd>
|
|
<dt class="dlterm">13 through 22 (character)</dt>
|
|
<dd>The name of the display file or ICF file. This is the name of the file
|
|
actually opened, after all overrides have been processed, and is the same
|
|
as the file name found in the open feedback area for the file. This field
|
|
should be used by the program receiving the entry from the data queue only
|
|
if there is more than one display file or ICF file that is placing entries
|
|
on the data queue.</dd>
|
|
<dt class="dlterm">23 through 32 (character)</dt>
|
|
<dd>The library where the file is located. This is the name of the library,
|
|
after all overrides have been processed, and is the same as the library name
|
|
found in the open feedback area for the file. This field should be used by
|
|
the program receiving the entry from the data queue only if there is more
|
|
than one display file or ICF file that is placing entries on the data queue.</dd>
|
|
<dt class="dlterm">33 through 42 (character)</dt>
|
|
<dd>The program device name, after all overrides have been processed. This
|
|
name is the same as that found in the program device definition list of the
|
|
open feedback area. For file type *DSPF, this is the name of the display device
|
|
where the command or Enter key was pressed. For file type *ICFF, this is the
|
|
name of the program device where data is available. This field should be used
|
|
by the program receiving the entry from the data queue only if the file that
|
|
placed the entry on the data queue has more than one device or session invited
|
|
prior to receiving the data queue entry.</dd>
|
|
<dt class="dlterm">43 through 80 (character)</dt>
|
|
<dd>Reserved.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section"><p>The following example shows coding logic that the program previously
|
|
described might use: </p>
|
|
<pre> .
|
|
.
|
|
.
|
|
.
|
|
OPEN DSPFILE ... /* Open the Display file. DTAQ parameter specified on*/
|
|
/* CRTDSPF, CHGDSPF, or OVRDSPF for the file. */
|
|
|
|
OPEN ICFFILE ... /* Open the ICF file. DTAQ parameter specified on */
|
|
/* CRTICFF, CHGICFF, or OVRICFF for the file. */
|
|
|
|
.
|
|
.
|
|
DO
|
|
WRITE DSPFILE /* Write with Invite for the Display file */
|
|
WRITE ICFFILE /* Write with Invite for the ICF file */
|
|
|
|
CALL QRCVDTAQ /* Receive an entry from the data queue specified */
|
|
/* on the DTAQ parameters for the files. Entries */
|
|
/* are placed on the data queue when the data is */
|
|
/* available from any invited device or session */
|
|
/* on either file. */
|
|
/* After the entry is received, determine which file */
|
|
/* has data available, read the data, process it, */
|
|
/* invite the file again and return to process the */
|
|
/* next entry on the data queue. */
|
|
IF 'ENTRY TYPE' FIELD = '*DSPF ' THEN /* Entry is from display */
|
|
DO /* file. Since this entry*/
|
|
/* does not contain the */
|
|
/* data received, the data*/
|
|
/* must be read from the */
|
|
/* file before it can be */
|
|
READ DATA FROM DISPLAY FILE /* processed. */
|
|
PROCESS INPUT DATA FROM DISPLAY FILE
|
|
WRITE TO DISPLAY FILE /* Write with Invite */
|
|
END
|
|
ELSE /* Entry is from ICF */
|
|
/* file. Since this entry*/
|
|
/* does not contain the */
|
|
/* data received, the data*/
|
|
/* must be read from the */
|
|
/* file before it can be */
|
|
/* processed. */
|
|
READ DATA FROM ICF FILE
|
|
PROCESS INPUT DATA FROM ICF FILE
|
|
WRITE TO ICF FILE /* Write with Invite */
|
|
LOOP BACK TO RECEIVE ENTRY FROM DATA QUEUE
|
|
.
|
|
.
|
|
.
|
|
END</pre>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="explq.htm" title="This includes examples of three methods for processing data queue files.">Examples: Use a data queue</a></div>
|
|
</div>
|
|
<div class="reltasks"><strong>Related tasks</strong><br />
|
|
<div><a href="qcomm.htm" title="Data queues are a type of system object that you can create, to which one HLL procedure or program can send data, and from which another HLL procedure or program can receive data.">Use data queues</a></div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html> |