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

EvmSrvStart(3)

NAME

EvmSrvStart, EvmSrvMessageGet - Event service functions

SYNOPSIS

#include <evm/evm.h> EvmStatus_t EvmSrvStart( char *service_name, char *arg_string, EvmTransport_t *transport, EvmConnection_t *connection ); EvmStatus_t EvmSrvMessageGet( EvmConnection_t connection, EvmEvent_t *event, char **msg, char **errmsg, EvmInt32_t *info );

OPERANDS

service_name The name for this service. It must be a service declared in the EVM daemon configuration file. arg_string If this operand is not NULL, it is written to the connection when the service is started. 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: char *hostname = "yoursys"; transport.type = EvmTRANSPORT_TCPIP; transport.data.tcpip.portNumber = -1; transport.data.tcpip.hostName = hostname; connection For EvmSrvStart() this is the return operand. The calling routine should pass this value to EvmConnDestroy() when it is done with the connection. For EvmSrvMessageGet() this is the service connection that will be read for a message. event If this operand is not NULL on return, it contains an EVM event returned by the service. msg If this operand is not NULL on return, it contains a character string returned by the service. errmsg If this operand is not NULL on return, it contains an error message character string returned by the service. info If this operand is not NULL on return, it contains numeric information returned by the service.

DESCRIPTION

The EvmSrvStart() routine creates a service connection to the EVM daemon, requesting that the service identified as service_name be started. If the service is known to the daemon, it is started as a child process of the daemon, and the connection is transferred to the service process. If the arg_string is not NULL, the function then appends a newline character to it and writes it to the connection. The EvmSrvMessageGet() routine reads a single EVM service protocol message from the service connection identified by connection and returns it to the caller. The message may be a procedural protocol message, indicating that the service has started or terminated, or it may carry data. Procedural messages are handled by the API function. Data messages may be any one of the following: · An EVM event returned to the caller in event · A character string returned to the caller in msg · An error character string returned to the caller in errmsg In each of these cases, the data will be returned to the caller only if the address passed to the function as the corresponding argument is not NULL. The function returns a non-null value in at most one of these return arguments, and sets the others to NULL. If the incoming message does not include data (for example, if it is a protocol message indicating that the service is terminating) all three of the arguments are set to NULL. The message may carry one information item, which is returned if info is not NULL. This value is used in the service termination protocol message to indicate the service process's exit code.

NOTES

This routine is not currently supported for general use.

RESTRICTIONS

None

RETURN VALUES

EvmERROR_NONE A data message was received, and is available in one of the three data return arguments, if a non-null pointer was supplied as the appropriate argument. EvmERROR_SERVICE_TERMINATED The service indicated that it was terminating. If the caller passed a non-null data argument, the service process's exit code is returned in the info operand. EvmERROR_EOF The service connection was closed by the service before a service termination message was received. This value is returned if the caller continues to attempt the call after the service has been terminated.

ERRORS

None

LIBRARY

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

FILES

None

SEE ALSO

Commands: evmget(1) Routines: EvmConnDestroy(3) Files: evmdaemon.conf(4), kevm(7) Event Management: EVM(5) Event Connection: EvmConnection(5) EVM Events: EvmEvent(5)

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