EvmEventPost(3)EvmEventPost(3)NAMEEvmEventPost(), EvmEventPostVa() - post an EVM event
SYNOPSIS
Library
EVM Support Library
Parameters
connection The connection through which events are posted. See Evm‐
ConnCreate(3).
event The event that is to be posted to the specified connec‐
tion. See EvmEventCreate(3).
item_id The identifier for the event data item to be set. See
EvmItemSet(3) for possible values for this operand, and
the data contained by the data item.
item_value The value to be stored in the associated item indicated
by item_id.
DESCRIPTION
An EVM client program uses the routines described on this page to pass
events to the EVM daemon, for distribution to subscribers.
posts an event that has already been created with or
creates, posts and destroys an event in a single call. It first cre‐
ates a new event, adding any data items supplied in the call to it. If
the event operand is not NULL, the contents of the supplied event are
then merged into the new event, and the new event is posted. The new
event is destroyed before the routine returns, and the supplied event
(if any) is unchanged. See EvmItemSetVa(3) for details of the item_ids
and item_values that may be passed as operands to this routine.
If NULL is passed as the connection operand to either of these rou‐
tines, the event is posted to the local daemon using a temporary con‐
nection. The temporary connection is destroyed before the routine
returns. Because of the overhead associated with creating and destroy‐
ing an EVM connection, pass NULL only if your program rarely posts
events.
If either routine is unable to pass the event to the daemon, the error
is reported immediately through the return code. If the event is
passed to the daemon, the type of response depends on the response mode
specified when the connection was created.
Notes
1. These routines do not destroy the event passed as the event
operand. Explicitly call to destroy the event and free its
memory once it is no longer needed.
2. Avoid posting a large number of events in rapid succession,
since this may cause the connection's send buffer to fill,
and the posting process to block until the EVM daemon has
relieved some or all of the data. Although this is a normal
part of process synchronization, some high-performance pro‐
cesses may prefer to block as infrequently as possible. can
be used to increase the size of the send buffer. See EvmCon‐
nControl(3) for more information.
3. When using extended item_ids to supply names and values of
variable items to be sure to supply the correct number of op‐
erands for each. A variable name and value is required for
all such items, and some variable types require an additional
argument. See EvmItemSetVa(3) for more information.
RETURN VALUE
The operation completed without error.
The EVM daemon rejected the event.
The most likely reasons are that no template has been registered
for the event, or that the caller is not authorized to post the
event. See evmtemplate(4) and evm.auth(4) for more information.
One of the arguments to the function is invalid.
A value in a structure member is invalid.
An operation failed because an attempt to acquire heap memory failed.
The connection's output buffer is full, and the event has
been queued in heap space. Another attempt is made to flush the
queue when the next call is made to or when the caller invokes
This error code is only returned for connections for which has
been invoked with the request argument set to
A read error occurred while reading from the EVM daemon connection.
The connection is no longer usable. The caller needs to invoke
to destroy it.
A write error occurred while writing to the EVM daemon connection.
The connection is no longer usable. The caller needs to invoke
to destroy it.
ERRORS
The value of is not set.
SEE ALSO
Routines
EvmConnControl(3), EvmConnCreate(3), EvmConnDestroy(3), EvmConnRegis‐
trationGet(3), EvmEventCreate(3), EvmEventDestroy(3), EvmItemSetVa(3).
Event Management
EVM(5).
Event Connection
EvmConnection(5).
EVM Events
EvmEvent(5).
EvmEventPost(3)