DATASERV (kdataman) functions


LIBRARY ROUTINE

kdms_set_attribute - set the value of an attribute

LIBRARY CALL

int
kdms_set_attribute(
   kobject object,
   char   *segment,
   char   *attribute,
   kvalist)

INPUT

OUTPUT

none

RETURN VALUE

TRUE on success, FALSE otherwise

DESCRIPTION

This routine allows the programmer to set the value of an attribute associated with a data object.

Data services manages two sets of attributes with each object. Internally, they are referred to as the physical attributes and the presentation attributes. The presentation version of an attribute is the value that is desired by the programmer. The corresponding physical attribute is what is physically stored on the file or transport associated with the object. If the two versions of an attribute result in different presentations of data, then data services automatically translates the data from the physical interpretation to the presentation interpretation, or visa-versa, as appropriate. For example, if the data type attribute (KDMS_DATA_TYPE) is physically unsigned int (KULONG), but the presentation value of that attribute is float (KFLOAT), then data services will retrieve the data from the object and and cast it to float before returning it to the user. Similar behavior will occur for attributes such as index order (KDMS_INDEX_ORDER) and size (KDMS_SIZE).

The presentation attributes are settable at any time throughout a object's lifetime. The physical attributes, however, at some point are locked and thereafter cannot change. An object that was opened as an input object (via kdms_input or kdms_open) has its physical attributes locked immediately.

The effect of setting the attribute is immediate. For example, if this routine is used to set the KDMS_DATATYPE attribute, then any future access of the data in this image will involve data of the specified data type.

If the segment argument is NULL, then this instructs kdms_set_attribute to set a global attribute, if available. In either case, if the attribute does not exist, then this routine returns FALSE, indicating a failure.

ADDITIONAL INFORMATION

none

EXAMPLES

none

SIDE EFFECTS

none

RESTRICTIONS

none

MODIFICATION

none

FILES

$DATASERV/objects/library/kdataman/src/attributes.c

SEE ALSO

kdataman(3)

COPYRIGHT

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