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