ham_condition_raise()

QNX SDP8.0High Availability Framework Developer's GuideDeveloper

Attach a condition associated with a condition raise condition

Synopsis:

#include <ha/ham.h>

ham_condition_t *ham_condition_raise(
                ham_entity_t *ehdl,
                const char *cname,
                unsigned rtype,
                unsigned rclass,
                unsigned rseverity,
                unsigned flags );

Arguments:

ehdl
The HAM entity handle.
cname
The name of the condtion to trigger whenever the entity raises a condition that matches the given rtype, rclass, and rseverity.
rtype
The type of the condition you want the entity to raise and match, which will trigger the condition in cname.
rclass
The class of the condition you want the entity to raise and match, which will trigger the condition in cname.
rseverity
The severity of the condition you want the entity to raise and match, which will trigger the condition in cname.
flags
Currently not used.

Library:

libham

Description:

This condition is triggered whenever an entity raises a condition, which matches the given rtype, rclass, and rseverity. An entity that raises a condition, does so with a given set of values for type, class, and severity. Subscribers to this event can specify the conditions they are interested in either explicitly or by using the following special wildcards for each of these values.

CONDRAISETYPEANY     /* ANY type     : raised condition */
CONDRAISECLASSANY    /* ANY class    : raised condition */
CONDRAISESEVERITYANY /* ANY severity : raised condition */

The ehdl argument is an entity handle obtained either:

  • from a ham_attach*() call or a ham_entity*() call

    or:

  • by calling ham_entity_handle*() with an existing entity name. Since conditions are associated with entities, the entity handle (ehdl) must be available before you can add conditions.

Returns:

A condition handle, or NULL if an error occurred (errno is set).

Errors:

EBADF
Couldn't connect to the HAM.
EEXIST
The name provided for the condition already exists.
EINVAL
The handle, type, or name given is invalid (e.g., it contains the / character) or is NULL.
ENAMETOOLONG
The name given (in aname) is too long (i.e., it exceeds _POSIX_PATH_MAX, defined in <limits.h>).
Note:
The combined name length of an entity, condition, or action is also limited by _POSIX_PATH_MAX.
ENOMEM
Not enough memory to create a new handle.

In addition to the above errors, the HAM returns any error it encounters while servicing this request.

Classification:

QNX OS

Safety:
Cancellation pointNo
Signal handlerNo
ThreadYes
Page updated: