Получить дескриптор условия объекта
#include <ha/ham.h>ham_condition_t * ham_condition_handle( int nd,const char *ename,const char *cname,unsigned flags );ham_condition_t * ham_condition_handle_node( const char *nodename,const char *ename,const char *cname,unsigned flags );
libham
Функция ham_condition_handle() возвращает дескриптор условия cname объекта ename.
Дескриптор, полученный от этой функции, может быть передан другим функциям, таким как ham_action_restart() или ham_condition_handle_free().
![]() | Чтобы получить дескриптор глобального объекта, следует передать NULL вместо . |
Возвращаемый дескриптор непрозрачен — его содержимое доступно только для внутренних нужд библиотеки.
Если указан узел (nd), дескриптор будет относиться к комбинации объект/условие/действие, которая относится к процессу на данном удаленном узле. Функция ham_condition_handle_node() используется, когда nodename используется для указания удалённого HAM вместо идентификатора узла (nd).
ham_condition_t
.
/
) или имеет значение NULL
. _POSIX_PATH_MAX
(определено в <limits.h>
). Обратите внимание, что общая длина имени объекта/условия/действия также ограничена _POSIX_PATH_MAX
. ЗОСРВ «Нейтрино»
![]() | Вызов ham_condition_handle() и последующее использование дескриптора, возвращенного в таком вызове, как ham_action_restart(), полностью асинхронны. Следовательно, действие/условие/объект может более не существовать к тому моменту, когда дескриптор будет использоваться для присоединения действий. |
В таком случае функции ham_action*() вернут ошибку (ENOENT
), сообщающую, что условие не существует в данном объекте.
ham_action_execute(), ham_action_handle(), ham_action_handle_free(), ham_action_notify_pulse(), ham_action_notify_signal(), ham_action_remove(), ham_action_restart(), ham_action_waitfor(), ham_condition_handle_free(), ham_entity_handle(), ham_entity_handle_free()
Предыдущий раздел: Менеджер высокой готовности (HAM)