EvmSrvStart, EvmSrvMessageGet - Event service functions
#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 );
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
structure, transport, initialized in the following
manner: char *hostname = "yoursys"; transport.type
= EvmTRANSPORT_TCPIP; transport.data.tcpip.portNumber =
-1; transport.data.tcpip.hostName = hostname; 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 operand 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.
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.
This routine is not currently supported for general use.
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. The service indicated
that it was terminating. If the caller passed a nonnull
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 service has been terminated.
None
EVM Support Library (libevm.so, libevm.a)
None
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)
[ Back ] |