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 Event ManagerProgrammer's Guide: HP-UX 11i v3Edition 1 > Chapter 4 Sample EVM Programming Operations

Posting Events

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Index

When an event is posted, it is distributed to the subscribers by the EVM daemon. Before you can post the event, you must create a posting connection to the Event Manager daemon.

Example 4-4 “Posting Events” shows how to create the connection, post the event, and disconnect the connection.

Example 4-4 “Posting Events” introduces the following functions:

  • EvmConnCreate — Establishes a connection between an application program and EVM, and defines how I/O activity is to be handled. A separate connection must be established for each type of connection: posting, listening (subscribing), or availing service. For more information about this function, see EvmConnection(5) and EvmConnCreate(3).

  • EvmEventPost — Posts an event to EVM. For more information about this function, see EvmEventPost(3).

  • EvmConnDestroy — Destroys a specified connection. For more information about this function, see EvmConnDestroy(3).

You can use the simpler EvmConnCreatePoster() macro in place of EvmConnCreate() to create a posting connection. This macro requires fewer arguments than EvmConnCreate(). Although it offers fewer connection options, it is suitable for use by most applications that need to post events to the local system.

If your program uses transient EVM connections, you can omit calls to EvmConnCreate() or EvmConnDestroy() and pass NULL as the connection argument to EvmEventPost(). Connections use significant processing time to establish, so you must use only transient connections if they are appropriate for your program. For more information about connections, see “Choosing a Connection Policy” and EvmEventPost(3).

You can create, post, and destroy an event in a single call using the EvmEventPostVa() function. For more information about this function, see EvmEventPost(3).

Example 4-4 Posting Events

 #include <stdio.h>#include <evm/evm.h>int  main(){ 	EvmEvent_t event;	EvmStatus_t status;EvmConnection_t conn;	EvmItemValue_t itemval_name;	/* You can create a connection to the EVM daemon using EvmConnCreate() function. The connection remains in place	 until your program exits, or until you explicitly destroy	 it with EvmConnDestroy(). The first two arguments to	 EvmConnCreate() function specify that the connection will be	 used for posting events. This function waits for the daemon	 to acknowledge acceptance of the event before returning, so	 that you can take action if the attempt fails. (See	 EvmConnCreate (3) for other response options.) The NULL	 value for the third argument indicates that you are making	 a connection to the EVM daemon running on the local system.	   The fourth and fifth values are used for other response	 types, and should always be NULL for wait-mode responses.	 The final argument receives the handle to the connection b		 you must supply the returned value in all future calls	 being made on this connection.*/	status = EvmConnCreate(EvmCONNECTION_POST, EvmRESPONSE_WAIT,NULL,NULL,NULL,&conn);	if (status != EvmERROR_NONE)	{ 		fprintf(stderr,"Failed to create EVM posting connection\n");		exit(1);	 }	 /* Create an event and post it. */	itemval_name.NAME="sys.unix.evm";	EvmEventCreateVa(&event, EvmITEM_NAME,			itemval_name,EvmITEM_NONE);		status = EvmEventPost(conn,event);	if (status != EvmERROR_NONE)	{ 		fprintf(stderr,"Failed to post event\n");		exit(1);	}	/* Clean up by destroying the event and the connection. If you expect posting events periodically, it may be better	 not to destroy the connection, but to reuse it for all	 future events. This will save you the overhead of re-establishing the connection each time you have	 something to post.*/	EvmEventDestroy(event);	EvmConnDestroy(conn);}
Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 2007 Hewlett-Packard Development Company, L.P.