evmeventpost.3 (2010 09)
e
EvmEventPost(3) EvmEventPost(3)
NAME
EvmEventPost(), EvmEventPostVa() - post an EVM event
SYNOPSIS
#include <evm/evm.h>
EvmStatus_t EvmEventPost(
EvmConnection_t
connection ,
const EvmEvent_t event );
EvmStatus_t EvmEventPostVa(
EvmConnection_t
connection ,
const EvmEvent_t event );
[EvmItemId_t item_id ,
const EvmItemValue_t
item_id ]...,
EvmITEM_NONE );
Library
EVM Support Library (libevm.so).
Parameters
connection The connection through which events are posted. See EvmConnCreate(3).
event The event that is to be posted to the specified connection. 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.
EvmEventPost() posts an event that has already been created with
EvmEventCreate() or
EvmEventCreateVa()
.
EvmEventPostVa()
creates, posts and destroys an event in a single call. It first creates 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 des-
troyed 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 routines, the event is posted to the local
daemon using a temporary connection. The temporary connection is destroyed before the routine returns.
Because of the overhead associated with creating and destroying 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
EvmEventDestroy() 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
processes may prefer to block as infrequently as possible.
EvmConnControl() can be used to
increase the size of the send buffer. See EvmConnControl(3) for more information.
3. When using extended item_ids to supply names and values of variable items to
EvmEventPostVa(), be sure to supply the correct number of operands 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.
HP-UX 11i Version 3: September 2010 − 1 − Hewlett-Packard Company 1