ritsuko
Helper utilities for ArtifactDB C++ code
Loading...
Searching...
No Matches
get_dimensions.hpp
Go to the documentation of this file.
1#ifndef RITSUKO_HDF5_GET_DIMENSIONS_HPP
2#define RITSUKO_HDF5_GET_DIMENSIONS_HPP
3
4#include "H5Cpp.h"
5#include <stdexcept>
6
12namespace ritsuko {
13
14namespace hdf5 {
15
25inline std::vector<hsize_t> get_dimensions(const H5::DataSpace& space, bool allow_scalar) {
26 int ndims = space.getSimpleExtentNdims();
27 std::vector<hsize_t> dimensions(ndims);
28 if (ndims != 0) {
29 space.getSimpleExtentDims(dimensions.data());
30 } else if (!allow_scalar) {
31 throw std::runtime_error("expected an N-dimensional dataset, got a scalar instead");
32 }
33 return dimensions;
34}
35
44inline std::vector<hsize_t> get_dimensions(const H5::DataSet& handle, bool allow_scalar) {
45 return get_dimensions(handle.getSpace(), allow_scalar);
46}
47
56inline std::vector<hsize_t> get_dimensions(const H5::Attribute& handle, bool allow_scalar) {
57 return get_dimensions(handle.getSpace(), allow_scalar);
58}
59
60
61}
62
63}
64
65#endif
std::vector< hsize_t > get_dimensions(const H5::DataSpace &space, bool allow_scalar)
Definition get_dimensions.hpp:25
Assorted helper functions for parsing and validation.
Definition choose_missing_placeholder.hpp:15