1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
#ifndef RITSUKO_HDF5_STRINGS_HPP
#define RITSUKO_HDF5_STRINGS_HPP
#include "H5Cpp.h"
namespace ritsuko {
namespace hdf5 {
inline size_t find_string_length(const char* ptr, size_t max) {
size_t j = 0;
for (; j < max && ptr[j] != '\0'; ++j) {}
return j;
}
struct VariableStringCleaner {
VariableStringCleaner(hid_t did, hid_t mid, char** buffer) : did(did), mid(mid), buffer(buffer) {}
~VariableStringCleaner() {
H5Dvlen_reclaim(did, mid, H5P_DEFAULT, buffer);
}
hid_t did, mid;
char** buffer;
};
}
}
#endif
|