EvmConnControl(3) — Subroutines
NAME
EvmConnControl − Controls information for an EVM connection
SYNOPSIS
#include <evm/evm.h>
EvmStatus_t EvmConnControl(
EvmConnection_t connection,
EvmInt32_t request,
void ∗arg );
OPERANDS
connection
The connection to be controlled. See the EvmConnCreate(3) reference page.
request
The control action requested. See the DESCRIPTION section for the available requests.
argThe value and use of arg depends on the request. See the DESCRIPTION section for the available meanings and the association to a request.
DESCRIPTION
The EvmConnControl() routine allows you to set or get control information for a connection.
The following table shows the available values for the request argument and the associated value of the arg argument.
EvmCONN_RCV_SZ_GET
Gets the size of the connection’s receive buffer. The arg argument is a pointer to an EvmInt32_t field to receive the size value.
EvmCONN_RCV_SZ_SET
Sets the size of the connection’s receive buffer. Changing this value also causes the EVM daemon to make a corresponding change to the size of its send buffer. The arg argument is an EvmInt32_t value.
EvmCONN_SND_SZ_GET
Gets the size of the connection’s send buffer. The arg argument is a pointer to an EvmInt32_t field to receive the size value.
EvmCONN_SND_SZ_SET
Sets the size of the connection’s send buffer. Changing this value also causes the EVM daemon to make a corresponding change to the size of its receive buffer. The arg argument is an EvmInt32_t value.
EvmCONN_CHECKSUM_ENABLE
Enables checksum generation for posted events. This is the default state when a connection is established. The arg argument should be set to NULL.
EvmCONN_CHECKSUM_DISABLE
Disables checksum generation for posted events. This option is intended for use by high-performance applications that post events frequently, using the local EVM daemon. The arg argument should be set to NULL.
EvmCONN_CHECKSUM_IS_ENABLED
Queries the connection to find out whether checksum generation is enabled. The arg argument is a pointer to an EvmBoolean_t field to receive a boolean value.
EvmCONN_POST_ITEM_MASK_SET
Modifies the set of environmental data items that are inserted into events posted to the supplied connection. The arg argument is a EvmItemMask_t value, containing a bitmap of item values to be inserted. Item enumeration values can be converted to bitmap form by using the EvmItem Mask_() macro - for example, EvmItemMask_(EvmITEM_TIMESTAMP) | EvmItemMask_(EvmITEM_USER_NAME).
EvmCONN_POST_ITEM_MASK_RESET
Restores the default set of environmental data items inserted automatically into events posted to the supplied connection. The arg argument should be set to NULL. This request clears the effects of any prior EvmCONN_POST_ITEM_MASK_SET requests.
EvmCONN_POST_NONBLOCK_SET
Controls the behavior of the calling process if an attempt to post an event would overflow the connection’s send buffer. If this option is set to EvmFALSE (the default state when the connection is established), the process will block as necessary to synchronize message transfer to the EVM daemon. If it is set to EvmTRUE, EvmEventPost() returns EvmERROR_QUEUED if an event cannot be sent fully without blocking, and the process must invoke EvmConnFlush() a short time later, to avoid unsent messages accumulating in memory. Further calls to EvmEventPost() will also flush the queue. Refer to the EvmConnFlush(3) reference page for more details.
This option cannot be used for any connection type other than a posting connection with a response mode of EvmRESPONSE_IGNORE. It is provided for critical high-performance processes which must post a large number of events in a very short time, and is unlikely to be suitable for general use.
The arg argument is an EvmBoolean_t value. A value of EvmFALSE allows the process to block if necessary, while EvmTRUE prevents blocking and enables message queueing.
RETURN VALUES
EvmERROR_NONE
The operation was completed without error.
EvmERROR_INVALID_ARGUMENT
One of the arguments to the function was 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_RESOURCE
An unexpected error occurred while attempting to acquire or control a system resource.
EvmERROR_SIGNAL
The current operation was interrupted by receipt of a signal.
ERRORS
None
LIBRARY
EVM Support Library (libevm.so, libevm.a)
FILES
None
SEE ALSO
Functions: connect(2), select(2)
Routines: EvmConnCheck(3), EvmConnCreate(3), EvmConnSubscribe(3), EvmConnWait(3)
Files: kevm(7)
Event Management: EVM(5)
Event Connection: EvmConnection(5)