ham_condition_raise
![]() |
![]() |
![]() |
![]() |
ham_condition_raise()
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 );
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 wild cards 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
- Success.
- NULL
- Failure (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.
The connection to the HAM is invalid. This happens when the process that opened the connection (using ham_connect()) and the process that's calling ham_condition() aren't the same.
- ENAMETOOLONG
- The name given (in aname) is too long, i.e. it exceeds _POSIX_PATH_MAX (defined in <limits.h>). Note that the combined length of an entity/condition/action name 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:
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | No |
| Signal handler | No |
| Thread | Yes |
See also:
ham_condition(), ham_condition_state(), ham_attach() ham_attach_self() ham_entity() ham_entity_control() ham_entity_handle() ham_entity_handle_free() ham_entity_node()
![]() |
![]() |
![]() |
![]() |
![[Previous]](../prev.gif)
![[Contents]](../contents.gif)
![[Index]](../keyword_index.gif)
![[Next]](../next.gif)