9 using Dims = std::vector<hsize_t>;
18 hid_t
id() const noexcept {
return h_.
get(); }
24 hssize_t n = H5Sget_simple_extent_npoints(
h_.
get());
25 throw_if_negative(
static_cast<herr_t
>(n < 0 ? -1 : 0),
"H5Sget_simple_extent_npoints failed");
32 const int rank = H5Sget_simple_extent_ndims(
h_.
get());
33 throw_if_negative(
static_cast<herr_t
>(rank < 0 ? -1 : 0),
"H5Sget_simple_extent_ndims failed");
34 Dims out(
static_cast<std::size_t
>(rank));
36 "H5Sget_simple_extent_dims failed");
45 H5Sselect_hyperslab(
h_.
get(), H5S_SELECT_SET, offset.data(),
nullptr, count.data(),
nullptr),
46 "H5Sselect_hyperslab failed");
51 hid_t s = H5Screate(H5S_SCALAR);
58 hid_t s = H5Screate_simple(
static_cast<int>(dims.size()), dims.data(),
nullptr);
67 Dims maxdims(dims.size(), H5S_UNLIMITED);
68 hid_t s = H5Screate_simple(
static_cast<int>(dims.size()), dims.data(), maxdims.data());
Definition dataspace.hh:12
static Dataspace scalar()
Definition dataspace.hh:49
Dataspace(Handle h)
Definition dataspace.hh:74
bool valid() const noexcept
Definition dataspace.hh:19
static Dataspace simple_unlimited(const Dims &dims)
Definition dataspace.hh:65
hssize_t size() const
Number of elements (product of all extents). For a scalar space this is 1.
Definition dataspace.hh:22
static Dataspace simple(const Dims &dims)
Definition dataspace.hh:56
hid_t id() const noexcept
Definition dataspace.hh:18
void select_hyperslab(const Dims &offset, const Dims &count)
Definition dataspace.hh:42
Dims extents() const
Current extents.
Definition dataspace.hh:30
Handle h_
Definition dataspace.hh:75
Dataspace(hid_t id)
Definition dataspace.hh:15
static Dataspace take(hid_t id)
Definition dataspace.hh:16
bool valid() const noexcept
Definition handle.hh:80
hid_t get() const noexcept
Definition handle.hh:79
static Handle take(hid_t id)
Definition handle.hh:37
std::vector< hsize_t > Dims
Definition dataspace.hh:9
void throw_if_negative(hid_t id, const char *what)
Definition handle.hh:11