[ Previous | Next | Contents | Glossary | Home | Search ]
The graPHIGS Programming Interface : Subroutine Reference

GPQPDS - Inquire Descendants of Structure

GPQPDS (strid, order, depth, start, number, buflen, errind, actnum, actlen totnum, data, termcond)

Note:

This subroutine is a Structure State List (SSL) inquiry. For an overview, see "SSL Inquiries"

Purpose

Use GPQPDS to inquire the descendant paths of a specified structure from the currently selected structure store. A path of descendants of a structure S is a list of ordered pairs ((S, E0), (D1, E1), (D2, E2), ..., (Dn,0 m)), where each ordered pair consists of an identifier of a structure (Dx) that is a descendant of the specified structure (S) and the position of an execute structure-type element (Ex) that references the next structure in the path. The specified structure S is the top of the path and descendant structure Dn is the bottom of the path (e.g., it does not reference any other structure)

The path order and path depth determine the portion of each path to be returned. The path depth determines the maximum number of ordered pairs returned in any one path. Specifying a path depth of zero returns each path in its entirety. When truncation occurs, the path order determines whether the head or tail portion of the path is returned. This truncation may result in two or more portions of paths having the same set of element references. Only one such portion is returned so that all of the returned path portions are distinct.

If the inquired information is available, then the graPHIGS API sets the error indicator to zero and returns the values in the output parameters. If the error indicator is 543 (the start value exceeds the extent of the available data), then only the total number (totnum) parameter is set. If the inquired information is unavailable, then the error indicator (errind) contains an error number indicating the reason, and the values returned in the output parameters are unpredictable.

Parameters

strid -- specified by user, fullword integer

Structure identifier.

order -- specified by user, fullword integer

Path order (1=TOPFIRST, 2=BOTTOMFIRST )

depth -- specified by user, fullword integer

Path depth (>=0)

start -- specified by user, fullword integer

Starting member of the list of paths (>=1)

number -- specified by user, fullword integer

Number of paths requested (>=0)

buflen -- specified by user, fullword integer

Length, in bytes, of the specified data parameter (data) (>=0)

errind -- returned by the graPHIGS API, fullword integer

Error indicator. If the error indicator is zero, the request has been completed. Otherwise, one of the following errors exists:
12
FUNCTION REQUIRES STATE SSSL
122
STRUCTURE IDENTIFIER DOES NOT EXIST
538
START VALUE < ONE
539
REQUESTED NUMBER < ZERO
543
START EXCEEDS DATA EXTENT. TOTAL NUMBER AVAILABLE RETURNED
552
PATH ORDER IS INVALID
558
PATH DEPTH < ZERO
577
BUFFER LENGTH IS < ZERO

actnum -- returned by the graPHIGS API, fullword integer

Total number of paths returned.

actlen -- returned by the graPHIGS API, fullword integer

Total length, in bytes, of the paths returned in the data parameter (data)

totnum -- returned by the graPHIGS API, fullword integer

Total number of the distinct paths available for the specified structure identifier.

data -- returned by the graPHIGS API, variable data

The data buffer into which the paths are to be returned. The format of the data is as follows:
                     ---------------------
   Start of buffer   |      path 1       |
                     |-------------------|
                     |      path 2       |
                     |-------------------|
                     |                   |
                     Z                   Z
                     |-------------------|
     End of buffer   |      path n       |
                     ---------------------
where each path has the following format:
                     ----------------------
          WORDS  1   |number of items in  | Fullword integer
                     | the returned path  |
                     |--------------------|
                 2   |  structure id 1    | Fullword integer
                     |--------------------|
                 3   | element number 1   | Fullword integer
                     |--------------------|
                 4   |  structure id 2    | Fullword integer
                     |--------------------|
                 5   | element number 2   | Fullword integer
                     |--------------------|
                     |                    |
                     Z                    Z
                     |--------------------|
                     |   structure id m   | Fullword integer
                     |--------------------|
                     |  element number m  | Fullword integer
                     ----------------------
 

termcond -- returned by the graPHIGS API, fullword integer

Termination condition. The list of paths was terminated due to one of the following reasons:

1-Count Exhausted

The requested number of paths have been returned.

2-Buffer Overflow

The requested number of paths could not be returned because they would not all fit in the area provided. actnum contains the actual number returned.

3-End of Paths

No more paths exists. This condition supersedes the Count Exhausted condition (if that condition was in effect) Because of this, the total number of paths may or may not be equal to the requested number of paths to be returned. actnum should be checked to find the actual number of paths returned.

4-Large Path

The next path would not fit into the inbound buffer between the nucleus and the shell. actnum contains the number of paths returned excluding the path that would not fit.

Error Codes

None

Related Subroutines

GPQPAS
Inquire Ancestors of Structure

RCP code

201347586 (X'0C005202')


[ Previous | Next | Contents | Glossary | Home | Search ]