ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/xprstree.htm

293 lines
10 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>Process a Path Name Exit Program</title>
<!-- 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. -->
<!-- Begin Header Records ========================================== -->
<!-- Unix2 SCRIPT J converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
<!-- Change History: -->
<!-- 010906 JTROUS == add cross reference back to Qp0lProcessSubtree -->
<!-- 0206?? JET This file has undergone html cleanup June 2002 by JET -->
<!-- 010906 JTROUS fix some typos, no change flagging, v5r4 -->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="Top_Of_Page"></a>
<!-- Java sync-link -->
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
</script>
<h2>Process a Path Name Exit Program</h2>
<div class="box" style="width: 70%;">
<br>
&nbsp;&nbsp;Required Parameter Group:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="50%">Selection status pointer</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Error value pointer</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">BINARY(4)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">Return value pointer</td>
<td align="left" valign="top">Output</td>
<td align="left" valign="top">BINARY(4)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Object name pointer</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">CHAR(*)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Function control block pointer</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">CHAR(*)</td>
</tr>
</table>
<br>
<br>
</div>
<p>The Process a Path Name exit program is a user-specified exit program that
is called by the <strong>Qp0lProcessSubtree()</strong> function for each object
in the API's search that meets the caller's selection criteria. This exit
program can be either a procedure or program.</p>
<p>When the user exit program is given control, it can call other APIs, build
lists or tables, or do other processing. Since the API passes the names of all
the children objects to the user exit program before passing the name of the
parent, the user exit program can also delete directories.</p>
<p>If the exit program encounters an error during processing, it returns a
valid <em>errno</em> in the Return value pointer field, that <strong>
Qp0lProcessSubtree()</strong> returns to its caller. When its processing is
complete, the exit program return code is set to tell <strong>
Qp0lProcessSubtree()</strong> to do one of the following:</p>
<ul>
<li>End processing.</li>
<li>Continue processing by calling the exit program again with the next object
from the same directory.</li>
<li>Continue processing by calling the exit program again, but not with objects
from the same directory. In this case, <strong>Qp0lProcessSubtree()</strong>
moves to the next directory or object that meets the specified criteria and
calls the exit program with it.</li>
</ul>
<p>If <strong>Qp0lProcessSubtree()</strong> encounters any problems in
resolving to a user exit program, <strong>Qp0lProcessSubtree()</strong> ends
and returns to its caller. If <strong>Qp0lProcessSubtree()</strong> encounters
any errors with any other parameters, it ends and returns control to its
caller, after a call to the user exit program. This call allows the exit
program to perform any desired cleanup before <strong>
Qp0lProcessSubtree()</strong> ends. Use the <em>Err_recovery_action</em>
parameter of <strong>Qp0lProcessSubtree()</strong> to set other conditions for
calling or not calling the user exit program.</p>
<p>Storage referred to by the Selection status pointer, Error value pointer,
Return value pointer, or the Object name pointer when the Process a Path Name
exit program is called, are destroyed or reused when <strong>
Qp0lProcessSubtree()</strong> regains control.</p>
<p>See <a href="qprstree.htm">Qp0lProcessSubtree()--Process a Path Name</a> for
more information.</p>
<br>
<!-- Please NOTE: DO NOT DELETE THIS SECTION if this API has no authorities and locks. -->
<!-- Instead, use the commented out coding below to indicate NONE. -->
<h3>Authorities and Locks</h3>
<!-- Use this if there are no authorities and locks. -->
<p>None.</p>
<br>
<h3>Parameters</h3>
<dl>
<dt><strong><em>Selection status pointer</em></strong></dt>
<dd>INPUT; BINARY(4)
<p>A pointer to an unsigned integer. This pointer indicates whether <strong>
Qp0lProcessSubtree()</strong> encountered any problems in processing. Valid
values follow:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top"><strong><em>QP0L_SELECT_OK:</em></strong>
Indicates to that no problems were encountered during the selection of the
current object. The Error value pointer parameter is set to NULL.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top"><strong><em>QP0L_SELECT_DONE:</em></strong>
Indicates that the last object was processed and that this is the last call to
the Process a Path Name exit program. The Object name pointer and the Error
value pointer parameters are set to NULL.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top"><strong><em>QP0L_SELECT_NOT_OK:</em></strong>
Indicates that <strong>Qp0lProcessSubtree()</strong> has encountered an error
but that the Process a Path Name exit program can decide if the operation
should continue or end. The Error value pointer parameter points to a valid
<em>errno</em>.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top"><strong><em>QP0L_SELECT_FAILED:</em></strong>
Indicates that <strong>Qp0lProcessSubtree()</strong> has encountered an
unrecoverable error and that <strong>Qp0lProcessSubtree()</strong> will return
to its caller when it regains control. The Error value pointer parameter points
to a valid <em>errno</em>.</td>
</tr>
</table>
<br>
</dd>
<dt><strong><em>Error value pointer</em></strong></dt>
<dd>INPUT; BINARY(4)
<p>A pointer to a valid <em>errno</em> that describes any problems encountered
by the API during the processing of the current object. Any valid <em>
errno</em> can be passed in this field when this parameter is not NULL.</p>
</dd>
<dt><strong><em>Return value pointer</em></strong></dt>
<dd>OUTPUT; BINARY(4)
<p>A pointer to a value from the Process a Path Name exit program that
instructs the API to continue or to end processing. Valid values follow.</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top"><strong>Process a Path Name exit program</strong>
was successful.</td>
</tr>
<tr>
<td align="left" valign="top"><em>-1</em></td>
<td align="left" valign="top"><strong>Process a Path Name exit program</strong>
was successful. <strong>Qp0lProcessSubtree()</strong> should skip processing
any remaining objects in this directory and move on to process objects in other
directories.</td>
</tr>
<tr>
<td align="left" valign="top"><em>&gt; 0 (an</em> errno)</td>
<td align="left" valign="top"><strong>Process a Path Name exit program</strong>
was not successful. <strong>Qp0lProcessSubtree()</strong> ends.</td>
</tr>
</table>
<br>
</dd>
<dt><strong><em>Object name pointer</em></strong></dt>
<dd>INPUT; CHAR(*)
<p>A pointer to the path name structure that contains the fully qualified name
of the object being processed by <strong>Qp0lProcessSubtree()</strong>.
For more information on this structure, see
<a href="../apiref/pns.htm">Path Name Format</a>.
The
Path_Type flag defined in the qlg.h header file must be used to determine
whether the Object name pointer contains a pointer or is a character string.
This flag must also be used to determine whether the path name delimiter
character is 1 or 2 characters long. Valid values follow:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">The path name is a character string, and the path
name delimiter is 1 character long.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The path name is a pointer, and the path name
delimiter character is 1 character long.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">The path name is a character string, and the path
name delimiter is 2 characters long.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">The path name is a pointer, and the path name
delimiter character is 2 characters long.</td>
</tr>
</table>
<br>
</dd>
<dt><strong><em>Function control block pointer</em></strong></dt>
<dd>INPUT; CHAR(*)
<p>A pointer to the data that is passed to <strong>
Qp0lProcessSubtree()</strong> on its call. <strong>
Qp0lProcessSubtree()</strong> does not process the data that is referred to by
this pointer, but passes this pointer as a parameter when it calls the exit
program.</p>
</dd>
</dl>
<br>
<hr>
Exit program introduced: V4R3
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"unix.htm">UNIX-Type APIs</a> | <a href="aplist.htm">APIs by category</a></td>
</tr>
</table>
</center>
</body>
</html>