ham_detach_name(), ham_detach_name_node()

Отсоединить объект от HAM, используя имя объекта

Прототип:

#include <ha/ham.h>
int ham_detach_name( int nd,
const char *ename,
unsigned flags );
int ham_detach_name_node( const char *nodename,
const char *ename,
unsigned flags );

Аргументы:

nd
Идентификатор удаленного узла, на котором работает целевой объект.
nodename
Удаленный HAM, на котором работает целевой объект.
ename
Имя отсоединяемого объекта.
flags
Флаги в настоящий момент не поддерживаются.

Библиотека:

libham

Описание:

Данные функции отсоединяют присоединенный объект (ename) от HAM. Отсоединяемый объект НЕ должен быть самостоятельно присоединяемым объектом.

nd указывает идентификатор удаленного узла, на котором работает целевой объект, во время выполнения вызова.


Note: Поскольку идентификаторы узлов являются временными объектами, необходимо получить значение для nd непосредственно перед вызовом, используя netmgr_strtond() или другую функцию, которая преобразует nodename в идентификаторы узлов.

Используйте ham_detach_name_node(), когда nodename используется для указания удаленного HAM вместо идентификатора узла (nd).

Данная функция автоматически вызывает ham_connect() и ham_disconnect() для клиента.

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

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

Коды ошибок:

EBADF
Не удалось подключиться к HAM.
EINVAL
Некорректное имя.
ENOENT
Отсутствует объект с заданным именем.

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

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

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

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

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

ham_attach(), ham_attach_self(), ham_connect(), ham_detach(), ham_detach_self(), ham_disconnect()




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