21#include "AbstractHdfProxy.h"
23#include <unordered_map>
51 DLL_IMPORT_OR_EXPORT
bool isOpened() const final {
return hdfFile != -1; }
55 COMMON_NS::AbstractObject::numericalDatatypeEnum getNumericalDatatype(const std::
string& groupName) final;
57 int getHdfDatatypeClassInDataset(const std::
string& datasetName) final;
59 void writeItemizedListOfList(const std::
string& groupName,
60 const std::
string& name,
61 COMMON_NS::AbstractObject::numericalDatatypeEnum cumulativeLengthDatatype,
62 const
void* cumulativeLength,
63 uint64_t cumulativeLengthSize,
64 COMMON_NS::AbstractObject::numericalDatatypeEnum elementsDatatype,
66 uint64_t elementsSize) final;
73 std::vector<uint32_t> getElementCountPerDimension(const std::
string & datasetName) final;
75 DLL_IMPORT_OR_EXPORT
void setCompressionLevel(
unsigned int newCompressionLevel) final {
76 compressionLevel = newCompressionLevel > 9 ? 9 : newCompressionLevel;
80 const std::string& name,
81 COMMON_NS::AbstractObject::numericalDatatypeEnum datatype,
83 const uint64_t* numValuesInEachDimension,
84 unsigned int numDimensions)
final;
87 const std::string& groupName,
88 const std::string& name,
89 COMMON_NS::AbstractObject::numericalDatatypeEnum datatype,
90 const uint64_t* numValuesInEachDimension,
91 unsigned int numDimensions
95 const std::string& groupName,
96 const std::string& name,
97 COMMON_NS::AbstractObject::numericalDatatypeEnum datatype,
99 const uint64_t* numValuesInEachDimension,
100 const uint64_t* offsetValuesInEachDimension,
101 unsigned int numDimensions
105 const std::vector<std::string>& attributeNames,
106 const std::vector<std::string>& values)
final;
109 const std::string& attributeName,
110 const std::vector<std::string>& values)
final;
113 const std::vector<std::string>& attributeNames,
114 const std::vector<double>& values)
final;
117 const std::vector<std::string>& attributeNames,
118 const std::vector<int>& values)
final;
121 const std::vector<std::string>& attributeNames,
122 const std::vector<std::string>& values)
final;
125 const std::string& attributeName,
126 const std::vector<std::string>& values)
final;
129 const std::vector<std::string>& attributeNames,
130 const std::vector<double>& values)
final;
133 const std::vector<std::string>& attributeNames,
134 const std::vector<int>& values)
final;
137 const std::string& attr_name)
const final;
140 const std::string& attr_name)
const final;
143 const std::string& attr_name)
const final;
146 const std::string& attr_name)
const final;
151 const std::string& datasetName,
153 uint64_t
const* numValuesInEachDimension,
154 uint64_t
const* offsetInEachDimension,
155 unsigned int numDimensions
159 const std::string& datasetName,
double* values,
160 uint64_t
const* blockCountPerDimension,
161 uint64_t
const* offsetInEachDimension,
162 uint64_t
const* strideInEachDimension,
163 uint64_t
const* blockSizeInEachDimension,
164 unsigned int numDimensions)
final;
167 const std::string& datasetName,
168 uint64_t
const* blockCountPerDimension,
169 uint64_t
const* offsetInEachDimension,
170 uint64_t
const* strideInEachDimension,
171 uint64_t
const* blockSizeInEachDimension,
172 unsigned int numDimensions,
175 hdf5_hid_t& filespace)
final;
179 hdf5_hid_t filespace,
181 uint64_t slabSize)
final;
186 const std::string& datasetName,
188 uint64_t
const* numValuesInEachDimension,
189 uint64_t
const* offsetInEachDimension,
190 unsigned int numDimensions
196 const std::string& datasetName,
198 uint64_t
const* numValuesInEachDimension,
199 uint64_t
const* offsetInEachDimension,
200 unsigned int numDimensions)
final;
207 const std::string& datasetName,
209 uint64_t
const* numValuesInEachDimension,
210 uint64_t
const* offsetInEachDimension,
211 unsigned int numDimensions
224 bool exist(
const std::string& absolutePathInHdfFile)
const final;
237 HdfProxy(gsoap_resqml2_0_1::_eml20__EpcExternalPartReference* fromGsoap) :
251 HdfProxy(
const std::string & packageDirAbsolutePath,
const std::string & externalFilePath, COMMON_NS::DataObjectRepository::openingMode hdfPermissionAccess = COMMON_NS::DataObjectRepository::openingMode::READ_ONLY);
262 void readArrayNdOfValues(
const std::string& datasetName,
void* values, hdf5_hid_t datatype);
282 void readArrayNdOfValues(
283 const std::string& datasetName,
285 uint64_t
const* numValuesInEachDimension,
286 uint64_t
const* offsetInEachDimension,
287 unsigned int numDimensions,
288 hdf5_hid_t datatype);
313 void readArrayNdOfValues(
314 const std::string& datasetName,
316 uint64_t
const* blockCountPerDimension,
317 uint64_t
const* offsetInEachDimension,
318 uint64_t
const* strideInEachDimension,
319 uint64_t
const* blockSizeInEachDimension,
320 unsigned int numDimensions,
321 hdf5_hid_t datatype);
336 void readArrayNdOfValues(
338 hdf5_hid_t filespace,
341 hdf5_hid_t datatype);
346 void writeUuidAttribute();
357 hdf5_hid_t openOrCreateGroup(
const std::string& groupName);
360 hdf5_hid_t hdfFile = -1;
363 unsigned int compressionLevel = 0;
366 std::unordered_map< std::string, hdf5_hid_t > openedGroups;
An abstract proxy for reading and writing values into an HDF5 file. It is possible to derive this cla...
Definition AbstractHdfProxy.h:37
A proxy for reading and writing values into an HDF5 file.
Definition HdfProxy.h:29
void readArrayNdOfIntValues(const std::string &datasetName, int *values, uint64_t const *numValuesInEachDimension, uint64_t const *offsetInEachDimension, unsigned int numDimensions) final
double readDoubleAttribute(const std::string &obj_name, const std::string &attr_name) const final
void readArrayNdOfDoubleValues(const std::string &datasetName, double *values) final
HdfProxy(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition HdfProxy.h:37
void writeGroupAttributes(const std::string &groupName, const std::vector< std::string > &attributeNames, const std::vector< int > &values) final
void writeDatasetAttribute(const std::string &datasetName, const std::string &attributeName, const std::vector< std::string > &values) final
void readArrayNdOfDoubleValues(const std::string &datasetName, double *values, uint64_t const *numValuesInEachDimension, uint64_t const *offsetInEachDimension, unsigned int numDimensions) final
void writeArrayNd(const std::string &groupName, const std::string &name, common ::AbstractObject::numericalDatatypeEnum datatype, const void *values, const uint64_t *numValuesInEachDimension, unsigned int numDimensions) final
void readArrayNdOfUIntValues(const std::string &datasetName, unsigned int *values) final
void readArrayNdOfInt64Values(const std::string &datasetName, int64_t *values) final
void readArrayNdOfUInt8Values(const std::string &datasetName, uint8_t *values) final
void writeDatasetAttributes(const std::string &datasetName, const std::vector< std::string > &attributeNames, const std::vector< double > &values) final
HdfProxy(const common ::DataObjectReference &dor)
Constructor.
Definition HdfProxy.h:44
std::vector< std::string > readStringArrayAttribute(const std::string &obj_name, const std::string &attr_name) const final
void writeGroupAttributes(const std::string &groupName, const std::vector< std::string > &attributeNames, const std::vector< double > &values) final
void readArrayNdOfInt8Values(const std::string &datasetName, int8_t *values) final
bool isOpened() const final
Definition HdfProxy.h:51
void readArrayNdOfDoubleValues(hdf5_hid_t dataset, hdf5_hid_t filespace, void *values, uint64_t slabSize) final
std::string readStringAttribute(const std::string &obj_name, const std::string &attr_name) const final
void readArrayNdOfDoubleValues(const std::string &datasetName, double *values, uint64_t const *blockCountPerDimension, uint64_t const *offsetInEachDimension, uint64_t const *strideInEachDimension, uint64_t const *blockSizeInEachDimension, unsigned int numDimensions) final
void readArrayNdOfUInt64Values(const std::string &datasetName, uint64_t *values) final
void createArrayNd(const std::string &groupName, const std::string &name, common ::AbstractObject::numericalDatatypeEnum datatype, const uint64_t *numValuesInEachDimension, unsigned int numDimensions) final
int64_t readInt64Attribute(const std::string &obj_name, const std::string &attr_name) const final
void readArrayNdOfFloatValues(const std::string &datasetName, float *values, uint64_t const *numValuesInEachDimension, uint64_t const *offsetInEachDimension, unsigned int numDimensions) final
virtual ~HdfProxy()
Definition HdfProxy.h:47
void readArrayNdOfFloatValues(const std::string &datasetName, float *values) final
void readArrayNdOfInt64Values(const std::string &datasetName, int64_t *values, uint64_t const *numValuesInEachDimension, uint64_t const *offsetInEachDimension, unsigned int numDimensions) final
void readArrayNdOfUShortValues(const std::string &datasetName, unsigned short *values) final
bool exist(const std::string &absolutePathInHdfFile) const final
void readArrayNdOfIntValues(const std::string &datasetName, int *values) final
void readArrayNdOfShortValues(const std::string &datasetName, short *values) final
std::vector< uint32_t > getElementCountPerChunkDimension(const std::string &datasetName) final
void writeArrayNdSlab(const std::string &groupName, const std::string &name, common ::AbstractObject::numericalDatatypeEnum datatype, const void *values, const uint64_t *numValuesInEachDimension, const uint64_t *offsetValuesInEachDimension, unsigned int numDimensions) final
bool isCompressed(const std::string &datasetName) final
void writeGroupAttribute(const std::string &groupName, const std::string &attributeName, const std::vector< std::string > &values) final
void writeDatasetAttributes(const std::string &datasetName, const std::vector< std::string > &attributeNames, const std::vector< std::string > &values) final
void selectArrayNdOfValues(const std::string &datasetName, uint64_t const *blockCountPerDimension, uint64_t const *offsetInEachDimension, uint64_t const *strideInEachDimension, uint64_t const *blockSizeInEachDimension, unsigned int numDimensions, bool newSelection, hdf5_hid_t &dataset, hdf5_hid_t &filespace) final
void writeGroupAttributes(const std::string &groupName, const std::vector< std::string > &attributeNames, const std::vector< std::string > &values) final
void writeDatasetAttributes(const std::string &datasetName, const std::vector< std::string > &attributeNames, const std::vector< int > &values) final