### Private Objects

Private objects are created dynamically by the service interface. In the figure entitled Client-Generated and Service-Generated Objects , the ds_read( ) function returns a pointer to the data structure result in the workspace. This service-generated data structure is a private object in a private implementation-specific format, which requires a call to om_get( ) to interpret the data. A private object is one of the required input parameters to XOM API functions (such as om_get( )), as shown in the figure entitled Client-Generated and Service-Generated Objects. Private objects are always service generated.

The table below compares private and public objects.

Comparison of Private and Public Objects

Private | Public
Representation is implementation specific | Representation is defined in the API specification
Not directly accessible by the client | Directly accessible by the client
Manipulated by the client by using OM functions | Manipulated by the client by using programming constructs
Created in storage provided by the service | Is a service-generated object if created by the service Is a client-generated object if created by the client in storage provided by the client
Cannot be modified by the client directly, except through the service interface | If a client-generated object, can be modified directly by the client If a service-generated object, cannot be modified directly by the client, except through the service interface
Storage is allocated and released by the service | If a service-generated object, storage is allocated and released by the service If a client-generated object, storage is allocated and released by the client

Private objects can also be used as input to XOM and XDS API functions to improve program efficiency. For example, the output of a ds_search( ) request can be used as input to a ds_read( ). The search request returns the name of each entry in the search. If the application program requires the address and telephone number of each name, a ds_read( ) operation can be performed on each name as a private object.

###