ritsuko
Helper utilities for ArtifactDB C++ code
Loading...
Searching...
No Matches
ReclaimVlsMemory.hpp
Go to the documentation of this file.
1#ifndef RITSUKO_HDF5_RECLAIM_VLS_MEMORY_HPP
2#define RITSUKO_HDF5_RECLAIM_VLS_MEMORY_HPP
3
4#include <type_traits>
5
6#include "H5Cpp.h"
7
13namespace ritsuko {
14
15namespace hdf5 {
16
31template<
32 class DataTypePointer_ = H5::DataType*,
33 class DataSpacePointer_ = H5::DataSpace*,
34 class DSetMemXferPropListPointer_ = H5::DSetMemXferPropList*
35>
37public:
48 DataTypePointer_ type_ptr,
49 DataSpacePointer_ space_ptr,
50 DSetMemXferPropListPointer_ plist_ptr,
51 char** buffer
52 ) :
53 my_type_ptr(std::move(type_ptr)),
54 my_space_ptr(std::move(space_ptr)),
55 my_plist_ptr(std::move(plist_ptr)),
56 my_buffer(buffer)
57 {}
58
63 H5Dvlen_reclaim(my_type_ptr->getId(), my_space_ptr->getId(), my_plist_ptr->getId(), my_buffer);
64 }
69private:
70 DataTypePointer_ my_type_ptr;
71 DataSpacePointer_ my_space_ptr;
72 DSetMemXferPropListPointer_ my_plist_ptr;
73 char** my_buffer;
74
75 static_assert(std::is_base_of<H5::DataType, I<decltype(*my_type_ptr)> >::value);
76 static_assert(std::is_base_of<H5::DataSpace, I<decltype(*my_space_ptr)> >::value);
77 static_assert(std::is_base_of<H5::DSetMemXferPropList, I<decltype(*my_plist_ptr)> >::value);
78};
79
80}
81
82}
83
84#endif
Reclaim memory for HDF5's variable length strings.
Definition ReclaimVlsMemory.hpp:36
ReclaimVlsMemory(DataTypePointer_ type_ptr, DataSpacePointer_ space_ptr, DSetMemXferPropListPointer_ plist_ptr, char **buffer)
Definition ReclaimVlsMemory.hpp:47
Helper functions for ArtifactDB parsing and validation.
Definition Pointer.hpp:21