[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]
Base Operating System and Extensions Technical Reference, Volume 1

odm_get_list Subroutine

Purpose

Retrieves all objects in an object class that match the specified criteria.

Library

Object Data Manager Library (libodm.a)

Syntax

#include <odmi.h>

struct ClassName *odm_get_list (ClassSymbolCriteriaListInfoMaxReturnLinkDepth)
struct ClassName_CLASS ClassSymbol;
char *Criteria;
struct listinfo * ListInfo;
int MaxReturn LinkDepth;

Description

The odm_get_list subroutine takes an object class and criteria as input, and returns a list of objects that satisfy the input criteria. The subroutine opens and closes the object class around the subroutine if the object class was not previously opened. If the object class was previously opened, the subroutine leaves the object class open when it returns.

Parameters

ClassSymbol Specifies a class symbol identifier returned from an odm_open_class subroutine. If the odm_open_class subroutine has not been called, then this is the ClassName_CLASS structure created by the odmcreate command.
Criteria Specifies a string that contains the qualifying criteria for selecting the objects to remove.
ListInfo Specifies a structure containing information about the retrieval of the objects. The listinfo structure has the following form:
struct listinfo {
char ClassName[16];     /* class name used for query */
char criteria[256];     /* query criteria */
int num;                /* number of matches found */
int valid;              /* for ODM use */
CLASS_SYMBOL class;     /* symbol for queried class */
};
MaxReturn Specifies the expected number of objects to be returned. This is used to control the increments in which storage for structures is allocated, to reduce the realloc subroutine copy overhead.
LinkDepth Specifies the number of levels to recurse for objects with ODM_LINK descriptors. A setting of 1 indicates only the top level is retrieved; 2 indicates ODM_LINKs will be followed from the top/first level only: 3 indicates ODM_LINKs will be followed at the first and second level, and so on.

Return Values

Upon successful completion, a pointer to an array of C language structures containing the objects is returned. This structure matches that described in the .h file that is returned from the odmcreate command. If no match is found, null is returned. If the odm_get_list subroutine fails, a value of -1 is returned and the odmerrno variable is set to an error code.

Error Codes

Failure of the odm_get_list subroutine sets the odmerrno variable to one of the following error codes:

ODMI_BAD_CRIT The specified search criteria is incorrectly formed. Make sure the criteria contains only valid descriptor names and the search values are correct.
ODMI_CLASS_DNE The specified object class does not exist. Check path name and permissions.
ODMI_CLASS_PERMS The object class cannot be opened because of the file permissions.
ODMI_INTERNAL_ERR An internal consistency problem occurred. Make sure the object class is valid or contact the person responsible for the system.
ODMI_INVALID_CLXN Either the specified collection is not a valid object class collection or the collection does not contain consistent data.
ODMI_INVALID_PATH The specified path does not exist on the file system. Make sure the path is accessible.
ODMI_LINK_NOT_FOUND The object class that is accessed could not be opened. Make sure the linked object class is accessible.
ODMI_MAGICNO_ERR The class symbol does not identify a valid object class.
ODMI_MALLOC_ERR Cannot allocate sufficient storage. Try again later or contact the person responsible for the system.
ODMI_OPEN_ERR Cannot open the object class. Check path name and permissions.
ODMI_PARAMS The parameters passed to the subroutine were not correct. Make sure there are the correct number of parameters and that they are valid.
ODMI_TOOMANYCLASSES Too many object classes have been accessed. An application can only access less than 1024 object classes.

Implementation Specifics

This subroutine is part of Base Operating System (BOS) Runtime.

Related Information

The odm_get_by_id subroutine, odm_get_obj subroutine, odm_open_class subroutine, or odm_free_list subroutine.

The odmcreate command, odmget command.

List of ODM Commands and Subroutines.

For information on qualifying criteria, see "Understanding ODM Object Searches" in AIX Version 4.3 General Programming Concepts: Writing and Debugging Programs.

See ODM Example Code and Output in AIX Version 4.3 General Programming Concepts: Writing and Debugging Programs for an example of a .h file.

Object Data Manager (ODM) Overview for Programmers in AIX Version 4.3 General Programming Concepts: Writing and Debugging Programs.


[ Next Article | Previous Article | Book Contents | Library Home | Legal | Search ]