srv_define_event

Description

Define a user event.

Syntax

int srv_define_event(ssp, type, namep, namelen)
SRV_SERVER     *ssp;
CS_INT               type;
CS_CHAR          *namep;
CS_INT              namelen;

Parameters

ssp

A pointer to the Open Server control structure.

type

The type of event. Currently, programmer-defined events must be of type SRV_EQUEUED.

namep

A pointer to the name of the event.

namelen

The length, in bytes, of string in *namep. If the string is null terminated, namelen can be CS_NULLTERM.

Returns

Table 3-31: Return values (srv_define_event)

Returns

To indicate

A non-zero integer

The unique id for the vent.

0

Open Server cannot define the event.

Open Server raises an error.

Examples

Example 1

#include          <ospublic.h>
/*
 ** Local Prototype
 */
CS_RETCODE      ex_srv_define_event PROTOTYPE((
CS_CHAR        *namep,
CS_INT         namelen,
CS_INT         *event_no
));
/* 
 ** EX_SRV_DEFINE_EVENT
**
**   Example routine to illustrate the use of srv_define_event to
 **   define an user event.
**
** Arguments:
**     namep   A pointer to the name of event.
**     namelen The length, in bytes, of string in *namep.
**     event_no  A CS_INT pointer that is initialized with
 **               the unique number for the event.
** Returns:
**
**  CS_SUCCEED   If the event was defined successfully.
**  CS_FAIL      An error was detected.
 */
CS_RETCODE     ex_srv_define_event(namep, namelen, event_no)
CS_CONTEXT *cp;
 CS_VOID        *bufp;
 CS_CHAR        *namep;
 CS_INT         namelen;
 CS_INT         *event_no;
 CS_INT         result;
{
     SRV_PROC *srvproc_ptr; /* A pointer to an internal thread
                             ** control structure */
     result = srv_props(cp, CS_GET, SRV_S_CURTHREAD, 
            bufp, sizeof(CS_INT));
     if (result == CS_FAIL)
      {
          return (CS_FAIL);
      }
     /* Now define the event. */
     if ((*event_no = srv_define_event(srvproc_ptr, SRV_EQUEUED, 
           namep, namelen)) == (CS_INT)0)
          return (CS_FAIL);
     return (CS_SUCCEED);
}

Usage

See also

srv_event, srv_event_deferred, srv_handle, srv_props, “Events”