H5P_ITERATE iterates over the properties in the property object specified in id , which may be either a property list or a property class, performing a specified operation on each property in turn. For each property in the object, iter_func and the additional information specified below are passed to the H5P_iterate_t operator function. The iteration begins with the idx -th property in the object; the next element to be processed by the operator is returned in idx . If idx is NULL, the iterator starts at the first property; 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. The prototype for the H5P_iterate_t operator is as follows: typedef herr_t (*H5P_iterate_t)( hid_t id, const char *name, void *iter_data )
The operation receives the property list or class identifier for the object being iterated over, id , the name of the current property within the object, name , and the pointer to the operator data passed in to H5P_ITERATE, iter_data . The valid return values from an operator are as follows: Zero | Causes the iterator to continue, returning zero when all properties have been processed | Positive | Causes the iterator to immediately return that positive value, indicating short-circuit success. The iterator can be restarted at the index of the next property | Negative | Causes the iterator to immediately return that value, indicating failure. The iterator can be restarted at the index of the next property |
H5P_ITERATE assumes that the properties in the object identified by id remain unchanged through the iteration. If the membership changes during the iteration, the function's behavior is undefined. |