srv_event

Description

Add an event request to a thread’s request-handling queue.

Syntax

CS_INT srv_event(spp, event, datap)
SRV_PROC    *spp;
CS_INT          event;
CS_VOID      *datap;

Parameters

spp

A pointer to an internal thread control structure.

event

The token for the event to add to the client’s event queue. See “Events” for a list of defined events.

datap

A pointer (CS_VOID) to data supplied by the Open Server programmer. An application can retrieve the data by calling srv_thread_props with property set to SRV_T_EVENTDATA, from within the event handler.

Returns

Table 3-44: Return values (srv_event)

Returns

To indicate

The token for the requested event.

Open Server added the new event.

CS_FAIL

The routine failed.

Examples

Example 1

#include  <ospublic.h>
/*
 ** Local Prototype
 */
CS_RETCODE   ex_srv_event PROTOTYPE((
SRV_PROC     *spp,
CS_INT       event,
CS_VOID     *datap
));
/* 
 ** EX_SRV_EVENT
**
**    Example routine to queue an event request to an Open Server
 **    thread’s request-handling queue.
**
**    Note that if the event is an user-defined one, it
 **    must have been defined earlier using srv_define_event.
**
** Arguments:
**    spp        A pointer to a control structure for an Open 
 **               Server thread.
**    event      The token for the event to be added to the queue.
**    datap      Data pointer.
**
** Returns:
**
**    CS_SUCCEED    The event was queued successfully
**    CS_FAIL       An error was detected.
*/
CS_RETCODE  ex_srv_event(spp, event, datap)
SRV_PROC    *spp;
CS_INT      event;
CS_VOID     *datap;
{
    if (srv_event(spp, event, datap) == CS_FAIL)
        return (CS_FAIL);
    else
        return (CS_SUCCEED);
}

Usage

WARNING! In interrupt-level code, use srv_event_deferred instead of srv_event.

See also

srv_define_event, srv_handle, srv_event_deferred, srv_thread_props, “Events”