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 operand. 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 connection. 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 connection. If timeout is not NULL, it
specifies the amount of time that the function should wait
for activity on the connection before returning 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 immediately. Calling this
function is not guaranteed to invoke the connection'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 messages 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 messages
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 operation 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)
[ Back ]