ham_entity_condition_raise()

Установить условие

Прототип:

#include <ha/ham.h>
int ham_entity_condition_raise( ham_entity_t *ehdl,
unsigned rtype,
unsigned rclass,
unsigned rseverity,
unsigned flags );

Аргументы:

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

Библиотека:

libham

Описание:

Данная функция используется объектом для уведомления HAM об интересующем его событии по его выбору. Это, в свою очередь, запускает CONDITION_RAISE в HAM, который будет искать подходящих подписчиков для данного события и выполнять все связанные действия.

Значения rtype, rclass и rseverity могут использоваться для обеспечения более точного совпадения и сбора дополнительной информации, относящейся к условию.

Чтобы узнать больше о механизме совпадения, обратитесь к документации по API для ham_condition_raise().

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

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EBADF
Не удалось подключиться к HAM.
EINVAL
Некорректный дескриптор ehdl. Не удалось подключиться к HAM. Это происходит, когда процесс, открывший соединение (используя ham_connect()), и процесс, вызывающий данную функцию, не совпадают.
ENOENT
Отсутствует объект ehdl.

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

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

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

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

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

ham_condition(), ham_condition_raise(), ham_condition_state(), ham_attach(), ham_attach_self(), ham_entity(), ham_entity_control(), ham_entity_handle(), ham_entity_handle_free(), ham_entity_node()




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