At this point, you can read a set of object attributes from the cell namespace entry. Call ds_read( ) with the two objects that specify the entry to be read and the specific entry attribute you want:
dsStatus = ds_read(session, DS_DEFAULT_CONTEXT, Full_Entry_Name_Object,
Entry_Info_Select_Object, &readResultObject, &dummy);
The DS_DEFAULT_CONTEXT parameter could be substituted with a DS_C_CONTEXT object, which would typically be reused during a series of related XDS calls. This object specifies and records how GDS should perform the operation, how much progress has been made in resolving a name, and so on.
If the call succeeds, the private object readResultObject contains a series of DS_C_ATTRIBUTE subobjects, one for each attribute read from the cell name entry. A complete recipe for the DS_C_READ_RESULT object can be found in XDS Class Definitions, but the following is a skeletal outline of the object's structure:
DS_C_READ_RESULT
DS_ENTRY: object(DS_C_ENTRY_INFO)the
DS_ALIAS_DEREFERENCED: OM_S_BOOLEAN was passed determine the
DS_PERFORMER: object(DS_C_NAME)
DS_C_ENTRY_INFO
DS_FROM_ENTRY: OM_S_BOOLEAN the specified object's
DS_OBJECT_NAME: object(DS_C_NAME)
DS_ATTRIBUTES: one or more object(DS_C_ATTRIBUTE)the target
DS_C_NAME == DS_C_DS_DN
DS_RDNS: object(DS_C_DS_RDN)
DS_C_DS_RDN
DS_AVAS: object(DS_C_AVA)
DS_C_AVA
DS_ATTRIBUTE_TYPE: OID string
DS_ATTRIBUTE_VALUES: anything
DS_C_ATTRIBUTE -- one for each attribute read
DS_ATTRIBUTE_TYPE: OID string information given by
DS_ATTRIBUTE_VALUES: anything
DS_C_ATTRIBUTE
DS_ATTRIBUTE_TYPE: OID string
DS_ATTRIBUTE_VALUES: anything
The following figure illustrates the general object structure of a DS_C_READ_RESULT, showing only the object-valued attributes, and only one DS_C_ATTRIBUTE subobject.
The DS_C_READ_RESULT Object Structure