H5G_ITERATE iterates over the members of
name in the file or group specified with
loc_id. For each object in the group, the
operator_data and some additional information, specified below, are passed to the
operator function. The iteration begins with the
idx object in the group and the next element to be processed by the operator is returned in
idx is NULL, then the iterator starts at the first group member; since no stopping point is returned in this case, the iterator cannot be restarted if one of the calls to its operator returns non-zero. H5G_ITERATE does not recursively follow links into subgroups of the specified group.
The prototype for
typedef herr_t (*
group_id, const char *
member_name, void *
The operation receives the group identifier for the group being iterated over,
group_id, the name of the current object within the group,
member_name, and the pointer to the operator data passed in to H5G_ITERATE,
The return values from an operator are:
- Zero causes the iterator to continue, returning zero when all group members have been processed.
- Positive causes the iterator to immediately return that positive value, indicating short-circuit success. The iterator can be restarted at the next group member.
- Negative causes the iterator to immediately return that value, indicating failure. The iterator can be restarted at the next group member.
H5G_ITERATE assumes that the membership of the group identified by
name remains unchanged through the iteration. If the membership changes during the iteration, the function's behavior is undefined.
H5G_ITERATE is not recursive. In particular, if a member of
name is found to be a group, call it
subgroup_a, H5G_ITERATE does not examine the members of
subgroup_a. When recursive iteration is required, the application must handle the recursion, explicitly calling H5G_ITERATE on discovered subgroups.