21 hid_t
id() const noexcept {
return h_.
get(); }
26 hid_t t = H5Dget_type(
h_.
get());
33 hid_t s = H5Dget_space(
h_.
get());
48 requires(!std::is_same_v<std::decay_t<T>, std::string>)
53 "H5Dwrite (scalar) failed");
60 requires(!std::is_same_v<std::decay_t<T>, std::string>)
64 file_space.select_hyperslab({offset}, {1});
66 hid_t mem_space = H5Screate_simple(1, &one,
nullptr);
69 herr_t e = H5Dwrite(
h_.
get(), type.id(), mem_space, file_space.id(), H5P_DEFAULT, &value);
75 void write_at(hsize_t offset,
const std::string &value)
78 file_space.select_hyperslab({offset}, {1});
80 hid_t mem_space = H5Screate_simple(1, &one,
nullptr);
83 const char *cstr = value.c_str();
84 herr_t e = H5Dwrite(
h_.
get(), type.id(), mem_space, file_space.id(), H5P_DEFAULT, &cstr);
90 void write(
const std::string &value)
93 const char *cstr = value.c_str();
95 "H5Dwrite (string scalar) failed");
100 requires(!std::is_same_v<std::decay_t<T>, std::string>)
103 write(v.data(), v.size());
107 void write(
const std::vector<std::string> &v)
112 "H5Dwrite (vector<string>) failed");
119 requires(!std::is_same_v<std::decay_t<T>, std::string>)
120 void write(
const T *data, std::size_t )
124 "H5Dwrite (raw pointer) failed");
130 requires(!std::is_same_v<std::decay_t<T>, std::string>)
135 "H5Dread (scalar) failed");
145 requires(!std::is_same_v<std::decay_t<T>, std::string>)
148 read(v.data(), v.size());
151 void read(std::vector<std::string> &v)
158 requires(!std::is_same_v<std::decay_t<T>, std::string>)
159 void read(T *data, std::size_t )
163 "H5Dread (raw pointer) failed");
void read(std::vector< T > &v)
Definition dataset.hh:146
void read(std::vector< std::string > &v)
Definition dataset.hh:151
void read(T *data, std::size_t)
Definition dataset.hh:159
static Dataset take(hid_t id)
Definition dataset.hh:19
void read(T &value)
Definition dataset.hh:131
void write(const T *data, std::size_t)
Definition dataset.hh:120
Handle h_
Definition dataset.hh:168
Dataspace dataspace() const
Definition dataset.hh:31
void resize(const Dims &dims)
Definition dataset.hh:38
void write(const T &value)
Definition dataset.hh:49
hid_t id() const noexcept
Definition dataset.hh:21
Dataset(Handle h)
Definition dataset.hh:167
bool valid() const noexcept
Definition dataset.hh:22
void write(const std::string &value)
Whole-dataset write of a single string.
Definition dataset.hh:90
void read(std::string &value)
Definition dataset.hh:138
void write_at(hsize_t offset, const T &value)
Definition dataset.hh:61
void write_at(hsize_t offset, const std::string &value)
Variable-length string write into a 1-element selection.
Definition dataset.hh:75
Datatype datatype() const
Definition dataset.hh:24
Dataset(hid_t id)
Definition dataset.hh:18
void write(const std::vector< std::string > &v)
Vector of strings.
Definition dataset.hh:107
void write(const std::vector< T > &v)
Vector write — element count must match the dataset's element count.
Definition dataset.hh:101
Definition dataspace.hh:12
static Dataspace take(hid_t id)
Definition dataspace.hh:16
Definition datatype.hh:12
static Datatype take(hid_t id)
Definition datatype.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< const char * > pack_strings(const std::string *src, std::size_t n)
Definition vlen_string.hh:14
void read_vlen_strings(hid_t dset, hid_t, hid_t, hid_t mem_type, std::string *dst, std::size_t n)
Definition vlen_string.hh:27
std::vector< hsize_t > Dims
Definition dataspace.hh:9
Datatype type_of()
Convenience factory — type_of<T>() returns the HDF5 datatype for T.
Definition datatype.hh:56
void throw_if_negative(hid_t id, const char *what)
Definition handle.hh:11