Добавить уведомляющий импульс к условию
#include <ha/ham.h>ham_action_t * ham_action_notify_pulse( ham_condition_t *chdl,const char *aname,int nd,pid_t topid,int chid,int pulsecode,int value,unsigned flags );ham_action_t * ham_action_notify_pulse_node( ham_condition_t *chdl,const char *aname,const char *nodename,pid_t topid,int chid,int pulsecode,int value,unsigned flags );
libham
Данные функции добавляют действие к заданному условию. Это действие доставит уведомляющий импульс процессу topid.
Действие выполняется, когда срабатывает соответствующее условие.
nd указывает идентификатор удаленного (или локального) узла, которому адресован импульс. nd является идентификатором удаленного узла во время выполнения вызова.
![]() | Поскольку идентификаторы узлов являются временными объектами, необходимо получить значение для nd непосредственно перед вызовом, используя netmgr_strtond() или другую функцию, которая преобразует nodename в идентификаторы узлов. |
Следует использовать функцию ham_action_notify_pulse_node(), когда nodename используется для указания удаленного HAM вместо идентификатора узла (nd). Функция ham_action_notify_pulse_node() принимает в качестве параметра полное имя узла (FQNN).
Импульс pulsecode с заданным значением value будет доставлен на topid по указанному идентификатору канала (chid).
Пользователи могут указать, что будет сделано, если действие не будет совершено. Такие действия добавляются в список. Для каждого несовершенного действия будет выполнен соответствующий список действий. Некоторые действия (например, ham_action_log() и ham_action_heartbeat_healthy()) гарантированно совершаются. Для получения дополнительной информации обратитесь к соответствующему разделу в Использование менеджера высокой готовности для вызовов ham_action_fail_*().
ham_action_t
.
/
) или имеет значение NULL
. Не удалось подключиться к HAM. Это происходит, когда процесс, открывший соединение (используя ham_connect()), и процесс, вызывающий ham_action_execute(), не совпадают. _POSIX_PATH_MAX
(определено в <limits.h>
). Обратите внимание, что общая длина имени объекта/условия/действия также ограничена _POSIX_PATH_MAX
. В дополнение к вышеуказанным ошибкам HAM возвращает любую ошибку, с которой он сталкивается при обслуживании данного запроса.
ЗОСРВ «Нейтрино»
ham_action_execute(), ham_action_notify_signal(), ham_action_remove(), ham_action_restart(), ham_action_waitfor(), ham_condition()
Предыдущий раздел: Менеджер высокой готовности (HAM)