[
 uuid (d3fbb514-0e3b-11cb-8fad-08002b1d29c3),
 version (1.0),
 pointer_default (unique)
]
interface NsiC
{

import"nsicom.idl";


/*
 * N S I _ B I N D I N G _ L O O K U P _ B E G I N
 *
 * Create an import context for an interface and optionally an object.
 */

void nsi_binding_lookup_begin
    (
    [in]        UNSIGNED32               entry_name_syntax,
    [in]        STRING_T                 entry_name,
    [in]        NSI_INTERFACE_ID_T     * if_spec,
    [in]        NSI_UUID_P_T             obj_uuid,
    [in]        UNSIGNED32               binding_max_count,
    [in]        UNSIGNED32               ignore,
    [out]       NSI_NS_HANDLE_T        * import_context,
    [out]       UNSIGNED16             * status
    );

/*
 * N S I _ B I N D I N G _ L O O K U P _ D O N E
 *
 * Delete an import context.
 */

void nsi_binding_lookup_done
    (
    [in,out] NSI_NS_HANDLE_T *import_context,
    [out]    UNSIGNED16      *status
    );

/*
 * N S I _ B I N D I N G _ L O O K U P _ N E X T
 *
 * Look up an interface and optionally an object from a name-service
 * database and return a binding of a compatible server (if found).
 */

void nsi_binding_lookup_next
    (
    [in]     NSI_NS_HANDLE_T             import_context,
    [in,out] NSI_BINDING_VECTOR_P_T    * binding_vector,
    [out]    UNSIGNED16                * status
    );

/*
 * N S I _ M G M T _ H A N D L E _ E N T R Y _ S E T _ E X P _ A G E
 *
 * Set the maxium age that a cached entry can be returned through a lookup
 * context.
 */

void nsi_mgmt_handle_set_exp_age
    (
    [in]        NSI_NS_HANDLE_T          inq_context,
    [in]        UNSIGNED32               expiration_age,
    [out]       UNSIGNED16             * status
    );

}
