PreviousNext

Binding Vector

The binding vector data structure contains a list of binding handles over which a server application can receive remote procedure calls.

The binding vector contains a count member (count), followed by an array of binding handle (binding_h) elements.

The C language representation of a binding vector is as follows:

typedef struct {
unsigned32 count;
rpc_binding_handle_t binding_h[1];
} rpc_binding_vector_t;

The RPC runtime creates binding handles when a server application registers protocol sequences. To obtain a binding vector, a server application calls the rpc_server_inq_bindings( ) routine.

A client application obtains a binding vector of compatible servers from the name service database by calling rpc_ns_binding_lookup_next( ).

In both routines, the RPC runtime allocates memory for the binding vector. An application calls the rpc_binding_vector_free( ) routine to free the binding vector.

An application, when it is finished with an individual binding handle in a binding vector, frees the binding handle by calling rpc_binding_free( ). This routine also sets the corresponding pointer in the binding vector to NULL.

Note that you should not decrement the count field in a binding vector structure when you call the rpc_binding_free(3rpc) routine to free an individual binding handle.

The following routines require a binding vector and show an argument data type of rpc_binding_vector_t:

· rpc_binding_vector_free( )

· rpc_ep_register( )

· rpc_ep_register_no_replace( )

· rpc_ep_unregister( )

· rpc_ns_binding_export( )

· rpc_ns_binding_lookup_next( )

· rpc_ns_binding_select( )

· rpc_server_inq_bindings( )