OSF DCE Application Development Guide--Core Components
OSF DCE Application Development Guide—Core Components
This technique can be used in a number of ways; for example, to permit the client to use
implicit binding while the server manager operations extract authorization information
from a client binding handle. In the case of a context handle, the principle is the same.
You use the server .acf declarations to add a binding parameter to the call on the server
side. The client continues to call using the context handle, while the server manager
receives the client binding as a first extra parameter.
In the case of the sample code, the client calls to the store interface remain the same, but
the server manager implementations now contain an extra parameter. For example:
void
store_write(
handle_t IDL_handle,
store_handle_t store_h,
unsigned32 buf_size,
store_buf_t buffer,
unsigned32 *data_size,
error_status_t *status
)
{
store_spec_t *spec;
store_hdr_t *hdr;
if (check_access(IDL_handle, sec_acl_perm_write) == 0)
{
*status = str_s_no_perms;
return;
}
.
.
.
}
16.4 Pipes
Pipes are a mechanism for efficiently handling large quantities of data by overlapping
the transfer and processing of data. Input data is transferred in chunks to the server for
processing, and output data is processed by the server in chunks and transferred to the
client. A pipe is declared in a type definition of an interface definition, and the data type
is used as parameters in the operations of the interface. The server manager calls stub
pipe support routines in a loop, and the client stub calls pipe support routines that the
client application must provide.
16 − 24 Tandem Computers Incorporated 124245