ham_condition_raise()

Присоединить условие, связанное с состоянием срабатывания условия

Прототип:

#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 );

Аргументы:

ehdl
Дескриптор объекта HAM. Аргумент ehdl представляет собой дескриптор объекта, полученный либо:
cname
Имя условия.
rtype
Требуемый тип условия для того, чтобы объект установился и сопоставился, что вызовет срабатывание условия cname.
rclass
Требуемый класс условия для того, чтобы объект установился и сопоставился, что вызовет срабатывание условия cname.
rseverity
Требуемая "строгость" условия для того, чтобы объект установился и сопоставился, что вызовет срабатывание условия cname.
flags
Флаги в настоящий момент не поддерживаются.

Библиотека:

libham

Описание:

Данное условие срабатывает всякий раз, когда объект вызывает условие, которое соответствует заданным rtype, rclass и rseverity. Объект, который создает условие, создает его с заданным набором значений для типа, класса и "строгости". Подписчики этого события могут указать интересующие их условия либо явно, либо с помощью следующих специальных подстановочных знаков для каждого из этих значений.

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

Возвращаемое значение:

a condition handle
Успешное завершение.
NULL
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EBADF
Не удалось подключиться к HAM.
EEXIST
Переданное имя для действия уже существует.
EINVAL
Дескриптор, тип или имя некорректны (например, содержат символ /) или имеют значение NULL. Не удалось подключиться к HAM. Это происходит, когда процесс, открывший соединение (используя ham_connect()), и процесс, вызывающий ham_action_execute(), не совпадают.
ENAMETOOLONG
Указанное имя (в cname) слишком длинное, т.е. оно превышает _POSIX_PATH_MAX (определено в <limits.h>). Обратите внимание, что общая длина имени объекта/условия/действия также ограничена _POSIX_PATH_MAX.
ENOMEM
Недостаточно памяти для создания нового дескриптора.

В дополнение к вышеуказанным ошибкам HAM возвращает любую ошибку, с которой он сталкивается при обслуживании данного запроса.

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

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()




Предыдущий раздел: Менеджер высокой готовности (HAM)