Посещение объектов, указанных идентификатором объекта
[status,opdata_out] = H5O.visit(obj_id,index_type,order,iter_func,opdata_in)
[status,opdata_out] = H5O.visit(obj_id,index_type,order,iter_func,opdata_in) является рекурсивной функцией итерации для посещения объекта object_id и, если object_id - группа, все объекты в ней и под ней в файле HDF5. Это обеспечивает механизм выполнения приложением общего набора операций по всем этим объектам или динамически выбранному подмножеству.
Если object_id является идентификатором группы, эта группа служит корнем рекурсивной итерации. Если object_id является идентификатором файла, корневая группа этого файла служит корнем рекурсивной итерации. Если object_id является любым другим типом объекта, например набором данных или именованным типом данных, итерация отсутствует.
Для установления итерации используются два параметра: index_type и order. index_type параметр определяет используемый индекс. Если связи в группе не были проиндексированы по типу индекса, они сначала сортируются по этому индексу, а затем начинается итерация. Если связи были проиндексированы, шаг сортировки не нужен, поэтому итерация может начаться быстрее. Определить index_type как один из этих векторов символов или строковых скаляров.
'H5_INDEX_NAME' | Буквенно-числовой индекс для имени |
'H5_INDEX_CRT_ORDER' | Индекс по порядку создания |
Обратите внимание, что тип индекса передан index_type это наилучшая настройка усилий. Если приложение передает значение, указывающее итерацию в порядке создания, и обнаруживается группа, которая не отслеживалась в порядке создания, эта группа будет итерируется в алфавитно-числовом порядке по имени или порядку имен. (Порядок имен - это собственный порядок, используемый библиотекой HDF5 и всегда доступный.) order определяет порядок проверки объектов по индексу, указанному в index_type. Определить order как один из этих векторов символов или строковых скаляров.
'H5_ITER_INC' | Увеличение порядка |
'H5_ITER_DEC' | Порядок убывания |
'H5_ITER_NATIVE' | Самый быстрый доступный заказ |
Функция обратного вызова iter_func должна иметь следующую подпись:
function [status,opdata_out] = iter_func(group_id,name,opdata_in)
opdata_in является пользовательским значением или структурой и передается на первый шаг итерации в iter_func opdata_in параметр. opdata_out этапа итерации формирует opdata_in для следующего шага итерации. Финал opdata_out в конце итерации возвращается вызывающему абоненту как opdata_out.
status значение, возвращенное iter_func интерпретируется следующим образом.
| ноль | Продолжение итерации или возврат нулевого значения состояния вызывающему абоненту, если все элементы обработаны |
| положительный | Останавливает итерацию и возвращает вызывающей стороне положительное значение состояния |
| отрицательный | Останавливает итерацию и выдает ошибку, указывающую на сбой |