Присоединить условие, связанное со сменой состояния
#include <ha/ham.h>ham_condition_t * ham_condition_state( ham_entity_t *ehdl,const char *cname,unsigned fromstate,unsigned tostate,unsigned flags );
libham
Данное условие срабатывает, когда указанный объект переходит из состояния fromstate в состояние tostate.
CONDSTATEANY
можно использовать для указания подстановочного символа, означающего любое STATE
. Сопоставление состояний основано либо на явном совпадении, либо на особых условиях, описанных в параметре flags.
Состояния могут быть заданы с помощью:
CONDSTATEANY
Если fromstate или tostate ссылается на набор, должен быть установлен соответствующий флаг HCONDSTATEFROMSET
или HCONDSTATETOSET
.
Если необходимо, чтобы fromstate или tostate ссылались на логическое отрицание набора состояний, требуется определить HCONDSTATEFROMINV
или HCONDSTATETOINV
в flags. Это логически инвертировало бы указанный набор состояний (эквивалентно высказыванию «любое состояние, отличное от данного набора»).
/
) или имеют значение NULL
. Не удалось подключиться к HAM. Это происходит, когда процесс, открывший соединение (используя ham_connect()), и процесс, вызывающий ham_action_execute(), не совпадают. _POSIX_PATH_MAX
(определено в <limits.h>
). Обратите внимание, что общая длина имени объекта/условия/действия также ограничена _POSIX_PATH_MAX
. В дополнение к вышеуказанным ошибкам HAM возвращает любую ошибку, с которой он сталкивается при обслуживании данного запроса.
ЗОСРВ «Нейтрино»
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()
Предыдущий раздел: Менеджер высокой готовности (HAM)