Install an event handler in an Open Server application.
SRV_EVENTHANDLE_FUNC (*srv_handle(ssp, event, handler))()
SRV_SERVER *ssp; CS_INT event; SRV_EVENTHANDLE_FUNC handler;
A pointer to the Open Server control structure. This parameter is optional. It is present only to provide backward compatibility.
The event that handler will handle. Here is a list of all the regular Open Server events:
SRV_ATTENTION
SRV_BULK
SRV_CONNECT
SRV_CURSOR
SRV_DISCONNECT/SRV_URGDISCONNECT
SRV_DYNAMIC
SRV_FULLPASSTHRU
SRV_LANGUAGE
SRV_MSG
SRV_OPTION
SRV_RPC
SRV_START
SRV_STOP
Programmer-defined events – A programmer-defined event is defined using srv_define_event.
For a description of each event, see “Events”.
A pointer to the function to call when an event request occurs. Passing NULL as the handler installs the default event handler.
Returns |
To indicate |
---|---|
A pointer to the event handling function |
The location of the function. |
A null pointer |
The routine failed. |
#include <ospublic.h>
/*
** Local Prototype
*/
extern CS_RETCODE ex_srv_handle PROTOTYPE((
SRV_EVENTHANDLE_FUNC funcp
));
/*
** EX_SRV_HANDLE
** Install a SRV_START handler.
** Arguments:
** funcp Handler to install.
** Returns:
** CS_SUCCEED Start handler was installed successfully.
** CS_FAIL An error was detected.
*/
CS_RETCODE ex_srv_handle(funcp)
SRV_EVENTHANDLE_FUNC funcp;
{
if(srv_handle((SRV_SERVER *)NULL, SRV_START, funcp) ==
CS_FAIL)
{
return(CS_FAIL);
}
return(CS_SUCCEED);
}
srv_handle tells Open Server to call a particular function when it receives a request to handle a particular event.
Open Server calls handler with one argument.
The event handlers for the following events take a pointer to an Open Server control structure as an argument:
SRV_START
SRV_STOP
The event handlers for the following events take a pointer to a thread control structure as an argument:
SRV_ATTENTION
SRV_BULK
SRV_CONNECT
SRV_CURSOR
SRV_DISCONNECT/SRV_URGDISCONNECT
SRV_DYNAMIC
SRV_FULLPASSTHRU
SRV_LANGUAGE
SRV_MSG
SRV_OPTION
SRV_RPC
Any programmer-defined event
Each Open Server event has a default handler with a known name. Installing an event handler with srv_handle replaces the default handler.
Event handlers can be installed dynamically. The new event handler is called the next time the event is raised.
Event handlers must return CS_SUCCEED.