Last modified: 7 January 2011
Name: H5Pset_libver_bounds
Signature:
herr_t H5Pset_libver_bounds( hid_t fapl_id, H5F_libver_t libver_low, H5F_libver_t libver_high )

Purpose:
Sets bounds on library versions, and indirectly format versions, to be used when creating objects.

Description:
H5Pset_libver_bounds controls the versions of the object formats that will be used when creating objects in a file. The object format versions are determined indirectly from the HDF5 Library versions specified in the call.

This property is set in the file access property list specified by fapl_id.

When bounds have been set through an H5Pset_libver_bounds call, a function that creates an object will fail if the object cannot be created within the boundaries set in libver_low and libver_high.

Parameters:
hid_t fapl_id IN: File access property list identifier
H5F_libver_t libver_low IN: The earliest version of the library that will be used for writing objects, indirectly specifying the earliest object format version that can be used when creating objects in the file.

Valid values of libver_low are as follows:
     H5F_LIBVER_EARLIEST   (Default)
  H5F_LIBVER_18
  H5F_LIBVER_LATEST

Setting libver_low to H5F_LIBVER_EARLIEST will result in objects being created using the earliest possible format for each object. Note that earliest possible is different from earliest, as some features introduced in library versions later than 1.0.0 resulted in updates to object formats. With libver_low=H5F_LIBVER_EARLIEST, if the application creates an object that requires a feature introduced in library versions later than 1.0.0, the earliest possible version that supports the requested feature will be used.

Setting libver_low to H5F_LIBVER_LATEST will result in objects being created using the latest available format for each object. This setting means that objects will be created with the latest format versions available (within the range of library versions specified in the call), and can take advantage of the latest features and performance enhancements. Objects written with the H5F_LIBVER_LATEST setting for libver_low may be accessible to a smaller range of library versions than would be the case if the H5F_LIBVER_EARLIEST value had been used.

Setting libver_low to the intermediate value H5F_LIBVER_18 specifies that created or modifed objects must be readable by the HDF5 Release 1.8 series but do not need to be readable by earlier versions.

H5F_libver_t libver_high     IN: The latest version of the library that will be used for writing objects, indirectly specifying the latest object format version that can be used when creating objects in the file.

Valid values of libver_high are as follows:
     H5F_LIBVER_18
  H5F_LIBVER_LATEST   (Default)

H5F_LIBVER_18 specifies that objects may be created in a format used by releases up to and including the HDF5 Release 1.8 series. Object formats introduced in later releases may not be used.

H5F_LIBVER_LATEST specifies that objects may be created in the latest format available; there is no requirement that earlier versions of the HDF5 library be able to read all objects in the file.

Returns:
Returns a non-negative value if successful; otherwise returns a negative value.

Fortran90 Interface: h5pset_libver_bounds_f
SUBROUTINE h5pset_libver_bounds_f(fapl_id, low, high, hdferr)
  IMPLICIT NONE
  INTEGER(HID_T), INTENT(IN) :: fapl_id ! File access property list identifier
  INTEGER, INTENT(IN) :: low ! The earliest version of the library that 
                             ! will be used for writing objects.
                             ! Currently, low must be either:
                             !        H5F_LIBVER_EARLIEST_F
                             !        H5F_LIBVER_LATEST_F
    INTEGER, INTENT(IN) :: high 
                             ! The latest version of the library that will be 
                             ! used for writing objects.
                             ! Currently, high must set to:
                             !            H5F_LIBVER_LATEST_F
    INTEGER, INTENT(OUT) :: hdferr
                             ! Error code
                             ! 0 on success and -1 on failure
END SUBROUTINE h5pset_libver_bounds_f  
    

History:
Release     C
1.8.0 Function introduced in this release.
1.8.6 H5F_LIBVER_18 version boundary setting added in this release.