Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > E

EvmEventPost(3)

HP-UX 11i Version 3: February 2007
» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

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 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 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.

RETURN VALUE

EvmERROR_NONE

The operation completed without error.

EvmERROR_EVENT_REJECTED

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.

EvmERROR_INVALID_ARGUMENT

One of the arguments to the function is invalid.

EvmERROR_INVALID_VALUE

A value in a structure member is invalid.

EvmERROR_NO_MEMORY

An operation failed because an attempt to acquire heap memory failed.

EvmERROR_QUEUED

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 EvmEventPost(), or when the caller invokes EvmConnFlush(). This error code is only returned for connections for which EvmConnControl() has been invoked with the request argument set to EvmCONN_POST_NONBLOCK_SET.

EvmERROR_READ

A read error occurred while reading from the EVM daemon connection. The connection is no longer usable. The caller needs to invoke EvmConnDestroy() to destroy it.

EvmERROR_WRITE

A write error occurred while writing to the EVM daemon connection. The connection is no longer usable. The caller needs to invoke EvmConnDestroy() to destroy it.

ERRORS

The value of errno is not set.

SEE ALSO

Routines

EvmConnControl(3), EvmConnCreate(3), EvmConnDestroy(3), EvmConnRegistrationGet(3), EvmEventCreate(3), EvmEventDestroy(3), EvmItemSetVa(3).

Event Management

EVM(5).

Event Connection

EvmConnection(5).

EVM Events

EvmEvent(5).

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.