Warning: main(/www/www/htdocs/style/globals.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/ham_en/ham/hamapi/ham_condition_state.html on line 1
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/globals.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/ham_en/ham/hamapi/ham_condition_state.html on line 1
Warning: main(/www/www/htdocs/style/header.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/ham_en/ham/hamapi/ham_condition_state.html on line 8
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/header.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/ham_en/ham/hamapi/ham_condition_state.html on line 8
Attach a condition associated with a state transition
#include <ha/ham.h>
ham_condition_t *ham_condition_state(
ham_entity_t *ehdl,
const char *cname,
unsigned fromstate,
unsigned tostate,
unsigned flags );
libham
This condition is triggered when the specified entity
changes from a state matching fromstate to a state matching
tostate.
CONDSTATEANY can be used to specify a wild card signifying
any STATE. The matching of states is based on either an explicit match
or special conditions explained in the Flags section below.
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.
Standard flags that are applicable for conditions are also valid
here. (See
ham_condition()
for more details). In addition, the following flags are also defined:
/* special condition flags */
HCONDSTATEFROMSET /* from state is a set */
HCONDSTATETOSET /* to state is a set */
HCONDSTATEFROMINV /* invert from state set */
HCONDSTATETOINV /* invert to state set */
States can be given using:
- individual values
- the wild card CONDSTATEANY
- bitmaps that allow several states to be referred to
collectively as sets.
If fromstate or tostate refers
to a set, the corresponding flag
HCONDSTATEFROMSET or HCONDSTATETOSET
must be set.
If you want fromstate or tostate to refer
to the logical negation of a set of states
define HCONDSTATEFROMINV or HCONDSTATETOINV
in flags. This would logically invert the set of states specified
(equivalent to saying “any state other than this set”).
- a condition handle
- Success.
- NULL
- Failure (errno is set).
- 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.
QNX Neutrino
Safety: | |
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
No |
Thread |
Yes |
ham_condition(),
ham_condition_raise(),
ham_attach()
ham_attach_self()
ham_entity()
ham_entity_control()
ham_entity_handle()
ham_entity_handle_free()
ham_entity_node()
Warning: main(/www/www/htdocs/style/footer.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/ham_en/ham/hamapi/ham_condition_state.html on line 213
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/footer.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/ham_en/ham/hamapi/ham_condition_state.html on line 213