EvmSrvStart(3)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
The name for this service. It must be a service declared in the EVM
daemon configuration file. If this operand is not NULL, it is written
to the connection when the service is started. 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 struc‐
ture, transport, initialized in the following manner: char *hostname =
"yoursys"; transport.type = EvmTRANSPORT_TCPIP; trans‐
port.data.tcpip.portNumber = -1; transport.data.tcpip.hostName = host‐
name; 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. If this operand is not NULL on return,
it contains an EVM event returned by the service. If this oper‐
and is not NULL on return, it contains a character string
returned by the service. If this operand is not NULL on return,
it contains an error message character string returned by the
service. 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 dae‐
mon, 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 mes‐
sage 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 mes‐
sages 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
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. 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. 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 ser‐
vice 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)EvmSrvStart(3)