NAME
EvmConnCreate(), EvmConnCreatePoster(), EvmConnCreateSubscriber(), EvmConnDestroy(), EvmConnFdGet() — establish or destroy connection with the EVM daemon
SYNOPSIS
#include <evm/evm.h>
EvmStatus_t EvmConnCreate(
EvmConnectionType_t type,
EvmResponseMode_t responseMode,
const EvmTransport_t transport,
EvmCallback_t callback,
EvmCallbackArg_t callbackArg,
EvmConnection_t *connection );
EvmStatus_t EvmConnCreatePoster(
EvmConnection_t *connection );
EvmStatus_t EvmConnCreateSubscriber(
EvmCallback_t callback,
EvmCallbackArg_t callbackArg,
EvmConnection_t *connection );
EvmStatus_t EvmConnDestroy(
EvmConnection_t connection );
EvmStatus_t EvmConnFdGet(
EvmConnection_t connection,
EvmFd_t *fd );
Library
EVM Support Library
(libevm.so).
Parameters
- type
Establishes the function of the connection.
Possible values are as follows:
- EvmCONNECTION_POST
Creates a connection for use by posting clients.
- EvmCONNECTION_LISTEN
Creates a connection for use by subscribing clients.
The
responseMode
operand must be set to
EvmRESPONSE_CALLBACK.
- responseMode
Establishes the behavior of certain connection-oriented
API functions when requests are made to the EVM daemon.
If a function call results in such a request,
the function returns a response
according to the value of this operand, as follows:
- EvmRESPONSE_IGNORE
The function returns without waiting for the daemon's response.
In this mode, any return status other than
EvmERROR_NONE
indicates that a problem was detected in preliminary validation.
A response of
EvmERROR_NONE
signifies only that the request was sent to the daemon.
An
EvmERROR_NONE
response
cannot determine if the request was received or accepted.
- EvmRESPONSE_WAIT
The function does preliminary validation, returning a status
reflecting any error it finds.
If the function finds no error, it passes
the request to the EVM daemon and blocks until a response is
received from the daemon.
The status returned by the function
may result either from preliminary validation or from
validation by the daemon.
If no error is returned by the
function, the request has been accepted by the daemon.
- EvmRESPONSE_CALLBACK
The function returns without waiting for a response.
Any return status other than
EvmERROR_NONE
indicates that a problem was detected in preliminary validation.
If no error is found, the function passes the request to the
EVM daemon, and returns immediately with a status of
EvmERROR_NONE.
The calling process must use
EvmConnWait()
or a related function to watch for I/O activity on the connection,
and then invoke
EvmConnDispatch()
to handle the activity.
In most cases, the connection's callback
function is invoked to handle incoming messages.
This response mode must be used for listening connections.
- transport
Specify the type of connection to be made to the daemon.
Because EVM currently supports only local connection the daemon,
this argument must always be set to NULL.
If this argument is not NULL,
an error occurs.
- callback
A pointer to a routine that is to be called by
EvmConnDispatch()
to process an incoming message. The routine is declared as described
in the
EvmCallback(5)
manpage.
If the response mode is not
EvmRESPONSE_CALLBACK,
this operand is NULL.
- callbackArg
This argument is supplied
each time the callback routine is invoked by
EvmConnDispatch().
See
EvmCallback(5).
The calling process uses this argument to pass
its own context data for the connection to the callback function.
If no context data is required,
this operand is NULL.
- connection
For
EvmConnCreate(),
connection
is the return operand for the new connection.
For the other routines described on this manpage,
connection
is the EVM connection to be processed.
- fd
The return operand for the file number associated with the supplied connection.
DESCRIPTION
The
EvmConnCreate()
routine establishes a connection between a client process and the EVM daemon.
If the connection is successful, a pointer to a
new connection context is returned in the connection argument.
The
EvmConnCreatePoster()
routine is a macro that establishes a posting connection to the local daemon.
Using this macro is equivalent to calling
EvmConnCreate()
with
type
set to
EvmCONNECTION_POST,
responseMode
set to
EvmRESPONSE_WAIT,
and
transport,
callback,and
callbackArg
are all set to NULL.
The
EvmConnCreateSubscriber()
routine is a macro that establishes a
subscribing connection to the local daemon.
Using this macro is equivalent
to calling
EvmConnCreate()
with
type
set to
EvmCONNECTION_LISTEN,
responseMode
set to
EvmRESPONSE_CALLBACK,
and
transport
set to NULL.
The
EvmConnFdGet()
routine returns the file number associated with the connection.
This file number can be used by a client application,
which handles multiple I/O sources, for use in a call to
select()
to determine when there is activity on the connection.
The program must call
EvmConnDispatch()
to handle the activity.
It must not close the file descriptor,
nor perform any direct I/O on it.
The
EvmConnDestroy()
routine destroys the connection and frees any resources associated with it.
This routine must be called to destroy the connection.
RETURN VALUE
- EvmERROR_NONE
The operation completed without error.
- EvmERROR_INVALID_ARGUMENT
One of the arguments to the function is invalid.
- EvmERROR_INVALID_VALUE
A value in a structure member is invalid.
- EvmERROR_NO_MEMORY
An operation failed because an attempt to acquire heap memory failed.
- EvmERROR_READ
A read error occurred while reading from the EVM daemon connection.
- EvmERROR_WRITE
A write error occurred while writing to the EVM daemon connection.
- EvmERROR_CONNECT
An error occurred while attempting to connect to the EVM daemon.
- EvmERROR_SELECT
An error occurred on the EVM connection.
Invoke
EvmConnDestroy()
to destroy the connection.
- EvmERROR_SIGNAL
The current operation was interrupted by receipt of a signal.
ERRORS
The value of
errno
is not set.
FILES
- /var/evm/sockets/evmd
Default pathname for the domain socket.