H5D_ITERATE iterates over all the data elements in the memory buffer
buf, executing the callback function
operator once for each such data element.
The protoype of the callback function
operator is as follows (as defined in the source code file
herr_t (*H5D_operator_t)(void elem, hid_t type_id, unsigned ndim,
const hsize_t *point, void *operator_data)
The parameters of this callback function have the following values or meanings:
|IN/OUT: Pointer to the memory buffer containing the current data element|
|IN: Datatype identifier for the elements stored in |
|IN: Number of dimensions for the |
const hsize_t *point
|IN: Array containing the location of the element within the original dataspace|
|IN/OUT: Pointer to any user-defined data associated with the operation|
The possible return values from the callback function, and the effect ofeach,are as follows:
- Zero causes the iterator to continue, returning zero when all data elements have been processed.
- A positive value causes the iterator to immediately return that positive value, indicating short-circuit success.
- A negative value causes the iterator to immediately return that value, indicating failure.
operator_data parameter is a user-defined pointer to the data required to process dataset elements in the course of the iteration. If
operator needs to pass data back to the application, such data can be returned in this same buffer. This pointer is passed back to each step of the iteration in the
operator callback function’s
Unlike other HDF5 iterators, this iteration operation cannot be restarted at the point of exit; a second H5D_ITERATE call will always restart at the beginning.