Index Index for
Section 3
Index Alphabetical
listing for E
Bottom of page Bottom of
page

EvmConnCreate(3)

NAME

EvmConnCreate, EvmConnCreatePoster, EvmConnCreateSubscriber, EvmConnFdGet, EvmConnDestroy - 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 EvmConnFdGet( EvmConnection_t connection, EvmFd_t *fd ); EvmStatus_t EvmConnDestroy( EvmConnection_t connection );

OPERANDS

type This operand establishes the function of the connection. Possible values are the following: 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. EvmCONNECTION_SERVICE Creates a service connection. This mode is not currently supported for general use. responseMode This operand 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 will return 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; you cannot establish whether it was received or accepted. EvmRESPONSE_WAIT The function does preliminary validation, returning a status reflecting any error it finds. If it 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(3) or a related function to watch for I/O activity on the connection, and then invoke EvmConnDispatch(3) to handle the activity. In most cases, this will result in the connection's callback function being invoked to handle incoming messages. This response mode must be used for listening connections. transport This specifies the type of connection to be made to the daemon. You usually should set this argument to NULL for the default connection to the local daemon. For remote connection, set it to the address of an EvmTransport_t structure, transport, initialized in the following manner: transport.type = EvmTRANSPORT_TCPIP; transport.data.tcpip.portNumber = -1; /* -1 for default port */ transport.data.tcpip.hostName = "remote_system_address"; callback A pointer to a routine that will be called by EvmConnDispatch() to process an incoming message. The routine must be declared as described in the EvmCallback(5) reference page. This operand should be NULL if the response mode is not EvmRESPONSE_CALLBACK. callbackArg The argument that will be supplied as the callbackArg argument each time the callback routine is invoked by EvmConnDispatch(). See EvmCallback(5). The calling process should use this argument to pass its own context data for the connection to the callback function. This operand should be NULL if no context data is required. connection For EvmConnCreate() this is the return operand for the new connection. For the other routines described on this page, it is the 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 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(2) 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 VALUES

EvmERROR_NONE The operation was completed without error. EvmERROR_INVALID_ARGUMENT One of the arguments to the function was 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

None

LIBRARY

EVM Support Library (libevm.so, libevm.a)

FILES

/var/evm/sockets/evmd Default pathname for the domain socket.

SEE ALSO

Commands: evmget(1), evmpost(1), evmwatch(1) Functions: connect(2), select(2), socket(2) Routines: EvmConnControl(3), EvmConnDispatch(3), EvmConnWait(3) Files: kevm(7) Event Management: EVM(5) Event Callback: EvmCallback(5) Event Connection: EvmConnection(5) EVM Events: EvmEvent(5) Programmer's Guide

Index Index for
Section 3
Index Alphabetical
listing for E
Top of page Top of
page