21#include "EpcExternalPartReference.h"
22#include "../common/HidtType.h"
25#define CUMULATIVE_LENGTH_DS_NAME "cumulativeLength"
27#define ELEMENTS_DS_NAME "elements"
52 DLL_IMPORT_OR_EXPORT
void setRootPath(
const std::string& rootPath) { packageDirectoryAbsolutePath = rootPath; }
60 DLL_IMPORT_OR_EXPORT
void setRelativePath(
const std::string& relPath) { relativeFilePath = relPath; }
67 DLL_IMPORT_OR_EXPORT
void setOpeningMode(COMMON_NS::DataObjectRepository::openingMode openingMode_) { openingMode = openingMode_; }
75 DLL_IMPORT_OR_EXPORT
const std::string&
getRelativePath()
const {
return relativeFilePath; }
88 DLL_IMPORT_OR_EXPORT
virtual bool isOpened()
const = 0;
91 DLL_IMPORT_OR_EXPORT
virtual void close() = 0;
101 DLL_IMPORT_OR_EXPORT
virtual COMMON_NS::AbstractObject::hdfDatatypeEnum
getHdfDatatypeInDataset(
const std::string & datasetName) = 0;
132 const std::string & name,
133 hdf5_hid_t cumulativeLengthDatatype,
134 const void * cumulativeLength,
135 unsigned long long cumulativeLengthSize,
136 hdf5_hid_t elementsDatatype,
137 const void * elements,
138 unsigned long long elementsSize) = 0;
149 DLL_IMPORT_OR_EXPORT
virtual unsigned int getDimensionCount(
const std::string & datasetName) = 0;
167 DLL_IMPORT_OR_EXPORT
virtual signed long long getElementCount(
const std::string & datasetName) = 0;
192 const std::string & name,
193 const float * floatValues,
194 const unsigned long long * numValuesInEachDimension,
195 unsigned int numDimensions) = 0;
212 const std::string & name,
213 const double * dblValues,
214 const unsigned long long * numValuesInEachDimension,
215 unsigned int numDimensions) = 0;
232 const std::string & name,
233 const char * intValues,
234 const unsigned long long * numValuesInEachDimension,
235 unsigned int numDimensions) = 0;
252 const std::string & name,
253 const int * intValues,
254 const unsigned long long * numValuesInEachDimension,
255 unsigned int numDimensions) = 0;
273 const std::string & name,
274 const int64_t * values,
275 const unsigned long long * numValuesInEachDimension,
276 unsigned int numDimensions) = 0;
294 const std::string & name,
295 const uint64_t * values,
296 const unsigned long long * numValuesInEachDimension,
297 unsigned int numDimensions) = 0;
314 DLL_IMPORT_OR_EXPORT
virtual void writeArrayNd(
const std::string & groupName,
315 const std::string & name,
318 const unsigned long long * numValuesInEachDimension,
319 unsigned int numDimensions) = 0;
336 const std::string& groupName,
337 const std::string& name,
339 const unsigned long long* numValuesInEachDimension,
340 unsigned int numDimensions
359 const std::string& groupName,
360 const std::string& name,
363 const unsigned long long* numValuesInEachDimension,
364 const unsigned long long* offsetValuesInEachDimension,
365 unsigned int numDimensions
379 const std::vector<std::string> & attributeNames,
380 const std::vector<std::string> & values) = 0;
390 const std::string & attributeName,
391 const std::vector<std::string> & values) = 0;
404 const std::vector<std::string> & attributeNames,
405 const std::vector<double> & values) = 0;
418 const std::vector<std::string> & attributeNames,
419 const std::vector<int> & values) = 0;
432 const std::vector<std::string> & attributeNames,
433 const std::vector<std::string> & values) = 0;
443 const std::string & attributeName,
444 const std::vector<std::string> & values) = 0;
457 const std::vector<std::string> & attributeNames,
458 const std::vector<double> & values) = 0;
471 const std::vector<std::string> & attributeNames,
472 const std::vector<int> & values) = 0;
487 const std::string & attr_name)
const = 0;
502 const std::string & attr_name)
const = 0;
517 const std::string & attr_name)
const = 0;
532 const std::string & attr_name)
const = 0;
564 const std::string & datasetName,
566 unsigned long long const * numValuesInEachDimension,
567 unsigned long long const * offsetInEachDimension,
568 unsigned int numDimensions
595 const std::string & datasetName,
597 unsigned long long const * blockCountPerDimension,
598 unsigned long long const * offsetInEachDimension,
599 unsigned long long const * strideInEachDimension,
600 unsigned long long const * blockSizeInEachDimension,
601 unsigned int numDimensions) = 0;
634 const std::string & datasetName,
635 unsigned long long const* blockCountPerDimension,
636 unsigned long long const* offsetInEachDimension,
637 unsigned long long const* strideInEachDimension,
638 unsigned long long const* blockSizeInEachDimension,
639 unsigned int numDimensions,
641 hdf5_hid_t & dataset,
642 hdf5_hid_t & filespace) = 0;
658 hdf5_hid_t filespace,
660 unsigned long long slabSize) = 0;
692 const std::string & datasetName,
694 unsigned long long const * numValuesInEachDimension,
695 unsigned long long const * offsetInEachDimension,
696 unsigned int numDimensions
729 const std::string & datasetName,
731 unsigned long long const * numValuesInEachDimension,
732 unsigned long long const * offsetInEachDimension,
733 unsigned int numDimensions) = 0;
777 const std::string & datasetName,
779 unsigned long long const * numValuesInEachDimension,
780 unsigned long long const * offsetInEachDimension,
781 unsigned int numDimensions
848 DLL_IMPORT_OR_EXPORT
virtual std::vector<unsigned long long>
readArrayDimensions(
const std::string & datasetName) = 0;
857 DLL_IMPORT_OR_EXPORT
virtual bool exist(
const std::string & absolutePathInHdfFile)
const = 0;
868 DLL_IMPORT_OR_EXPORT
virtual bool isCompressed(
const std::string & datasetName) = 0;
882 DLL_IMPORT_OR_EXPORT
void setMaxChunkSize(
unsigned int newMaxChunkSize) { maxChunkSize = newMaxChunkSize; }
901 DLL_IMPORT_OR_EXPORT
void initGsoapProxy(COMMON_NS::DataObjectRepository* repo,
const std::string& guid,
const std::string& title,
unsigned int emlVersion);
914 std::string packageDirectoryAbsolutePath;
916 std::string relativeFilePath;
918 COMMON_NS::DataObjectRepository::openingMode openingMode;
922 unsigned int maxChunkSize = 1000000;
934 DLL_IMPORT_OR_EXPORT AbstractHdfProxy(
const std::string & packageDirAbsolutePath,
const std::string & externalFilePath, COMMON_NS::DataObjectRepository::openingMode hdfPermissionAccess = COMMON_NS::DataObjectRepository::openingMode::READ_ONLY) :
935 packageDirectoryAbsolutePath(packageDirAbsolutePath), relativeFilePath(externalFilePath), openingMode(hdfPermissionAccess) {}
937 AbstractHdfProxy(gsoap_resqml2_0_1::_eml20__EpcExternalPartReference* fromGsoap) :
938 EpcExternalPartReference(fromGsoap), openingMode(COMMON_NS::DataObjectRepository::openingMode::READ_ONLY) {}
940 AbstractHdfProxy(gsoap_eml2_1::_eml21__EpcExternalPartReference* fromGsoap) :
941 EpcExternalPartReference(fromGsoap), openingMode(COMMON_NS::DataObjectRepository::openingMode::READ_ONLY) {}
943 AbstractHdfProxy(gsoap_eml2_3::_eml23__EpcExternalPartReference* fromGsoap) :
944 EpcExternalPartReference(fromGsoap), openingMode(COMMON_NS::DataObjectRepository::openingMode::READ_ONLY) {}
An abstract proxy for reading and writing values into an HDF5 file. It is possible to derive this cla...
Definition: AbstractHdfProxy.h:42
virtual signed long long getElementCount(const std::string &datasetName)=0
virtual void writeDatasetAttributes(const std::string &datasetName, const std::vector< std::string > &attributeNames, const std::vector< std::string > &values)=0
virtual void writeGroupAttributes(const std::string &groupName, const std::vector< std::string > &attributeNames, const std::vector< double > &values)=0
virtual bool isOpened() const =0
virtual void readArrayNdOfDoubleValues(hdf5_hid_t dataset, hdf5_hid_t filespace, void *values, unsigned long long slabSize)=0
virtual void writeArrayNdOfInt64Values(const std::string &groupName, const std::string &name, const int64_t *values, const unsigned long long *numValuesInEachDimension, unsigned int numDimensions)=0
virtual double readDoubleAttribute(const std::string &obj_name, const std::string &attr_name) const =0
virtual void readArrayNdOfDoubleValues(const std::string &datasetName, double *values, unsigned long long const *blockCountPerDimension, unsigned long long const *offsetInEachDimension, unsigned long long const *strideInEachDimension, unsigned long long const *blockSizeInEachDimension, unsigned int numDimensions)=0
virtual void readArrayNdOfInt64Values(const std::string &datasetName, int64_t *values)=0
virtual void writeArrayNdOfFloatValues(const std::string &groupName, const std::string &name, const float *floatValues, const unsigned long long *numValuesInEachDimension, unsigned int numDimensions)=0
virtual void writeArrayNdOfCharValues(const std::string &groupName, const std::string &name, const char *intValues, const unsigned long long *numValuesInEachDimension, unsigned int numDimensions)=0
virtual common::AbstractObject::hdfDatatypeEnum getHdfDatatypeInDataset(const std::string &datasetName)=0
virtual void readArrayNdOfUShortValues(const std::string &datasetName, unsigned short *values)=0
virtual void readArrayNdOfDoubleValues(const std::string &datasetName, double *values, unsigned long long const *numValuesInEachDimension, unsigned long long const *offsetInEachDimension, unsigned int numDimensions)=0
virtual void readArrayNdOfFloatValues(const std::string &datasetName, float *values)=0
virtual void readArrayNdOfDoubleValues(const std::string &datasetName, double *values)=0
virtual void readArrayNdOfUInt64Values(const std::string &datasetName, uint64_t *values)=0
virtual void createArrayNd(const std::string &groupName, const std::string &name, hdf5_hid_t datatype, const unsigned long long *numValuesInEachDimension, unsigned int numDimensions)=0
virtual void writeGroupAttribute(const std::string &groupName, const std::string &attributeName, const std::vector< std::string > &values)=0
virtual void readArrayNdOfIntValues(const std::string &datasetName, int *values)=0
virtual std::vector< unsigned long long > getElementCountPerDimension(const std::string &datasetName)=0
virtual std::vector< unsigned long long > getElementCountPerChunkDimension(const std::string &datasetName)=0
virtual std::vector< std::string > readStringArrayAttribute(const std::string &obj_name, const std::string &attr_name) const =0
virtual void writeDatasetAttribute(const std::string &datasetName, const std::string &attributeName, const std::vector< std::string > &values)=0
virtual void readArrayNdOfShortValues(const std::string &datasetName, short *values)=0
virtual ~AbstractHdfProxy()=default
virtual void writeGroupAttributes(const std::string &groupName, const std::vector< std::string > &attributeNames, const std::vector< int > &values)=0
virtual void readArrayNdOfInt64Values(const std::string &datasetName, int64_t *values, unsigned long long const *numValuesInEachDimension, unsigned long long const *offsetInEachDimension, unsigned int numDimensions)=0
virtual bool exist(const std::string &absolutePathInHdfFile) const =0
virtual int getHdfDatatypeClassInDataset(const std::string &datasetName)=0
virtual void writeDatasetAttributes(const std::string &datasetName, const std::vector< std::string > &attributeNames, const std::vector< double > &values)=0
virtual void writeArrayNdSlab(const std::string &groupName, const std::string &name, hdf5_hid_t datatype, const void *values, const unsigned long long *numValuesInEachDimension, const unsigned long long *offsetValuesInEachDimension, unsigned int numDimensions)=0
virtual unsigned int getDimensionCount(const std::string &datasetName)=0
virtual bool isCompressed(const std::string &datasetName)=0
virtual void writeArrayNdOfDoubleValues(const std::string &groupName, const std::string &name, const double *dblValues, const unsigned long long *numValuesInEachDimension, unsigned int numDimensions)=0
virtual void writeArrayNd(const std::string &groupName, const std::string &name, hdf5_hid_t datatype, const void *values, const unsigned long long *numValuesInEachDimension, unsigned int numDimensions)=0
virtual std::vector< unsigned long long > readArrayDimensions(const std::string &datasetName)=0
virtual void readArrayNdOfFloatValues(const std::string &datasetName, float *values, unsigned long long const *numValuesInEachDimension, unsigned long long const *offsetInEachDimension, unsigned int numDimensions)=0
virtual void setCompressionLevel(unsigned int newCompressionLevel)=0
void setOpeningMode(common::DataObjectRepository::openingMode openingMode_)
Definition: AbstractHdfProxy.h:67
virtual void selectArrayNdOfValues(const std::string &datasetName, unsigned long long const *blockCountPerDimension, unsigned long long const *offsetInEachDimension, unsigned long long const *strideInEachDimension, unsigned long long const *blockSizeInEachDimension, unsigned int numDimensions, bool newSelection, hdf5_hid_t &dataset, hdf5_hid_t &filespace)=0
virtual void readArrayNdOfIntValues(const std::string &datasetName, int *values, unsigned long long const *numValuesInEachDimension, unsigned long long const *offsetInEachDimension, unsigned int numDimensions)=0
virtual void writeDatasetAttributes(const std::string &datasetName, const std::vector< std::string > &attributeNames, const std::vector< int > &values)=0
virtual void writeArrayNdOfUInt64Values(const std::string &groupName, const std::string &name, const uint64_t *values, const unsigned long long *numValuesInEachDimension, unsigned int numDimensions)=0
virtual void readArrayNdOfCharValues(const std::string &datasetName, char *values)=0
virtual int64_t readLongAttribute(const std::string &obj_name, const std::string &attr_name) const =0
virtual void writeArrayNdOfIntValues(const std::string &groupName, const std::string &name, const int *intValues, const unsigned long long *numValuesInEachDimension, unsigned int numDimensions)=0
const std::string & getRelativePath() const
Definition: AbstractHdfProxy.h:75
void setRelativePath(const std::string &relPath)
Definition: AbstractHdfProxy.h:60
virtual void readArrayNdOfUIntValues(const std::string &datasetName, unsigned int *values)=0
virtual std::string readStringAttribute(const std::string &obj_name, const std::string &attr_name) const =0
virtual void readArrayNdOfUCharValues(const std::string &datasetName, unsigned char *values)=0
virtual void writeGroupAttributes(const std::string &groupName, const std::vector< std::string > &attributeNames, const std::vector< std::string > &values)=0
void setRootPath(const std::string &rootPath)
Definition: AbstractHdfProxy.h:52
void setMaxChunkSize(unsigned int newMaxChunkSize)
Definition: AbstractHdfProxy.h:882
virtual void writeItemizedListOfList(const std::string &groupName, const std::string &name, hdf5_hid_t cumulativeLengthDatatype, const void *cumulativeLength, unsigned long long cumulativeLengthSize, hdf5_hid_t elementsDatatype, const void *elements, unsigned long long elementsSize)=0
void initGsoapProxy(common::DataObjectRepository *repo, const std::string &guid, const std::string &title, unsigned int emlVersion)
Proxy class for handling external parts of an EPC package. It must be used at least for external HDF5...
Definition: EpcExternalPartReference.h:30