NAME
EvmCallback() — event management (EVM) callback function
SYNOPSIS
void EventCB(
EvmConnection_t connection,
EvmCallbackArg_t callbackArg,
EvmCallbackData_t *callbackData
);
DESCRIPTION
An EVM callback function is a function that you provide to allow your
program to handle messages arriving on an EVM connection.
Most messages are incoming events or responses to requests you
have made to the EVM daemon, but you may also get a callback
for other reasons.
Specify the name
(EventCB)
of the callback function in the callback parameter when you create
an EVM connection with a response mode of callback.
Your callback function is invoked by
EvmConnDispatch(),
which you must call whenever you detect activity pending on the connection.
An EVM callback function must conform to the prototype shown.
Callback Function Parameters
The connection parameter contains the connection context pertaining to this
callback.
This value was returned by
EvmConnCreate()
when the connection was created.
If you have one callback function servicing multiple connections,
you might test this to determine which connection a particular
invocation is handling.
The
callbackArg
parameter contains the value you specified as the
callbackArg
parameter to
EvmConnCreate()
when you created the connection.
For example, you might use it to hold a pointer to your own context
data for the connection.
The
callbackData
parameter points to a structure containing the details of the callback.
The structure includes a callback reason code, an event, and a
union containing data specific to each possible reason.
The event member may contain NULL if it is not applicable to the reason.
You may get these reasons:
- EvmREASON_EVENTS_MISSED
This callback reason indicates that the daemon was unable to
deliver one or more events, probably because the client process
had not finished processing earlier events, causing the connection
buffer to overflow.
If necessary, you can use
EvmConnControl()
to increase the size of the receive buffer.
See the
EvmConnControl(3)
reference page.
- EvmREASON_EVENT_DELIVERED
This callback reason indicates that an EVM event has been received from
the daemon.
The event is available in the
callbackData
structure.
You must use
EvmEventDestroy()
to free the event when you have finished with it.
See the
EvmEventDestroy(3)
reference page.
- EvmREASON_POST_COMPLETE
This callback reason indicates that a prior
EvmEventPost()
call has completed, usually with a response from the daemon if the
responseMode
was specified as
EvmRESPONSE_CALLBACK
when the connection was created.
The posting status is available in the
callbackData
structure.
- EvmREASON_REGISTRATION_DELIVERED
This callback reason indicates that a requested template has been
delivered in response to an
EvmConnRegistrationGet()
request.
You must use
EvmEventDestroy()
to free the template when you have finished with it.
- EvmREASON_SUBSCRIBE_COMPLETE
This callback reason indicates that a prior
EvmEventSubscribe()
call has completed, usually with a response from the daemon.
- EvmREASON_TEMPLATE_INFO_DELIVERED
This callback reason indicates that event template information has
been delivered in response to an
EvmConnTemplateScan()
request.
The template is available in the
callbackData
structure.
You must use
EvmEventDestroy()
to free the template when you have finished with it.
FILES
- /usr/include/evm/evm.h
Header file that contains the event declaration, structures, and prototype
for the callback function
EVM Events
EvmEvent(5).
EVM Programmer's Guide,
EVM System Administration Guide.