As mentioned already, the standards define abstract services that requesters use to interact with the directory. Each of these abstract services maps to a single function call, and the detailed specifications are given in the XDS reference pages. The services and the function calls to which they map are as follows:
DirectoryBind
Maps to ds_bind( )
DirectoryUnbind
Maps to ds_unbind( )
Read
Maps to ds_read( )
Compare
Maps to ds_compare( )
Abandon
Maps to ds_abandon( )
List
Maps to ds_list( )
Search
Maps to ds_search( )
AddEntry
Maps to ds_add_entry( )
RemoveEntry
Maps to ds_remove_entry( )
ModifyEntry
Maps to ds_modify_entry( )
ModifyRDN
Maps to ds_modify_rdn( )
There is a function called ds_receive_result( ), which has no counterpart in the abstract service. It is used with asynchronous operations. (See the xds_intro(3xds) reference page for information on how the asynchronous functions ds_abandon( ) and ds_receive_result( ) are handled by the DCE XDS API.)
The ds_initialize( ), ds_shutdown( ), and ds_version( ) functions are used to control the XDS API and do not initiate any directory operations.
The interface functions are summarized in the following table.
The XDS Interface Functions
Name | Description |
ds_abandon( ) | Abandons the result of a pending asynchronous operation. This function is not supported. See xds_intro(3xds). |
ds_add_entry( ) | Adds a leaf entry to the DIT. |
ds_bind( ) | Opens a session with a DUA, which in turn connects to a DSA. |
ds_compare( ) | Compares a purported attribute value with the attribute value stored in the DIB for a particular entry. |
ds_initialize( ) | Initializes the XDS interface. |
ds_list( ) | Enumerates the names of the immediate subordinates of a particular directory entry. |
ds_modify_entry( ) | Atomically performs modification to a directory entry. |
ds_modify_rdn( ) | Changes the RDN of a leaf entry. |
ds_read( ) | Queries information on a particular directory entry by name. |
ds_receive_result( ) | Retrieves the result of an asynchronously executed function. See xds_intro(3xds) . |
ds_remove_entry( ) | Removes a leaf entry from the DIT. |
ds_search( ) | Finds entries of interest in a portion of the DIT. |
ds_shutdown( ) | Discards a workspace. |
ds_unbind( ) | Unbinds from a directory session. |
ds_version( ) | Negotiates features of the interface and service. |