EvmConnCheck, EvmConnWait, EvmConnDispatch, EvmConnFlush - Maintains
connection with the EVM daemon
#include <sys/time.h> #include <evm/evm.h>
EvmStatus_t EvmConnCheck (
EvmBoolean_t *IOWaiting ); EvmStatus_t EvmConnWait (
const struct timeval *timeout ); EvmStatus_t EvmConnDispatch (
EvmConnection_t connection ); EvmStatus_t EvmConnFlush (
EvmInt32_t *count );
The EVM connection that is to be monitored. This is the return oper‐
and. Possible values for this operand are the following: There is no
outstanding I/O activity on the connection. There is outstanding I/O
activity on the connection. The client should call EvmConnDispatch() to
handle the outstanding activity. If this value is NULL, it specifies
that EvmConnWait() should wait until there is activity on the connec‐
tion. If this value is not NULL, it specifies the amount of time that
EvmConnWait() should wait for activity on the connection. Receives a
count of messages queued for sending to the EVM daemon.
The EvmConnCheck() routine checks whether there is any I/O activity
outstanding on the connection. If there is, IOWaiting is set to
EvmTRUE. The program should then call EvmConnDispatch() to handle it.
If there is no outstanding I/O activity, IOWaiting is set to EvmFALSE.
A response EvmTRUE from this function does not guarantee that an event
has arrived; simply that there is a message on the connection that
needs to be handled.
The EvmConnWait() routine blocks until activity is detected on the con‐
nection. If timeout is not NULL, it specifies the amount of time that
the function should wait for activity on the connection before return‐
ing with a status of EvmERROR_TIMEOUT.
The EvmConnDispatch() routine will handle one incoming I/O message on
the connection, calling the client's callback function as needed. If
there is no message awaiting processing, the function returns immedi‐
ately. Calling this function is not guaranteed to invoke the connec‐
tion's callback function, and if the callback is invoked, it is not
necessarily true that an event has arrived.
The EvmConnFlush() routine attempts to send to the EVM daemon any mes‐
sages that are queued for output as a result of earlier EvmEventPost()
calls on a connection that is marked as a non-blocking connection. The
routine continues to send messages from the queue until either all mes‐
sages have been sent or the send buffer is full. On return, the count
output parameter holds the number of messages still queued for sending;
if this number is more than zero, EvmConnFlush returns EvmERROR_QUEUED.
See EvmConnControl(3) for more information.
The operation was completed without error. One of the arguments to the
function was invalid. A value in a structure member is invalid. An
operation failed because an attempt to acquire heap memory failed. A
read error occurred while reading from the EVM daemon connection. A
write error occurred while writing to the EVM daemon connection. An
error occurred on the EVM connection. Invoke EvmConnDestroy() to
destroy the connection. A timeout period expired. The current opera‐
tion was interrupted by receipt of a signal. One or more messages is
queued for sending to the EVM daemon.
EVM Support Library (libevm.so, libevm.a)
Default pathname for the domain socket.
Functions: connect(2), select(2), socket(2)
Routines: EvmConnControl(3), EvmConnCreate(3), EvmConnDestroy(3)EvmEventPost(3)
Event Management: EVM(5)
Event Callback: EvmCallback(5)
Event Connection: EvmConnection(5)
EVM Events: EvmEvent(5)EvmConnWait(3)