NAME
EvmConnControl() — control information for an EVM connection
SYNOPSIS
#include <evm/evm.h>
EvmStatus_t EvmConnControl(
EvmConnection_t connection,
EvmInt32_t request,
void *arg);
Library
EVM Support Library
(libevm.so).
Parameters
- connection
The EVM connection to be controlled. See the
EvmConnCreate(3)
manpage.
- request
The control action requested.
See the
DESCRIPTION
section for the available requests.
- arg
The 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 sets or gets control information for a connection.
The following list shows the available values for the
request
argument and the associated value of the
arg
argument.
- request Argument
arg Argument Values
- 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_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.
NOTE:
EvmCONN_RCV_SZ_SET
and
EvmCONN_SND_SZ_SET,
which set the receive and send buffer size,
are not currently supported in HP-UX.
Instead, use
EvmConnFdGet()
to get the socket descriptor of the connection, and use
setsockopt()
to change the buffer size of the socket.
- EvmCONN_CHECKSUM_ENABLE
Enables checksum generation for posted events.
This is the default
state when a connection is established.
The
arg
argument must 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 must be set to NULL.
- EvmCONN_CHECKSUM_IS_ENABLED
Queries the connection to find out if 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
EvmItemMask_()
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 must 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 blocks 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.
In addition,
the process must invoke
EvmConnFlush()
a short time later, to avoid unsent messages accumulating in memory.
Further calls to
EvmEventPost()
also flush the queue.
Refer to the
EvmConnFlush(3)
manpage for more details.
This option cannot be used for any connection type other than a posting
connection with a response mode of
EvmRESPONSE_IGNORE.
This option
is provided for critical high-performance processes which must
post a large number of events in a very short time.
This option is not suitable for general use.
The
arg
argument is an
EvmBoolean_t
value.
A value of
EvmFALSE
allows the process to block if necessary.
A value of
EvmTRUE
prevents blocking and enables message queuing.
RETURN VALUE
- EvmERROR_NONE
The operation completed without error.
- 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_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
The value of
errno
is not set.