Version 1.8.5
Highlights
- New function h5pp::File::setKeepFileOpened() and h5pp::File::setKeepFileClosed() to keep h5pp from closing the file between operations. This can greatly improve throughput of batch operations.
- Better handling of hyperslabs (i.e. read/write subset of datasets)
- New examples describing hyperslab usage
- New functions .writeHyperslab() and .readHyperslab()
- Speed-ups from skipped logging and re-use of expensive HDF5 identifiers
- Many changes in naming convention both internal and public-facing to be more consistent and self-explanatory
- More efficient scanning of types, in particular when reusing metadata.
- Faster search for datasets/groups in file
Changelog
Changes that affect users are in bold:
ae403b8 Updated bundled FindHDF5.cmake to support CMake 3.19+
ccda1d5 Clearer error message on failure to append to dataset
939181e Updated resizing of datasets and data buffers to account for hyperslab selections
06c1ffc Reorganized routine for selection of hyperslabs and added h5pp::File::readHyperslab and h5pp::File::writeHyperslab functions interact with parts of datasets
c3b126a Properly delete constructors in OptDimsType and DimsType to avoid ambiguity
e948625 Deleted some constructors in h5pp::Hyperslab to avoid ambiguities
2c4b172 Renamed ResizeMode --> ResizePolicy
49c7734 Added examples showing usage of hyperslabs
f324a7c static_cast away compiler warning for implicit conversion
a373e73 Replaced usage of strnlen and strncpy with the constructor of string_view
578e091 Added MSVC /EHsc compiler flag to avoid warning
79c2e33 Removed unnecessary include
421c15c Fixed printing of complex range in fmt 7.1.2
c90a593 Improved handling of hyperslab selection
09f2051 Make sure not to shrink a dataset to fit data when writing data to a hyperslab selection on dataset
c27a065 Updated static_assert function names
32ee358 Fixed local fileHandle shadowing optional h5pp::File::fileHandle variable
3ce8722 Set default H5F_CLOSE_STRONG as in h5py
7712675 Faster iterator when finding links in a group
fb45a26 Speedup by avoiding string composition for logging when not needed
d594ae2 A table's parent group has to be checked for existence and created every time
ce1ba28 More thorough check for table existence before creating
a81367b Use [[nodiscard]] to make sure optional parameters have been set
afba3af Check that optional h5type is defined before using
cdf92d9 Use the faster attribute link check whenever possible
f96cb80 Allow population or creation of new info objets
27e664f Only set info members if they are not not defined yet
22dc86f Assign optionals instead of moving
69e1252 Changed name h5pp::hdf5::checkIfAttributeExists --> h5pp::hdf5::checkIfAttrExists
3245b05 Stopped using short-circuit pattern when checking for existence of links
182a90a Scan missing metadata efficiently when using Info objects directly
36166a4 Allow to keep file open in const contexts
b514202 Added feature h5pp::File::setKeepFileOpened() and h5pp::File::setKeepFileClosed() to avoid expensive operations opening and closing the file handle e.g. when doing batch operations in for loops
99112ff Add createTable(TableInfo) to follow the convention on other create___ functions
cf9c8b7 No need to assert options when scanning attribute metadata
eb39897 Return the AttrInfo object when writing attributes
c98ef30 Select appropriate scan function in createDataset
d11c9c9 Select appropriate scan function in writeDataset
5934a75 Rename h5pp::scan::makeDsetInfo --> h5pp::scan::makeDsetInfo to clarify intent
6b4646a Rename h5pp::scan::makeAttrInfo --> h5pp::scan::makeAttrInfo to clarify intent
db97ed2 Rename h5pp::scan::getTableInfo --> h5pp::scan::makeTableInfo to clarify intent
c30d105 Rename h5pp::scan::fillTableInfo --> h5pp::scan::readTableInfo to clarify intent
8bd0c50 New function infers attribute info based entirely on given options
ca84694 Rename h5pp::scan::fillDataInfo --> h5pp::scan::scanDataInfo to clarify intent
eee3dc5 Rename h5pp::scan::getDsetInfo --> h5pp::scan::inferDsetInfo to clarify intent
742ee41 Rename h5pp::scan::getDsetInfo --> h5pp::scan::inferDsetInfo to clarify intent
75623aa Rename h5pp::scan::fillAttrInfo --> h5pp::scan::readAttrInfo to clarify intent
99835a5 Rename h5pp::scan::fillDsetInfo --> h5pp::scan::readDsetInfo to clarify intent
ab84d77 swapped function signature of fillDataInfo to follow convention
619edb7 Improved handling of options when populating metadata
9584baa Renamed some TableInfo members to follow convention on other Info structs
3e0d847 Rename TableInfo::getTableLocId() -> TableInfo::getLocId()
8f440da Permit passing options for interpreting data
c9c034d Use path from either info or option to maximize chances of populating metadata
333594e Renamed some TableInfo members to follow convention on other Info structs
f37e99b Improved handling of AttrInfo
5893ec3 Improved handling of location ID