Выполнение функции для атрибутов, присоединенных к объекту
[status,idx_stop,cdata_out] = H5A.iterate(obj_id,idx_type,order,idx_start,iter_func,cdata_in)
H5A.iterate(loc_id,attr_idx,iterator_func)
[status,idx_stop,cdata_out] = H5A.iterate(obj_id,idx_type,order,idx_start,iter_func,cdata_in) выполняет указанную функцию iter_func для каждого атрибута, связанного с объектом. obj_id определяет объект, к которому присоединены атрибуты. idx_type является типом индекса, и допустимые значения включают следующее.
'H5_INDEX_NAME' | Буквенно-числовой индекс по имени атрибута |
'H5_INDEX_CRT_ORDER' | Индекс по порядку создания |
order задает порядок прохождения индекса. Допустимые значения:
'H5_ITER_INC' | Итерация от начала до конца |
'H5_ITER_DEC' | Итерация от конца до начала |
'H5_ITER_NATIVE' | Итерация в самом быстром доступном порядке |
idx_start указывает начальную точку итерации. idx_stop возвращает точку, в которой была остановлена итерация. Это позволяет возобновить прерванную итерацию.
функция обратного вызова, iter_func, должна иметь следующую подпись:
[status,cdata_out] = iter_func(obj_id,attr_name,info,cdata_in)
cdata_in является пользовательским значением или структурой и передается на первый шаг итерации в iter_func cdata_in параметр. cdata_out этапа итерации формирует cdata_in для следующего шага итерации. Затем, финал cdata_out в конце итерации возвращается вызывающей стороне как cdata_out. Эта форма H5A.iterate соответствует H5Aiterate2 функция в API HDF5 C.
status значение, возвращенное iter_func интерпретируется следующим образом.
| ноль | Продолжение итерации или возврат нулевого значения состояния вызывающему абоненту, если все элементы обработаны |
| положительный | Останавливает итерацию и возвращает вызывающей стороне положительное значение состояния |
| отрицательный | Останавливает итерацию и выдает ошибку, указывающую на сбой |
H5A.iterate(loc_id,attr_idx,iterator_func) выполняет указанную функцию для каждого атрибута группы, набора данных или именованного типа данных, указанного в loc_id. attr_idx аргумент указывает, с чего начинается итерация. iterator_func должен быть дескриптором функции.
Функция итератора должна иметь следующую подпись:
status = iterator_func(loc_id,attr_name)
loc_id по-прежнему указывает группу, набор данных или именованный тип данных, передаваемый в H5A.iterate, и attr_name указывает текущий атрибут. Эта форма H5A.iterate соответствует H5Aiterate1 функция в API HDF5 C.