Program Listing for File HDF5Utils.hpp
↰ Return to documentation for file (src/utils/HDF5Utils.hpp)
#ifndef HDF5UTILS_HPP
#define HDF5UTILS_HPP
// Suppress clang-tidy warnings caused by just including hdf5.h, instead of
// the individual HDF5 headers, since this is the paradigm that HDF5 wants
// NOLINTBEGIN(misc-include-cleaner)
#include "hdf5.h"
#include <array>
#include <cstddef>
#include <optional>
#include <string>
#include <utility>
#include <vector>
namespace utils
{
auto readScalarAttrIfPresent(hid_t obj, const std::string& name) -> std::optional<double>;
auto readRequiredScalarAttr(hid_t obj, const std::string& name,
const std::string& context) -> double;
auto readDataset1D(hid_t grp, const std::string& name,
const std::string& context) -> std::vector<double>;
auto datasetRank(hid_t grp, const std::string& name, const std::string& context) -> int;
auto dataset2DShape(hid_t grp, const std::string& name,
const std::string& context) -> std::pair<size_t, size_t>;
auto readDataset2D(hid_t grp, const std::string& name, const std::string& context)
-> std::pair<std::vector<double>, std::pair<size_t, size_t>>;
auto readStringDataset1D(hid_t grp, const std::string& name,
const std::string& context) -> std::vector<std::string>;
auto readDataset3D(hid_t grp, const std::string& name, const std::string& context)
-> std::pair<std::vector<double>, std::array<hsize_t, 3>>;
auto readFieldNames(hid_t grp, const std::string& context) -> std::vector<std::string>;
auto listGroupDatasetNames(hid_t grp) -> std::vector<std::string>;
auto vlenStrType() -> hid_t;
auto fixedStrType(size_t size) -> hid_t;
void writeStringAttr(hid_t loc, const std::string& name, const std::string& value);
void writeULongAttr(hid_t loc, const std::string& name, unsigned long value);
void writeBoolAttr(hid_t loc, const std::string& name, bool value);
auto readULongAttr(hid_t loc, const std::string& name) -> unsigned long;
void overwriteULongAttr(hid_t loc, const std::string& name, unsigned long value);
void writeStringDataset(hid_t loc, const std::string& name, const std::string& value);
void writeStringArrayAttr(hid_t loc, const std::string& name,
const std::vector<std::string>& values);
auto createExtensible1dDataset(hid_t loc, const std::string& name, hid_t type) -> hid_t;
auto createExtensible2dDataset(hid_t loc, const std::string& name, hid_t type,
hsize_t nCols) -> hid_t;
void writeFixed1dDataset(hid_t loc, const std::string& name, hid_t type,
const void* data, hsize_t len, const std::string& units);
void appendToDataset(hid_t loc, const std::string& name, hid_t memType, const void* value);
void appendRowToDataset2d(hid_t loc, const std::string& name, hid_t memType,
const void* rowData);
auto childNameByIdx(hid_t loc, hsize_t idx) -> std::string;
auto isExtensibleDataset(hid_t dset) -> bool;
void appendDatasetContents(hid_t srcDset, hid_t dstDset);
void appendFileContents(hid_t srcFile, hid_t dstFile);
} // namespace utils
// NOLINTEND(misc-include-cleaner)
#endif // HDF5UTILS_HPP