Such macros are provided to facilitate application compatibility. Their use and mappings are fully described in API Compatibility Macros in HDF5; we urge you to read that document closely.
In HDF5 versions 1.12 and after, H5O_GET_INFO is mapped to H5O_GET_INFO3 and H5O_GET_INFO1 is deprecated. In version 1.10 H5O_GET_INFO is identical to H5O_GET_INFO1.
If using 1.10 (1.10.3+) and encountering performance issues, please use H5O_GET_INFO2 to limit the fields retrieved, which can help with performance.
Specific compile-time compatibility flags and the resulting mappings are as follows:
No compatibility flag
H5O_GET_INFO3 (in release 1.12)
H5O_GET_INFO1 (in 1.8 or 1.10)
Emulate Release 1.12
Emulate Release 1.10/1.8 interface
If you are iterating through a lot of different objects to retrieve information via the H5O_GET_INFO family of routines, you may see memory building up. This can be due to memory allocation for metadata such as object headers and messages when the iterated objects are put into the metadata cache.
If the memory buildup is not desirable, you can configure a smaller cache via H5F_SET_MDC_CONFIG or set the file access property list via H5P_SET_MDC_CONFIG. A smaller sized cache will force metadata entries to be evicted from the cache, thus freeing the memory associated with the entries.
The macro H5O_GET_INFO and the function H5O_GET_INFO3 were added, and H5O_GET_INFO1 was deprecated.
The macro H5O_GET_INFO was removed. The functions H5O_GET_INFO1 and H5O_GET_INFOare identical in this release. This change was added to restore the broken API compatibility introduced in HDF5-1.10.3.
The function H5O_GET_INFO was renamed H5O_GET_INFO1. The macro H5O_GET_INFO and the function H5O_GET_INFO2 were introduced in this release.
Added a note about the valid values for theversionfield in theH5O_hdr_info_tstructure.
Fortran subroutine introduced in this release.
AddedH5O_type_tstructure to the Description section. SeparatedH5O_hdr_info_tstructure fromH5O_info_tin the Description section. Clarified the definition and implementation of the time fields.