DATASERV (kappserv) functions


LIBRARY ROUTINE

kpds_match_attributes - returns true if the list of segment attributes in two objects match.

LIBRARY CALL

int
kpds_match_attributes(
   kobject object1, 
   kobject object2, 
   kvalist)

INPUT

OUTPUT

none

RETURN VALUE

There are three ways for this routine to return a FALSE: (1) if any of the attributes between the two objects do not match; (2) if either object does not contain one or more of the specified attributes; (3) an error condition resulting from an invalid object or segment. If none of these three conditions exist, then this function will return TRUE.

DESCRIPTION

The purpose of this routine is to allow the programmer to compare multiple attributes in two object.

Data Services manages two versions of some of the attributes associated with each object. These attributes are the size and data type. Internally, the two versions of these attributes are referred to as the physical attribute and the presentation attribute. Typically, the programmer has access to only the presentation versions of these attributes. The physical attributes are set indirectly depending on the setting of KPDS_COUPLING. See kpds_get_data for a description of how the presentation and physical attributes affect interaction with the data object.

Other attributes are classified as either shared or unshared. Shared attributes are stored at the physical layer of the attribute, and thus can be shared by multiple references of the data object (see kpds_reference_object for more information about references). Unshared attributes, on the other hand, can only be used by the local object (see kpds_query_attribute for information on how to determine whether an attribute is shared or unshared).

This routine will return TRUE if all of the specified attributes have the same value in the objects. This routine will return FALSE if any of the attributes do not match kpds_match_attributes will also return FALSE if any of the attributes do not exist in either or both of the two objects.

The last argument to this function must be NULL. If it is not NULL, then the behavior of this function will be unpredictable (the NULL argument is used as a sentinal to indicate the end of the variable argument list. If the sentinal is not present, then this function will continue to attempt to pull arguments off of the stack, until it finds a NULL).

A complete list of the polymorphic attributes can be found in Chapter 2 of Programming Services Volume II.

ADDITIONAL INFORMATION

none

EXAMPLES

none

SIDE EFFECTS

none

RESTRICTIONS

none

MODIFICATION

none

FILES

$DATASERV/objects/library/kappserv/src/polymorph.c

SEE ALSO

kappserv(3)

COPYRIGHT

Copyright (C) 1993 - 1997, Khoral Research, Inc. ("KRI") All rights reserved.