.\"##
.\" $XConsortium: p264,v 5.2 94/04/17 20:57:30 rws Exp $
.\"##
.\"## 
$XMCOPY
.\"## Copyright (c) 1990, 1991 by Sun Microsystems, Inc. 
.\"## 
.\"##                         All Rights Reserved
.\"## 
.\"## Permission to use, copy, modify, and distribute this software and its 
.\"## documentation for any purpose and without fee is hereby granted, 
.\"## provided that the above copyright notice appear in all copies and that
.\"## both that copyright notice and this permission notice appear in 
.\"## supporting documentation, and that the name of Sun Microsystems,
.\"## not be used in advertising or publicity 
.\"## pertaining to distribution of the software without specific, written 
.\"## prior permission.  
.\"## 
.\"## SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 
.\"## INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
.\"## EVENT SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
.\"## CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
.\"## USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
.\"## OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\"## PERFORMANCE OF THIS SOFTWARE.
.TH "RETRIEVE STRUCTURE IDENTIFIERS" 3P "29 February 1991"
.SH NAME
RETRIEVE STRUCTURE IDENTIFIERS \- retrieve a list of structure identifiers from an archive file
.IX "Archive Files" "RETRIEVE STRUCTURE IDENTIFIERS"
.SH SYNOPSIS
.SS C Syntax
.ft B
.ta 1.25i 3i
.nf
void
pret_struct_ids ( archive_id, max_ids, start, ids, actual_ids )
Pint	archive_id;	\fIarchive identifier\fP
Pint	max_ids;	\fIsize of appl. archive id list\fP
Pint	start;	\fIstart position of ids\fP
Pint_list	*ids;	\fI\s-2OUT\s+2 list of structure ids\fP
Pint	*actual_ids;	\fI\s-2OUT\s+2 actual number of ids in PHIGS\fP
.fi
.ft R
.SS Required PHIGS Operating States
(PHOP, *, *, AROP)
.SH DESCRIPTION
.SS Purpose
Use \s-2RETRIEVE STRUCTURE IDENTIFIERS\s+2 to retrieve a list of the
identifiers of all structures archived in the specified open archive file.
.SS C Input Parameters
.IP \fIarchive_id\fP
The archive identifier specifying the open archive file to read from.
.IP \fImax_ids\fP
The number of \fIints\fP items in the \fIids\fP output parameter for
which the application has allocated memory.
\fImax_ids\fP is the number of list elements (archive structure identifiers)
that the system can return in \fIintegers\fP.
If a value of 0 is used here, no data will be returned in the
\fIints\fP list, but the
total number of structure identifiers in the archive file
will be returned in \fIactual_ids\fP.
.IP \fIstart\fP
Starting position in the list of archive structure identifiers
at which to begin the inquiry.
The elements of the list of structure identifiers, beginning
with the item number specified by \fIstart\fP,  are copied sequentially
into \fIints\fP until \fIints\fP is full or all
the structure identifiers have been copied.
.SS C Output Parameters
.IP \fIids\fP
A pointer to a Pint_list structure in which the list of structure
identifiers in the specified open archive file is returned.
The Pint_list structure is defined in phigs.h as follows:
.sp .4
.ta .5i +\w'Pint     'u +\w'num_list;     'u
.nf
typedef struct {
.sp .2
	Pint	num_list;	/* number of Pints in list */
	Pint	*ints;	/* list of integers */
.sp .2
} Pint_list;
.fi
.IP
The \fInum_ints\fP component specifies the number of structure identifiers
in the list.
.IP
The \fIints\fP component is a pointer to a list,
\fInum_ints\fP long, of the structure identifiers.
.IP
The application must allocate memory for \fImax_ids\fP elements in
the \fIints\fP list.
.IP \fIactual_ids\fP
A pointer to an integer in which the total number of structure identifiers
in the specified archive file is returned. This is the value required for
\fImax_ids\fP if all structure identifiers are to be returned.
.SH ERRORS
.IP 007
Ignoring function, function requires state (\s-2PHOP, *, *, AROP\s+2)
.IP 404
Ignoring function, the specified archive file is not open
.SH SEE ALSO
.nf
.IP
.ta 0.5i
.SM "OPEN ARCHIVE FILE (3P)"
.SM "ARCHIVE STRUCTURES (3P)"
.SM "INQUIRE ALL CONFLICTING STRUCTURES (3P)"
.SM "SET CONFLICT RESOLUTION (3P)"
.SM "RETRIEVE STRUCTURES (3P)"
.SM "DELETE STRUCTURES FROM ARCHIVE (3P)"
.fi
