#include <xom.h> #include <xomext.h>
This xom_intro reference page defines the functions of the C interface. The following table lists the relevant functions.
___________________________________________________________________________________
Service Interface Functions - xom_intro(3xom)
___________________________________________________________________________________
Function Description
___________________________________________________________________________________
omX_extract() Get attribute values from specified object
omX_fill() Initialize an OM_descriptor structure
omX_fill_oid() Initialize an OM_descriptor with an OID value
omX_object_to_string() Convert an OM_object to string format
omX_string_to_object() Convert a string to OM_object
om_copy() Copies a private object.
om_copy_value() Copies a string between private objects.
om_create() Creates a private object.
om_decode() This function is not supported by the DCE XOM interface,
and returns with an OM_FUNCTION_DECLINED error.
om_delete() Deletes a private or service-generated object.
om_encode() This function is not supported by the DCE XOM interface,
and returns with an OM_FUNCTION_DECLINED error.
om_get() Gets copies of attribute values from a private object.
om_instance() Tests an object's class.
om_put() Puts attribute values into a private object.
om_read() Reads a segment of a string in a private object.
om_remove() Removes attribute values from a private object.
om_write() Writes a segment of a string into a private object.
___________________________________________________________________________________
8|
As indicated in the table, the service interface comprises a number of functions whose purpose and range of capabilities are summarized as follows:
The service does not permit the API user to explicitly create instances of all classes, but rather only those indicated by a package's definition as having this property.
The copy can exclude: attributes of types other than those specified, values at positions other than those specified within an attribute, the values of multivalued attributes, copies of (not handles for) subobjects, or all attribute values (revealing only an attribute's presence).
The source values can be inserted before any existing destination values, before the value at a specified position in the destination attribute, or after any existing destination values. Alternatively, the source values can be substituted for any existing destination values or for the values at specified positions in the destination attribute.
In the C interface, the functions are realized by macros. The function prototype in the synopsis of a function's specification simply shows the client's view of the function.
The intent of the interface definition is that each function be atomic; that is, either it carries out its assigned task in full and reports success, or it fails to carry out even a part of the task and reports an exception. However, the service does not guarantee that a task is always carried out in full.
The possible error return values are listed in the function reference pages.
XOM functions check for NULL pointers and return an error, except for workspace pointers. Pointers are only checked at the function interface. The check is only for NULL and not for validity. If NULL or invalid pointers are passed this may result in an undetermined behaviour.