HP-UX Directory Server 8.1 plug-in reference

Table Of Contents
Pointer to the Slapi_Entry structure representing the entry to be sent back
to the client.
e
Pointer to the slapi_compute_output_t function responsible for
BER-encoding the computed attribute and for adding it to the BER element
to be sent to the client.
outputfn
Returns One of the following values:
-1 if the function is not responsible for generating the computed attribute.
0 if the function successfully generates the computed attribute.
An LDAP error code if an error occurred.
Description slapi_compute_callback_t specifies the prototype for a callback function
that is called by the server when generating a computed attribute. If you want to use computed
attributes, you should write a function of this type.
See also “slapi_compute_output_t”
14.17 slapi_compute_output_t
Represents a prototype for an output function for contributed attributes.
Syntax
#include "slapi-plugin.h"
typedef int (*slapi_compute_output_t)
(computed_attr_context *c, Slapi_Attr *a, Slapi_Entry *e);
Parameters The function has the following parameters:
Returns One of the following values:
0 if the function successfully BER-encodes the computed attribute and adds it to the BER
element to be sent to the client.
An LDAP error code if an error occurred.
Description slapi_compute_output_t specifies the prototype for a callback function that
BER-encodes a computed attribute and appends it to the BER element to be sent to the client.
You do not need to define a function of this type. The server will pass a function of this type
your slapi_compute_callback_t function. In your slapi_compute_callback_t function,
you need to call this slapi_compute_output_t function.
For example:
static int my_compute_callback(computed_attr_context *c, char* type,
Slapi_Entry *e, slapi_compute_output_t outputfn)
{
...
int rc;
Slapi_Attr my_computed_attr;
...
/* Call the output function after creating the computed
* attribute and setting its values. */
rc = (*outputfn) (c, &my_computed_attr, e);
...
}
In the example above, the slapi_compute_output_t function outputfn is passed in as an
argument to my_compute_callback function. After generating the computed attribute, you
need to call outputfn, passing it the context, the newly created attribute, and the entry.
outputfn BER-encodes the attribute and appends it to the BER element to be sent to the client.
You do not need to define outputfn yourself. You just need to call the function passed in as
the last statement from the callback.
See also slapi_compute_callback_t
128 Data type and structure reference