summaryrefslogtreecommitdiffstats
path: root/doxygen/dox/cookbook/Accessibility.dox
blob: f10028367e0362f86b563e8e79e4f32c2395cc5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/** \page Accessibility

\section Accessibility

\subsection CB_MaintainCompat Maintaining Compatibility with other HDF5 Library Versions

\par Problem
You want to ensure that the HDF5 files you produce or modify are accessible by all
releavnt tools and applications

\par Solution
For HDF5 items (objects, attributes, etc.) that you would like to
create in new or existing HDF5 files, ascertain the supported range of HDF5
library versions as lower and upper bounds. When creating new or opening
existing HDF5 files, use a file access property list and configure the supported
range via the H5Pset_libver_bounds() function.\n
In the example below, we restrict HDF5 item creation to the HDF5 1.8.x family of
library versions.
\snippet{lineno} Accessibility.c set_libver_bounds

\par Discussion
See RFC \ref_rfc20160105 for a detailed and comprehensive account of HDF5
versioning (library, file format spec., etc.) and the H5Pset_libver_bounds()
function.\n
The default range #H5F_LIBVER_EARLIEST (low) - #H5F_LIBVER_LATEST (high) offers the
widest compatibility range, but may not be suitable for certain (feature-)use
cases.\n
The HDF5 library comes with a \Emph{forward-} and \Emph{backward-compatibility}
guarantee: This means that the latest version of the library can always read
HDF5 files created by a version realesed earlier (backward compatibility).
It also means that a given release of the library can read the contents of
HDF5 files created with later versions of the library as long as the files
do not contain features introduced in later versions (forward compatibility).

\par See Also
See the recipe \ref CB_LargeAttributes for an example where we use HDF5
compatibility settings to enable the creation of large HDF5 attributes.

*/