Fesapi 2.14.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
Loading...
Searching...
No Matches
AbstractValuesProperty.h
1/*-----------------------------------------------------------------------
2Licensed to the Apache Software Foundation (ASF) under one
3or more contributor license agreements. See the NOTICE file
4distributed with this work for additional information
5regarding copyright ownership. The ASF licenses this file
6to you under the Apache License, Version 2.0 (the
7"License"; you may not use this file except in compliance
8with the License. You may obtain a copy of the License at
9
10 http://www.apache.org/licenses/LICENSE-2.0
11
12Unless required by applicable law or agreed to in writing,
13software distributed under the License is distributed on an
14"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15KIND, either express or implied. See the License for the
16specific language governing permissions and limitations
17under the License.
18-----------------------------------------------------------------------*/
19#pragma once
20
21#include "AbstractProperty.h"
22
23#include <algorithm>
24#include <stdexcept>
25
26#include "../common/NumberArrayStatistics.h"
27
28namespace RESQML2_NS
29{
31 class AbstractValuesProperty : public AbstractProperty
32 {
33 public:
34
38 virtual ~AbstractValuesProperty() = default;
39
49 DLL_IMPORT_OR_EXPORT uint64_t getPatchCount() const final;
50
56 DLL_IMPORT_OR_EXPORT COMMON_NS::AbstractObject::numericalDatatypeEnum getValuesHdfDatatype() const final;
57
63 DLL_IMPORT_OR_EXPORT std::vector<uint32_t> getValuesCountPerDimensionOfPatch(uint64_t patchIndex) const final;
64
72 DLL_IMPORT_OR_EXPORT void pushBackFacet(gsoap_eml2_3::eml23__FacetKind facet, const std::string & facetValue);
73
79 DLL_IMPORT_OR_EXPORT uint64_t getFacetCount() const;
80
90 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__FacetKind getFacetKind(uint64_t index) const;
91
101 DLL_IMPORT_OR_EXPORT std::string getFacetValue(uint64_t index) const;
102
118 template<typename T> std::enable_if_t<std::is_arithmetic_v<T>, void>
119 pushBackArrayOfValues(const T* values, const uint64_t* numValues, uint32_t numDimensionsInArray,
120 EML2_NS::AbstractHdfProxy* proxy = nullptr, T nullValue = (std::numeric_limits<T>::max)());
121
122 template<typename T>
123 void pushBackArrayOfValuesPlusStatistics(const T* values, const uint64_t* numValues, uint32_t numDimensionsInArray, const COMMON_NS::NumberArrayStatistics<T>& statistics,
124 EML2_NS::AbstractHdfProxy* proxy = nullptr) {
125 pushBackArrayOfValues(values, numValues, numDimensionsInArray, proxy, statistics.getNullValue());
126 setStatistics(statistics, getPatchCount() - 1);
127 }
128
145 template<typename T>
146 void pushBackArray1dOfValues(const T* values, uint64_t valueCount,
147 EML2_NS::AbstractHdfProxy* proxy = nullptr, T nullValue = (std::numeric_limits<T>::max)()) {
148 pushBackArrayOfValues(values, &valueCount, 1, proxy, nullValue);
149 }
150 template<typename T>
151 void pushBackArray1dOfValuesPlusStatistics(const T* values, uint64_t valueCount, const COMMON_NS::NumberArrayStatistics<T>& statistics,
152 EML2_NS::AbstractHdfProxy* proxy = nullptr) {
153 pushBackArray1dOfValues(values, valueCount, proxy, statistics.getNullValue());
154 setStatistics(statistics, getPatchCount() - 1);
155 }
156
176 template<typename T>
177 void pushBackArray2dOfValues(const T* values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim,
178 EML2_NS::AbstractHdfProxy* proxy = nullptr, T nullValue = (std::numeric_limits<T>::max)()) {
179 const uint64_t valueCountPerDimension[2] = { valueCountInSlowestDim, valueCountInFastestDim };
180 pushBackArrayOfValues(values, valueCountPerDimension, 2, proxy, nullValue);
181 }
182 template<typename T>
183 void pushBackArray2dOfValuesPlusStatistics(const T* values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, const COMMON_NS::NumberArrayStatistics<T>& statistics,
184 EML2_NS::AbstractHdfProxy* proxy = nullptr) {
185 pushBackArray2dOfValues(values, valueCountInFastestDim, valueCountInSlowestDim, proxy, statistics.getNullValue());
186 setStatistics(statistics, getPatchCount() - 1);
187 }
188
210 template<typename T>
211 void pushBackArray3dOfValues(const T* values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim,
212 EML2_NS::AbstractHdfProxy* proxy = nullptr, T nullValue = (std::numeric_limits<T>::max)()) {
213 const uint64_t valueCountPerDimension[3] = { valueCountInSlowestDim, valueCountInMiddleDim, valueCountInFastestDim };
214 pushBackArrayOfValues(values, valueCountPerDimension, 3, proxy, nullValue);
215 }
216 template<typename T>
217 void pushBackArray3dOfValuesPlusStatistics(const T* values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, const COMMON_NS::NumberArrayStatistics<T>& statistics,
218 EML2_NS::AbstractHdfProxy* proxy = nullptr) {
219 pushBackArray3dOfValues(values, valueCountInFastestDim, valueCountInMiddleDim, valueCountInSlowestDim, proxy, statistics.getNullValue());
220 setStatistics(statistics, getPatchCount() - 1);
221 }
222
237 template<typename T>
238 COMMON_NS::NumberArrayStatistics<T> getArrayOfValuesOfPatch(uint64_t patchIndex, T* values, bool forceStatisticsComputation = false) const {
239 cannotBePartial();
240 if (values == nullptr) {
241 throw std::invalid_argument("The array of values cannot be null");
242 }
243
244 T nullValue;
245 if (gsoapProxy2_0_1 != nullptr) {
246 auto const* xmlValues = static_cast<gsoap_resqml2_0_1::resqml20__AbstractValuesProperty const*>(gsoapProxy2_0_1)->PatchOfValues[patchIndex]->Values;
247 if constexpr (std::is_integral_v<T>) {
248 nullValue = readArrayNdOfIntegerValues(xmlValues, values);
249 }
250 else {
251 auto const* xmlArray = dynamic_cast<gsoap_resqml2_0_1::resqml20__AbstractDoubleArray const*>(xmlValues);
252 if (xmlArray != nullptr) {
253 if constexpr (std::is_same_v<T, float>) {
254 nullValue = std::numeric_limits<float>::quiet_NaN();
255 readArrayNdOfFloatValues(xmlArray, values);
256 }
257 else {
258 nullValue = std::numeric_limits<double>::quiet_NaN();
259 readArrayNdOfDoubleValues(xmlArray, values);
260 }
261 }
262 else {
263 throw std::logic_error("Reading floating point values from a non RESQML2.0.1 double array is not supported.");
264 }
265 }
266 }
267 else if (gsoapProxy2_3 != nullptr) {
268 gsoap_eml2_3::eml23__AbstractValueArray const* xmlValues = static_cast<gsoap_eml2_3::resqml22__AbstractValuesProperty*>(gsoapProxy2_3)->ValuesForPatch.at(patchIndex);
269 if constexpr (std::is_integral_v<T>) {
270 auto const* xmlArray = dynamic_cast<gsoap_eml2_3::eml23__AbstractIntegerArray const*>(xmlValues);
271 if (xmlArray != nullptr) {
272 nullValue = readArrayNdOfIntegerValues(xmlArray, values);
273 }
274 else {
275 throw std::logic_error("Reading integer values from a non integer array is not supported.");
276 }
277 }
278 else {
279 auto const* xmlArray = dynamic_cast<gsoap_eml2_3::eml23__AbstractFloatingPointArray const*>(xmlValues);
280 if (xmlArray != nullptr) {
281 if constexpr (std::is_same_v<T, float>) {
282 nullValue = std::numeric_limits<float>::quiet_NaN();
283 readArrayNdOfFloatValues(xmlArray, values);
284 }
285 else {
286 nullValue = std::numeric_limits<double>::quiet_NaN();
287 readArrayNdOfDoubleValues(xmlArray, values);
288 }
289 }
290 else {
291 throw std::logic_error("Reading floating point values from a non RESQML2.2 double array is not supported.");
292 }
293 }
294 }
295 else {
296 throw std::logic_error("Only RESQML 2.2 and 2.0.1 are supported for now.");
297 }
298
299 if (forceStatisticsComputation) {
300 return COMMON_NS::NumberArrayStatistics<T>(values, getValuesCountOfPatch(patchIndex), getValueCountPerIndexableElement(), nullValue);
301 }
302
303 return getStatistics<T>(patchIndex);
304 }
305
306 template<typename T> std::enable_if_t<std::is_arithmetic_v<T>, COMMON_NS::NumberArrayStatistics<T>>
307 getStatistics(uint64_t patchIndex) const;
308
317 DLL_IMPORT_OR_EXPORT void pushBackIntegerConstantArrayOfValues(int64_t value, uint64_t valueCount);
318
335 [[deprecated("Use pushBackArray1dOfValues instead.")]]
336 DLL_IMPORT_OR_EXPORT void pushBackInt64Hdf5Array1dOfValues(const int64_t* values, uint64_t valueCount, EML2_NS::AbstractHdfProxy* proxy, int64_t nullValue);
337
343 [[deprecated("Use pushBackArray1dOfValues instead.")]]
344 DLL_IMPORT_OR_EXPORT void pushBackInt32Hdf5Array1dOfValues(const int* values, uint64_t valueCount, EML2_NS::AbstractHdfProxy* proxy, int nullValue);
345
351 [[deprecated("Use pushBackArray1dOfValues instead.")]]
352 DLL_IMPORT_OR_EXPORT void pushBackInt16Hdf5Array1dOfValues(const short* values, uint64_t valueCount, EML2_NS::AbstractHdfProxy* proxy, short nullValue);
353
359 [[deprecated("Use pushBackArray1dOfValues instead.")]]
360 DLL_IMPORT_OR_EXPORT void pushBackInt8Hdf5Array1dOfValues(const int8_t* values, uint64_t valueCount, EML2_NS::AbstractHdfProxy* proxy, int8_t nullValue);
361
381 [[deprecated("Use pushBackArray2dOfValues instead.")]]
382 DLL_IMPORT_OR_EXPORT void pushBackInt64Hdf5Array2dOfValues(const int64_t* values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, EML2_NS::AbstractHdfProxy* proxy, int64_t nullValue);
383
389 [[deprecated("Use pushBackArray2dOfValues instead.")]]
390 DLL_IMPORT_OR_EXPORT void pushBackInt32Hdf5Array2dOfValues(const int* values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, EML2_NS::AbstractHdfProxy* proxy, int nullValue);
391
397 [[deprecated("Use pushBackArray2dOfValues instead.")]]
398 DLL_IMPORT_OR_EXPORT void pushBackInt16Hdf5Array2dOfValues(const short* values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, EML2_NS::AbstractHdfProxy* proxy, short nullValue);
399
405 [[deprecated("Use pushBackArray2dOfValues instead.")]]
406 DLL_IMPORT_OR_EXPORT void pushBackUInt16Hdf5Array2dOfValues(const unsigned short* values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, EML2_NS::AbstractHdfProxy* proxy, unsigned short nullValue);
407
413 [[deprecated("Use pushBackArray2dOfValues instead.")]]
414 DLL_IMPORT_OR_EXPORT void pushBackInt8Hdf5Array2dOfValues(const int8_t* values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, EML2_NS::AbstractHdfProxy* proxy, int8_t nullValue);
415
437 [[deprecated("Use pushBackArray3dOfValues instead.")]]
438 DLL_IMPORT_OR_EXPORT void pushBackInt64Hdf5Array3dOfValues(const int64_t* values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, EML2_NS::AbstractHdfProxy* proxy, int64_t nullValue);
439
445 [[deprecated("Use pushBackArray3dOfValues instead.")]]
446 DLL_IMPORT_OR_EXPORT void pushBackInt32Hdf5Array3dOfValues(const int* values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, EML2_NS::AbstractHdfProxy* proxy, int nullValue);
447
453 DLL_IMPORT_OR_EXPORT void pushBackInt16Hdf5Array3dOfValues(const short* values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, EML2_NS::AbstractHdfProxy* proxy, short nullValue);
454
460 [[deprecated("Use pushBackArray3dOfValues instead.")]]
461 DLL_IMPORT_OR_EXPORT void pushBackUInt16Hdf5Array3dOfValues(const unsigned short* values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, EML2_NS::AbstractHdfProxy* proxy, unsigned short nullValue);
462
468 [[deprecated("Use pushBackArray3dOfValues instead.")]]
469 DLL_IMPORT_OR_EXPORT void pushBackInt8Hdf5Array3dOfValues(const int8_t* values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, EML2_NS::AbstractHdfProxy* proxy, int8_t nullValue);
470
489 [[deprecated("Use pushBackArrayOfValues instead.")]]
490 DLL_IMPORT_OR_EXPORT virtual void pushBackInt64Hdf5ArrayOfValues(const int64_t* values, const uint64_t* numValues, unsigned int numDimensionsInArray, EML2_NS::AbstractHdfProxy* proxy, int64_t nullValue);
491
497 [[deprecated("Use pushBackArrayOfValues instead.")]]
498 DLL_IMPORT_OR_EXPORT virtual void pushBackInt32Hdf5ArrayOfValues(const int* values, const uint64_t* numValues, unsigned int numDimensionsInArray, EML2_NS::AbstractHdfProxy* proxy, int nullValue);
499
505 [[deprecated("Use pushBackArrayOfValues instead.")]]
506 DLL_IMPORT_OR_EXPORT virtual void pushBackInt16Hdf5ArrayOfValues(const short* values, const uint64_t* numValues, unsigned int numDimensionsInArray, EML2_NS::AbstractHdfProxy* proxy, short nullValue);
507
513 [[deprecated("Use pushBackArrayOfValues instead.")]]
514 DLL_IMPORT_OR_EXPORT virtual void pushBackUInt16Hdf5ArrayOfValues(const unsigned short* values, const uint64_t* numValues, unsigned int numDimensionsInArray, EML2_NS::AbstractHdfProxy* proxy, unsigned short nullValue);
515
521 [[deprecated("Use pushBackArrayOfValues instead.")]]
522 DLL_IMPORT_OR_EXPORT virtual void pushBackInt8Hdf5ArrayOfValues(const int8_t* values, const uint64_t* numValues, unsigned int numDimensionsInArray, EML2_NS::AbstractHdfProxy* proxy, int8_t nullValue);
523
543 DLL_IMPORT_OR_EXPORT virtual std::string pushBackRefToExistingIntegerDataset(EML2_NS::AbstractHdfProxy* hdfProxy, const std::string & dataset = "", int64_t nullValue = (std::numeric_limits<int64_t>::max)());
544
557 DLL_IMPORT_OR_EXPORT bool hasConstantValues(uint64_t patchIndex) const;
558
572 DLL_IMPORT_OR_EXPORT int64_t getInt64ConstantValuesOfPatch(uint64_t patchIndex) const;
573
587 DLL_IMPORT_OR_EXPORT double getDoubleConstantValuesOfPatch(uint64_t patchIndex) const;
588
601 DLL_IMPORT_OR_EXPORT int64_t getNullValueOfPatch(uint64_t patchIndex) const;
602
603 [[deprecated("Use getArrayOfValuesOfPatch instead.")]]
604 DLL_IMPORT_OR_EXPORT int64_t getInt64ValuesOfPatch(uint64_t patchIndex, int64_t* values) const {
605 return getArrayOfValuesOfPatch(patchIndex, values).getNullValue();
606 }
607
608 [[deprecated("Use getArrayOfValuesOfPatch instead.")]]
609 DLL_IMPORT_OR_EXPORT uint64_t getUInt64ValuesOfPatch(uint64_t patchIndex, uint64_t* values) const {
610 return getArrayOfValuesOfPatch(patchIndex, values).getNullValue();
611 }
612
613 [[deprecated("Use getArrayOfValuesOfPatch instead.")]]
614 DLL_IMPORT_OR_EXPORT int32_t getInt32ValuesOfPatch(uint64_t patchIndex, int32_t* values) const {
615 return getArrayOfValuesOfPatch(patchIndex, values).getNullValue();
616 }
617
618 [[deprecated("Use getArrayOfValuesOfPatch instead.")]]
619 DLL_IMPORT_OR_EXPORT uint32_t getUInt32ValuesOfPatch(uint64_t patchIndex, uint32_t* values) const {
620 return getArrayOfValuesOfPatch(patchIndex, values).getNullValue();
621 }
622
623 [[deprecated("Use getArrayOfValuesOfPatch instead.")]]
624 DLL_IMPORT_OR_EXPORT int16_t getInt16ValuesOfPatch(uint64_t patchIndex, int16_t* values) const {
625 return getArrayOfValuesOfPatch(patchIndex, values).getNullValue();
626 }
627
628 [[deprecated("Use getArrayOfValuesOfPatch instead.")]]
629 DLL_IMPORT_OR_EXPORT uint16_t getUInt16ValuesOfPatch(uint64_t patchIndex, uint16_t* values) const {
630 return getArrayOfValuesOfPatch(patchIndex, values).getNullValue();
631 }
632
633 DLL_IMPORT_OR_EXPORT int8_t getInt8ValuesOfPatch(uint64_t patchIndex, int8_t* values) const {
634 return getArrayOfValuesOfPatch(patchIndex, values).getNullValue();
635 }
636
637 [[deprecated("Use getArrayOfValuesOfPatch instead.")]]
638 DLL_IMPORT_OR_EXPORT uint8_t getUInt8ValuesOfPatch(uint64_t patchIndex, uint8_t* values) const {
639 return getArrayOfValuesOfPatch(patchIndex, values).getNullValue();
640 }
641
642 //***********************************
643 //*** Writing with hyperslabbing *****
644 //***********************************
645
666 DLL_IMPORT_OR_EXPORT void pushBackHdf5ArrayOfValues(
667 COMMON_NS::AbstractObject::numericalDatatypeEnum datatype,
668 uint64_t const * numValues,
669 unsigned int numArrayDimensions,
670 int64_t nullValue = (std::numeric_limits<int64_t>::max)(),
671 EML2_NS::AbstractHdfProxy* proxy = nullptr
672 );
673
691 DLL_IMPORT_OR_EXPORT void pushBackHdf5Array1dOfValues(
692 COMMON_NS::AbstractObject::numericalDatatypeEnum datatype,
693 uint64_t valueCount,
694 int64_t nullValue = (std::numeric_limits<int64_t>::max)(), EML2_NS::AbstractHdfProxy* proxy = nullptr
695 );
696
717 DLL_IMPORT_OR_EXPORT void pushBackHdf5Array2dOfValues(
718 COMMON_NS::AbstractObject::numericalDatatypeEnum datatype,
719 uint64_t valueCountInFastestDim,
720 uint64_t valueCountInSlowestDim,
721 int64_t nullValue = (std::numeric_limits<int64_t>::max)(),
722 EML2_NS::AbstractHdfProxy* proxy = nullptr
723 );
724
747 DLL_IMPORT_OR_EXPORT void pushBackHdf5Array3dOfValues(
748 COMMON_NS::AbstractObject::numericalDatatypeEnum datatype,
749 uint64_t valueCountInFastestDim,
750 uint64_t valueCountInMiddleDim,
751 uint64_t valueCountInSlowestDim,
752 int64_t nullValue = (std::numeric_limits<int64_t>::max)(),
753 EML2_NS::AbstractHdfProxy* proxy = nullptr
754 );
755
786 DLL_IMPORT_OR_EXPORT void setValuesOfInt64Hdf5ArrayOfValues(
787 int64_t const* values,
788 uint64_t const * numValues,
789 uint64_t const * offsetValues,
790 unsigned int numArrayDimensions,
791 EML2_NS::AbstractHdfProxy* proxy = nullptr,
792 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
793 setValuesOfHdf5ArrayOfValues(
794 COMMON_NS::AbstractObject::numericalDatatypeEnum::INT64, values, numValues,
795 offsetValues, numArrayDimensions, proxy, patchIndex);
796 }
797 DLL_IMPORT_OR_EXPORT void setValuesOfUInt64Hdf5ArrayOfValues(
798 uint64_t const* values,
799 uint64_t const * numValues,
800 uint64_t const * offsetValues,
801 unsigned int numArrayDimensions,
802 EML2_NS::AbstractHdfProxy* proxy = nullptr,
803 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
804 setValuesOfHdf5ArrayOfValues(
805 COMMON_NS::AbstractObject::numericalDatatypeEnum::UINT64, values, numValues,
806 offsetValues, numArrayDimensions, proxy, patchIndex);
807 }
808 DLL_IMPORT_OR_EXPORT void setValuesOfInt32Hdf5ArrayOfValues(
809 int32_t const* values,
810 uint64_t const * numValues,
811 uint64_t const * offsetValues,
812 unsigned int numArrayDimensions,
813 EML2_NS::AbstractHdfProxy* proxy = nullptr,
814 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
815 setValuesOfHdf5ArrayOfValues(
816 COMMON_NS::AbstractObject::numericalDatatypeEnum::INT32, values, numValues,
817 offsetValues, numArrayDimensions, proxy, patchIndex);
818 }
819 DLL_IMPORT_OR_EXPORT void setValuesOfUInt32Hdf5ArrayOfValues(
820 uint32_t const* values,
821 uint64_t const * numValues,
822 uint64_t const * offsetValues,
823 unsigned int numArrayDimensions,
824 EML2_NS::AbstractHdfProxy* proxy = nullptr,
825 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
826 setValuesOfHdf5ArrayOfValues(
827 COMMON_NS::AbstractObject::numericalDatatypeEnum::UINT32, values, numValues,
828 offsetValues, numArrayDimensions, proxy, patchIndex);
829 }
830 DLL_IMPORT_OR_EXPORT void setValuesOfInt16Hdf5ArrayOfValues(
831 int16_t const* values,
832 uint64_t const * numValues,
833 uint64_t const * offsetValues,
834 unsigned int numArrayDimensions,
835 EML2_NS::AbstractHdfProxy* proxy = nullptr,
836 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
837 setValuesOfHdf5ArrayOfValues(
838 COMMON_NS::AbstractObject::numericalDatatypeEnum::INT16, values, numValues,
839 offsetValues, numArrayDimensions, proxy, patchIndex);
840 }
841 DLL_IMPORT_OR_EXPORT void setValuesOfUInt16Hdf5ArrayOfValues(
842 uint16_t const* values,
843 uint64_t const * numValues,
844 uint64_t const * offsetValues,
845 unsigned int numArrayDimensions,
846 EML2_NS::AbstractHdfProxy* proxy = nullptr,
847 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
848 setValuesOfHdf5ArrayOfValues(
849 COMMON_NS::AbstractObject::numericalDatatypeEnum::UINT16, values, numValues,
850 offsetValues, numArrayDimensions, proxy, patchIndex);
851 }
852 DLL_IMPORT_OR_EXPORT void setValuesOfInt8Hdf5ArrayOfValues(
853 int8_t const* values,
854 uint64_t const * numValues,
855 uint64_t const * offsetValues,
856 unsigned int numArrayDimensions,
857 EML2_NS::AbstractHdfProxy* proxy = nullptr,
858 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
859 setValuesOfHdf5ArrayOfValues(
860 COMMON_NS::AbstractObject::numericalDatatypeEnum::INT8, values, numValues,
861 offsetValues, numArrayDimensions, proxy, patchIndex);
862 }
863 DLL_IMPORT_OR_EXPORT void setValuesOfUInt8Hdf5ArrayOfValues(
864 uint8_t const* values,
865 uint64_t const * numValues,
866 uint64_t const * offsetValues,
867 unsigned int numArrayDimensions,
868 EML2_NS::AbstractHdfProxy* proxy = nullptr,
869 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
870 setValuesOfHdf5ArrayOfValues(
871 COMMON_NS::AbstractObject::numericalDatatypeEnum::UINT8, values, numValues,
872 offsetValues, numArrayDimensions, proxy, patchIndex);
873 }
874 DLL_IMPORT_OR_EXPORT void setValuesOfDoubleHdf5ArrayOfValues(
875 double const* values,
876 uint64_t const * numValues,
877 uint64_t const * offsetValues,
878 unsigned int numArrayDimensions,
879 EML2_NS::AbstractHdfProxy* proxy = nullptr,
880 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
881 setValuesOfHdf5ArrayOfValues(
882 COMMON_NS::AbstractObject::numericalDatatypeEnum::DOUBLE, values, numValues,
883 offsetValues, numArrayDimensions, proxy, patchIndex);
884 }
885 DLL_IMPORT_OR_EXPORT void setValuesOfFloatHdf5ArrayOfValues(
886 float const* values,
887 uint64_t const * numValues,
888 uint64_t const * offsetValues,
889 unsigned int numArrayDimensions,
890 EML2_NS::AbstractHdfProxy* proxy = nullptr,
891 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
892 setValuesOfHdf5ArrayOfValues(
893 COMMON_NS::AbstractObject::numericalDatatypeEnum::FLOAT, values, numValues,
894 offsetValues, numArrayDimensions, proxy, patchIndex);
895 }
896
923 DLL_IMPORT_OR_EXPORT void setValuesOfInt64Hdf5Array1dOfValues(
924 int64_t const* values,
925 uint64_t valueCount,
926 uint64_t offset,
927 EML2_NS::AbstractHdfProxy* proxy = nullptr,
928 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
929 setValuesOfInt64Hdf5ArrayOfValues(values, &valueCount, &offset, 1, proxy, patchIndex);
930 }
931 DLL_IMPORT_OR_EXPORT void setValuesOfUInt64Hdf5Array1dOfValues(
932 uint64_t const* values,
933 uint64_t valueCount,
934 uint64_t offset,
935 EML2_NS::AbstractHdfProxy* proxy = nullptr,
936 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
937 setValuesOfUInt64Hdf5ArrayOfValues(values, &valueCount, &offset, 1, proxy, patchIndex);
938 }
939 DLL_IMPORT_OR_EXPORT void setValuesOfInt32Hdf5Array1dOfValues(
940 int32_t const* values,
941 uint64_t valueCount,
942 uint64_t offset,
943 EML2_NS::AbstractHdfProxy* proxy = nullptr,
944 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
945 setValuesOfInt32Hdf5ArrayOfValues(values, &valueCount, &offset, 1, proxy, patchIndex);
946 }
947 DLL_IMPORT_OR_EXPORT void setValuesOfUInt32Hdf5Array1dOfValues(
948 uint32_t const* values,
949 uint64_t valueCount,
950 uint64_t offset,
951 EML2_NS::AbstractHdfProxy* proxy = nullptr,
952 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
953 setValuesOfUInt32Hdf5ArrayOfValues(values, &valueCount, &offset, 1, proxy, patchIndex);
954 }
955 DLL_IMPORT_OR_EXPORT void setValuesOfInt16Hdf5Array1dOfValues(
956 int16_t const* values,
957 uint64_t valueCount,
958 uint64_t offset,
959 EML2_NS::AbstractHdfProxy* proxy = nullptr,
960 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
961 setValuesOfInt16Hdf5ArrayOfValues(values, &valueCount, &offset, 1, proxy, patchIndex);
962 }
963 DLL_IMPORT_OR_EXPORT void setValuesOfUInt16Hdf5Array1dOfValues(
964 uint16_t const* values,
965 uint64_t valueCount,
966 uint64_t offset,
967 EML2_NS::AbstractHdfProxy* proxy = nullptr,
968 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
969 setValuesOfUInt16Hdf5ArrayOfValues(values, &valueCount, &offset, 1, proxy, patchIndex);
970 }
971 DLL_IMPORT_OR_EXPORT void setValuesOfInt8Hdf5Array1dOfValues(
972 int8_t const* values,
973 uint64_t valueCount,
974 uint64_t offset,
975 EML2_NS::AbstractHdfProxy* proxy = nullptr,
976 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
977 setValuesOfInt8Hdf5ArrayOfValues(values, &valueCount, &offset, 1, proxy, patchIndex);
978 }
979 DLL_IMPORT_OR_EXPORT void setValuesOfUInt8Hdf5Array1dOfValues(
980 uint8_t const* values,
981 uint64_t valueCount,
982 uint64_t offset,
983 EML2_NS::AbstractHdfProxy* proxy = nullptr,
984 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
985 setValuesOfUInt8Hdf5ArrayOfValues(values, &valueCount, &offset, 1, proxy, patchIndex);
986 }
987 DLL_IMPORT_OR_EXPORT void setValuesOfDoubleHdf5Array1dOfValues(
988 double const * values,
989 uint64_t valueCount,
990 uint64_t offset,
991 EML2_NS::AbstractHdfProxy* proxy = nullptr,
992 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
993 setValuesOfDoubleHdf5ArrayOfValues(values, &valueCount, &offset, 1, proxy, patchIndex);
994 }
995 DLL_IMPORT_OR_EXPORT void setValuesOfFloatHdf5Array1dOfValues(
996 float const * values,
997 uint64_t valueCount,
998 uint64_t offset,
999 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1000 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1001 setValuesOfFloatHdf5ArrayOfValues(values, &valueCount, &offset, 1, proxy, patchIndex);
1002 }
1003
1036 DLL_IMPORT_OR_EXPORT void setValuesOfInt64Hdf5Array2dOfValues(
1037 int64_t const* values,
1038 uint64_t valueCountInFastestDim,
1039 uint64_t valueCountInSlowestDim,
1040 uint64_t offsetInFastestDim,
1041 uint64_t offsetInSlowestDim,
1042 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1043 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1044 const uint64_t valueCountPerDimension[2] = { valueCountInSlowestDim, valueCountInFastestDim };
1045 const uint64_t offsetPerDimension[2] = { offsetInSlowestDim, offsetInFastestDim };
1046 setValuesOfInt64Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 2, proxy, patchIndex);
1047 }
1048 DLL_IMPORT_OR_EXPORT void setValuesOfUInt64Hdf5Array2dOfValues(
1049 uint64_t const* values,
1050 uint64_t valueCountInFastestDim,
1051 uint64_t valueCountInSlowestDim,
1052 uint64_t offsetInFastestDim,
1053 uint64_t offsetInSlowestDim,
1054 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1055 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1056 const uint64_t valueCountPerDimension[2] = { valueCountInSlowestDim, valueCountInFastestDim };
1057 const uint64_t offsetPerDimension[2] = { offsetInSlowestDim, offsetInFastestDim };
1058 setValuesOfUInt64Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 2, proxy, patchIndex);
1059 }
1060 DLL_IMPORT_OR_EXPORT void setValuesOfInt32Hdf5Array2dOfValues(
1061 int32_t const* values,
1062 uint64_t valueCountInFastestDim,
1063 uint64_t valueCountInSlowestDim,
1064 uint64_t offsetInFastestDim,
1065 uint64_t offsetInSlowestDim,
1066 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1067 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1068 const uint64_t valueCountPerDimension[2] = { valueCountInSlowestDim, valueCountInFastestDim };
1069 const uint64_t offsetPerDimension[2] = { offsetInSlowestDim, offsetInFastestDim };
1070 setValuesOfInt32Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 2, proxy, patchIndex);
1071 }
1072 DLL_IMPORT_OR_EXPORT void setValuesOfUInt32Hdf5Array2dOfValues(
1073 uint32_t const* values,
1074 uint64_t valueCountInFastestDim,
1075 uint64_t valueCountInSlowestDim,
1076 uint64_t offsetInFastestDim,
1077 uint64_t offsetInSlowestDim,
1078 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1079 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1080 const uint64_t valueCountPerDimension[2] = { valueCountInSlowestDim, valueCountInFastestDim };
1081 const uint64_t offsetPerDimension[2] = { offsetInSlowestDim, offsetInFastestDim };
1082 setValuesOfUInt32Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 2, proxy, patchIndex);
1083 }
1084 DLL_IMPORT_OR_EXPORT void setValuesOfInt16Hdf5Array2dOfValues(
1085 int16_t const* values,
1086 uint64_t valueCountInFastestDim,
1087 uint64_t valueCountInSlowestDim,
1088 uint64_t offsetInFastestDim,
1089 uint64_t offsetInSlowestDim,
1090 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1091 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1092 const uint64_t valueCountPerDimension[2] = { valueCountInSlowestDim, valueCountInFastestDim };
1093 const uint64_t offsetPerDimension[2] = { offsetInSlowestDim, offsetInFastestDim };
1094 setValuesOfInt16Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 2, proxy, patchIndex);
1095 }
1096 DLL_IMPORT_OR_EXPORT void setValuesOfUInt16Hdf5Array2dOfValues(
1097 uint16_t const* values,
1098 uint64_t valueCountInFastestDim,
1099 uint64_t valueCountInSlowestDim,
1100 uint64_t offsetInFastestDim,
1101 uint64_t offsetInSlowestDim,
1102 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1103 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1104 const uint64_t valueCountPerDimension[2] = { valueCountInSlowestDim, valueCountInFastestDim };
1105 const uint64_t offsetPerDimension[2] = { offsetInSlowestDim, offsetInFastestDim };
1106 setValuesOfUInt16Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 2, proxy, patchIndex);
1107 }
1108 DLL_IMPORT_OR_EXPORT void setValuesOfInt8Hdf5Array2dOfValues(
1109 int8_t const* values,
1110 uint64_t valueCountInFastestDim,
1111 uint64_t valueCountInSlowestDim,
1112 uint64_t offsetInFastestDim,
1113 uint64_t offsetInSlowestDim,
1114 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1115 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1116 const uint64_t valueCountPerDimension[2] = { valueCountInSlowestDim, valueCountInFastestDim };
1117 const uint64_t offsetPerDimension[2] = { offsetInSlowestDim, offsetInFastestDim };
1118 setValuesOfInt8Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 2, proxy, patchIndex);
1119 }
1120 DLL_IMPORT_OR_EXPORT void setValuesOfUInt8Hdf5Array2dOfValues(
1121 uint8_t const* values,
1122 uint64_t valueCountInFastestDim,
1123 uint64_t valueCountInSlowestDim,
1124 uint64_t offsetInFastestDim,
1125 uint64_t offsetInSlowestDim,
1126 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1127 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1128 const uint64_t valueCountPerDimension[2] = { valueCountInSlowestDim, valueCountInFastestDim };
1129 const uint64_t offsetPerDimension[2] = { offsetInSlowestDim, offsetInFastestDim };
1130 setValuesOfUInt8Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 2, proxy, patchIndex);
1131 }
1132 DLL_IMPORT_OR_EXPORT void setValuesOfDoubleHdf5Array2dOfValues(
1133 double const * values,
1134 uint64_t valueCountInFastestDim,
1135 uint64_t valueCountInSlowestDim,
1136 uint64_t offsetInFastestDim,
1137 uint64_t offsetInSlowestDim,
1138 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1139 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1140 const uint64_t valueCountPerDimension[2] = { valueCountInSlowestDim, valueCountInFastestDim };
1141 const uint64_t offsetPerDimension[2] = { offsetInSlowestDim, offsetInFastestDim };
1142 setValuesOfDoubleHdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 2, proxy, patchIndex);
1143 }
1144 DLL_IMPORT_OR_EXPORT void setValuesOfFloatHdf5Array2dOfValues(
1145 float const * values,
1146 uint64_t valueCountInFastestDim,
1147 uint64_t valueCountInSlowestDim,
1148 uint64_t offsetInFastestDim,
1149 uint64_t offsetInSlowestDim,
1150 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1151 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1152 const uint64_t valueCountPerDimension[2] = { valueCountInSlowestDim, valueCountInFastestDim };
1153 const uint64_t offsetPerDimension[2] = { offsetInSlowestDim, offsetInFastestDim };
1154 setValuesOfFloatHdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 2, proxy, patchIndex);
1155 }
1156
1193 DLL_IMPORT_OR_EXPORT void setValuesOfInt64Hdf5Array3dOfValues(
1194 int64_t const* values,
1195 uint64_t valueCountInFastestDim,
1196 uint64_t valueCountInMiddleDim,
1197 uint64_t valueCountInSlowestDim,
1198 uint64_t offsetInFastestDim,
1199 uint64_t offsetInMiddleDim,
1200 uint64_t offsetInSlowestDim,
1201 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1202 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1203 const uint64_t valueCountPerDimension[3] = { valueCountInSlowestDim, valueCountInMiddleDim, valueCountInFastestDim };
1204 const uint64_t offsetPerDimension[3] = { offsetInSlowestDim, offsetInMiddleDim, offsetInFastestDim };
1205 setValuesOfInt64Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 3, proxy, patchIndex);
1206 }
1207 DLL_IMPORT_OR_EXPORT void setValuesOfUInt64Hdf5Array3dOfValues(
1208 uint64_t const* values,
1209 uint64_t valueCountInFastestDim,
1210 uint64_t valueCountInMiddleDim,
1211 uint64_t valueCountInSlowestDim,
1212 uint64_t offsetInFastestDim,
1213 uint64_t offsetInMiddleDim,
1214 uint64_t offsetInSlowestDim,
1215 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1216 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1217 const uint64_t valueCountPerDimension[3] = { valueCountInSlowestDim, valueCountInMiddleDim, valueCountInFastestDim };
1218 const uint64_t offsetPerDimension[3] = { offsetInSlowestDim, offsetInMiddleDim, offsetInFastestDim };
1219 setValuesOfUInt64Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 3, proxy, patchIndex);
1220 }
1221 DLL_IMPORT_OR_EXPORT void setValuesOfInt32Hdf5Array3dOfValues(
1222 int32_t const* values,
1223 uint64_t valueCountInFastestDim,
1224 uint64_t valueCountInMiddleDim,
1225 uint64_t valueCountInSlowestDim,
1226 uint64_t offsetInFastestDim,
1227 uint64_t offsetInMiddleDim,
1228 uint64_t offsetInSlowestDim,
1229 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1230 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1231 const uint64_t valueCountPerDimension[3] = { valueCountInSlowestDim, valueCountInMiddleDim, valueCountInFastestDim };
1232 const uint64_t offsetPerDimension[3] = { offsetInSlowestDim, offsetInMiddleDim, offsetInFastestDim };
1233 setValuesOfInt32Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 3, proxy, patchIndex);
1234 }
1235 DLL_IMPORT_OR_EXPORT void setValuesOfUInt32Hdf5Array3dOfValues(
1236 uint32_t const* values,
1237 uint64_t valueCountInFastestDim,
1238 uint64_t valueCountInMiddleDim,
1239 uint64_t valueCountInSlowestDim,
1240 uint64_t offsetInFastestDim,
1241 uint64_t offsetInMiddleDim,
1242 uint64_t offsetInSlowestDim,
1243 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1244 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1245 const uint64_t valueCountPerDimension[3] = { valueCountInSlowestDim, valueCountInMiddleDim, valueCountInFastestDim };
1246 const uint64_t offsetPerDimension[3] = { offsetInSlowestDim, offsetInMiddleDim, offsetInFastestDim };
1247 setValuesOfUInt32Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 3, proxy, patchIndex);
1248 }
1249 DLL_IMPORT_OR_EXPORT void setValuesOfInt16Hdf5Array3dOfValues(
1250 int16_t const* values,
1251 uint64_t valueCountInFastestDim,
1252 uint64_t valueCountInMiddleDim,
1253 uint64_t valueCountInSlowestDim,
1254 uint64_t offsetInFastestDim,
1255 uint64_t offsetInMiddleDim,
1256 uint64_t offsetInSlowestDim,
1257 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1258 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1259 const uint64_t valueCountPerDimension[3] = { valueCountInSlowestDim, valueCountInMiddleDim, valueCountInFastestDim };
1260 const uint64_t offsetPerDimension[3] = { offsetInSlowestDim, offsetInMiddleDim, offsetInFastestDim };
1261 setValuesOfInt16Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 3, proxy, patchIndex);
1262 }
1263 DLL_IMPORT_OR_EXPORT void setValuesOfUInt16Hdf5Array3dOfValues(
1264 uint16_t const* values,
1265 uint64_t valueCountInFastestDim,
1266 uint64_t valueCountInMiddleDim,
1267 uint64_t valueCountInSlowestDim,
1268 uint64_t offsetInFastestDim,
1269 uint64_t offsetInMiddleDim,
1270 uint64_t offsetInSlowestDim,
1271 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1272 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1273 const uint64_t valueCountPerDimension[3] = { valueCountInSlowestDim, valueCountInMiddleDim, valueCountInFastestDim };
1274 const uint64_t offsetPerDimension[3] = { offsetInSlowestDim, offsetInMiddleDim, offsetInFastestDim };
1275 setValuesOfUInt16Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 3, proxy, patchIndex);
1276 }
1277 DLL_IMPORT_OR_EXPORT void setValuesOfInt8Hdf5Array3dOfValues(
1278 int8_t const* values,
1279 uint64_t valueCountInFastestDim,
1280 uint64_t valueCountInMiddleDim,
1281 uint64_t valueCountInSlowestDim,
1282 uint64_t offsetInFastestDim,
1283 uint64_t offsetInMiddleDim,
1284 uint64_t offsetInSlowestDim,
1285 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1286 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1287 const uint64_t valueCountPerDimension[3] = { valueCountInSlowestDim, valueCountInMiddleDim, valueCountInFastestDim };
1288 const uint64_t offsetPerDimension[3] = { offsetInSlowestDim, offsetInMiddleDim, offsetInFastestDim };
1289 setValuesOfInt8Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 3, proxy, patchIndex);
1290 }
1291 DLL_IMPORT_OR_EXPORT void setValuesOfUInt8Hdf5Array3dOfValues(
1292 uint8_t const* values,
1293 uint64_t valueCountInFastestDim,
1294 uint64_t valueCountInMiddleDim,
1295 uint64_t valueCountInSlowestDim,
1296 uint64_t offsetInFastestDim,
1297 uint64_t offsetInMiddleDim,
1298 uint64_t offsetInSlowestDim,
1299 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1300 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1301 const uint64_t valueCountPerDimension[3] = { valueCountInSlowestDim, valueCountInMiddleDim, valueCountInFastestDim };
1302 const uint64_t offsetPerDimension[3] = { offsetInSlowestDim, offsetInMiddleDim, offsetInFastestDim };
1303 setValuesOfUInt8Hdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 3, proxy, patchIndex);
1304 }
1305 DLL_IMPORT_OR_EXPORT void setValuesOfDoubleHdf5Array3dOfValues(
1306 double const * values,
1307 uint64_t valueCountInFastestDim,
1308 uint64_t valueCountInMiddleDim,
1309 uint64_t valueCountInSlowestDim,
1310 uint64_t offsetInFastestDim,
1311 uint64_t offsetInMiddleDim,
1312 uint64_t offsetInSlowestDim,
1313 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1314 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1315 const uint64_t valueCountPerDimension[3] = { valueCountInSlowestDim, valueCountInMiddleDim, valueCountInFastestDim };
1316 const uint64_t offsetPerDimension[3] = { offsetInSlowestDim, offsetInMiddleDim, offsetInFastestDim };
1317 setValuesOfDoubleHdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 3, proxy, patchIndex);
1318 }
1319 DLL_IMPORT_OR_EXPORT void setValuesOfFloatHdf5Array3dOfValues(
1320 float const * values,
1321 uint64_t valueCountInFastestDim,
1322 uint64_t valueCountInMiddleDim,
1323 uint64_t valueCountInSlowestDim,
1324 uint64_t offsetInFastestDim,
1325 uint64_t offsetInMiddleDim,
1326 uint64_t offsetInSlowestDim,
1327 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1328 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) {
1329 const uint64_t valueCountPerDimension[3] = { valueCountInSlowestDim, valueCountInMiddleDim, valueCountInFastestDim };
1330 const uint64_t offsetPerDimension[3] = { offsetInSlowestDim, offsetInMiddleDim, offsetInFastestDim };
1331 setValuesOfFloatHdf5ArrayOfValues(values, valueCountPerDimension, offsetPerDimension, 3, proxy, patchIndex);
1332 }
1333
1334 //***********************************
1335 //*** Reading with hyperslabbing *****
1336 //***********************************
1337
1357 DLL_IMPORT_OR_EXPORT void getInt64ValuesOfPatch(
1358 uint64_t patchIndex,
1359 int64_t* values,
1360 uint64_t const * numValuesInEachDimension,
1361 uint64_t const * offsetInEachDimension,
1362 unsigned int numArrayDimensions
1363 ) const;
1364
1388 DLL_IMPORT_OR_EXPORT void getInt64ValuesOf3dPatch(
1389 uint64_t patchIndex,
1390 int64_t* values,
1391 uint64_t valueCountInFastestDim,
1392 uint64_t valueCountInMiddleDim,
1393 uint64_t valueCountInSlowestDim,
1394 uint64_t offsetInFastestDim,
1395 uint64_t offsetInMiddleDim,
1396 uint64_t offsetInSlowestDim
1397 ) const;
1398
1420 DLL_IMPORT_OR_EXPORT int32_t getIntValuesOfPatch(
1421 uint64_t patchIndex,
1422 int32_t* values,
1423 const uint64_t* numValuesInEachDimension,
1424 const uint64_t* offsetInEachDimension,
1425 unsigned int numArrayDimensions
1426 ) const;
1427
1451 DLL_IMPORT_OR_EXPORT void getIntValuesOf3dPatch(
1452 uint64_t patchIndex,
1453 int32_t* values,
1454 unsigned int valueCountInFastestDim,
1455 unsigned int valueCountInMiddleDim,
1456 unsigned int valueCountInSlowestDim,
1457 unsigned int offsetInFastestDim,
1458 unsigned int offsetInMiddleDim,
1459 unsigned int offsetInSlowestDim
1460 ) const;
1461
1462 //***********************************
1463 //****** FLOATING POINT *************
1464 //***********************************
1465
1474 DLL_IMPORT_OR_EXPORT void pushBackFloatingPointConstantArrayOfValues(double value, uint64_t valueCount);
1475
1490 [[deprecated("Use pushBackArray1dOfValues instead.")]]
1491 DLL_IMPORT_OR_EXPORT void pushBackDoubleHdf5Array1dOfValues(const double * values, uint64_t valueCount, EML2_NS::AbstractHdfProxy* proxy = nullptr);
1492
1511 [[deprecated("Use pushBackArray2dOfValues instead.")]]
1512 DLL_IMPORT_OR_EXPORT void pushBackDoubleHdf5Array2dOfValues(const double * values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, EML2_NS::AbstractHdfProxy* proxy = nullptr);
1513
1534 [[deprecated("Use pushBackArray3dOfValues instead.")]]
1535 DLL_IMPORT_OR_EXPORT void pushBackDoubleHdf5Array3dOfValues(const double * values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, EML2_NS::AbstractHdfProxy* proxy = nullptr);
1536
1554 [[deprecated("Use pushBackArrayOfValues instead.")]]
1555 DLL_IMPORT_OR_EXPORT void pushBackDoubleHdf5ArrayOfValues(double const * values, uint64_t const * numValues, unsigned int numArrayDimensions, EML2_NS::AbstractHdfProxy* proxy = nullptr);
1556
1562 [[deprecated("Use pushBackArray1dOfValues instead.")]]
1563 DLL_IMPORT_OR_EXPORT void pushBackFloatHdf5Array1dOfValues(const float * values, uint64_t valueCount, EML2_NS::AbstractHdfProxy* proxy = nullptr);
1564
1570 [[deprecated("Use pushBackArray2dOfValues instead.")]]
1571 DLL_IMPORT_OR_EXPORT void pushBackFloatHdf5Array2dOfValues(const float * values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, EML2_NS::AbstractHdfProxy* proxy = nullptr);
1572
1578 [[deprecated("Use pushBackArray3dOfValues instead.")]]
1579 DLL_IMPORT_OR_EXPORT void pushBackFloatHdf5Array3dOfValues(const float * values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, EML2_NS::AbstractHdfProxy* proxy = nullptr);
1580
1586 [[deprecated("Use pushBackArrayOfValues instead.")]]
1587 DLL_IMPORT_OR_EXPORT void pushBackFloatHdf5ArrayOfValues(float const * values, uint64_t const * numValues, unsigned int numArrayDimensions, EML2_NS::AbstractHdfProxy* proxy = nullptr);
1588
1607 DLL_IMPORT_OR_EXPORT virtual std::string pushBackRefToExistingFloatingPointDataset(EML2_NS::AbstractHdfProxy* proxy, const std::string & datasetName = "");
1608
1609 [[deprecated("Use getArrayOfValuesOfPatch instead.")]]
1610 DLL_IMPORT_OR_EXPORT void getDoubleValuesOfPatch(uint64_t patchIndex, double * values) const {
1611 getArrayOfValuesOfPatch(patchIndex, values);
1612 }
1613
1614 [[deprecated("Use getArrayOfValuesOfPatch instead.")]]
1615 DLL_IMPORT_OR_EXPORT void getFloatValuesOfPatch(uint64_t patchIndex, float * values) const {
1616 getArrayOfValuesOfPatch(patchIndex, values);
1617 }
1618
1619 //******************************************
1620 //*** For FLOATING POINT hyperslabbing *****
1621 //******************************************
1622
1641 DLL_IMPORT_OR_EXPORT void getFloatValuesOfPatch(
1642 uint64_t patchIndex,
1643 float* values,
1644 uint64_t const * numValuesInEachDimension,
1645 uint64_t const * offsetInEachDimension,
1646 unsigned int numArrayDimensions
1647 ) const;
1648
1671 DLL_IMPORT_OR_EXPORT void getFloatValuesOf3dPatch(
1672 uint64_t patchIndex,
1673 float* values,
1674 uint64_t valueCountInFastestDim,
1675 uint64_t valueCountInMiddleDim,
1676 uint64_t valueCountInSlowestDim,
1677 uint64_t offsetInFastestDim,
1678 uint64_t offsetInMiddleDim,
1679 uint64_t offsetInSlowestDim
1680 ) const;
1681
1682 protected:
1683
1689 DLL_IMPORT_OR_EXPORT AbstractValuesProperty(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) : AbstractProperty(partialObject) {}
1690
1696
1702 AbstractValuesProperty(gsoap_resqml2_0_1::resqml20__AbstractValuesProperty* fromGsoap) : RESQML2_NS::AbstractProperty(fromGsoap) {}
1703 AbstractValuesProperty(gsoap_eml2_3::resqml22__AbstractValuesProperty* fromGsoap) : RESQML2_NS::AbstractProperty(fromGsoap) {}
1704
1716 EML2_NS::AbstractHdfProxy* getDatasetOfPatch(uint64_t patchIndex, int64_t & nullValue, std::string & dsPath) const final;
1717
1727 COMMON_NS::DataObjectReference getHdfProxyDor(uint64_t patchIndex) const final;
1728
1760 void setValuesOfHdf5ArrayOfValues(
1761 COMMON_NS::AbstractObject::numericalDatatypeEnum datatype,
1762 void const* values,
1763 uint64_t const * numValues,
1764 uint64_t const * offsetValues,
1765 unsigned int numArrayDimensions,
1766 EML2_NS::AbstractHdfProxy* proxy = nullptr,
1767 uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)());
1768
1769 // Need to dll export because it is called in a template implementation
1770 DLL_IMPORT_OR_EXPORT void pushBackArrayOfValues(const void* values, COMMON_NS::AbstractObject::numericalDatatypeEnum numericalDatatype, const uint64_t* numValues, unsigned int numDimensionsInArray,
1771 EML2_NS::AbstractHdfProxy* proxy, int64_t nullValue);
1772
1773 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::NumberArrayStatistics<int8_t> getInt8Statistics(uint64_t patchIndex) const {
1774 auto nullValue = getNullValueOfPatch(patchIndex);
1775 if (nullValue > (std::numeric_limits<int8_t>::max)() || nullValue < (std::numeric_limits<int8_t>::min)()) {
1776 nullValue = (std::numeric_limits<int8_t>::max)();
1777 }
1778 COMMON_NS::NumberArrayStatistics<int8_t> result;
1779 result.setNullValue(static_cast<int8_t>(nullValue));
1780 return result;
1781 }
1782 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::NumberArrayStatistics<uint8_t> getUInt8Statistics(uint64_t patchIndex) const {
1783 auto nullValue = getNullValueOfPatch(patchIndex);
1784 if (nullValue > (std::numeric_limits<uint8_t>::max)() || nullValue < 0) {
1785 nullValue = (std::numeric_limits<uint8_t>::max)();
1786 }
1787 COMMON_NS::NumberArrayStatistics<uint8_t> result;
1788 result.setNullValue(static_cast<uint8_t>(nullValue));
1789 return result;
1790 }
1791 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::NumberArrayStatistics<int16_t> getInt16Statistics(uint64_t patchIndex) const {
1792 auto nullValue = getNullValueOfPatch(patchIndex);
1793 if (nullValue > (std::numeric_limits<int16_t>::max)() || nullValue < (std::numeric_limits<int16_t>::min)()) {
1794 nullValue = (std::numeric_limits<int16_t>::max)();
1795 }
1796 COMMON_NS::NumberArrayStatistics<int16_t> result;
1797 result.setNullValue(static_cast<int16_t>(nullValue));
1798 return result;
1799 }
1800 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::NumberArrayStatistics<uint16_t> getUInt16Statistics(uint64_t patchIndex) const {
1801 auto nullValue = getNullValueOfPatch(patchIndex);
1802 if (nullValue > (std::numeric_limits<uint16_t>::max)() || nullValue < 0) {
1803 nullValue = (std::numeric_limits<uint16_t>::max)();
1804 }
1805 COMMON_NS::NumberArrayStatistics<uint16_t> result;
1806 result.setNullValue(static_cast<uint16_t>(nullValue));
1807 return result;
1808 }
1809 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::NumberArrayStatistics<int32_t> getInt32Statistics(uint64_t patchIndex) const {
1810 auto nullValue = getNullValueOfPatch(patchIndex);
1811 if (nullValue > (std::numeric_limits<int32_t>::max)() || nullValue < (std::numeric_limits<int32_t>::min)()) {
1812 nullValue = (std::numeric_limits<int32_t>::max)();
1813 }
1814 COMMON_NS::NumberArrayStatistics<int32_t> result;
1815 result.setNullValue(static_cast<int32_t>(nullValue));
1816 return result;
1817 }
1818 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::NumberArrayStatistics<uint32_t> getUInt32Statistics(uint64_t patchIndex) const {
1819 auto nullValue = getNullValueOfPatch(patchIndex);
1820 if (nullValue > (std::numeric_limits<uint32_t>::max)() || nullValue < 0) {
1821 nullValue = (std::numeric_limits<uint32_t>::max)();
1822 }
1823 COMMON_NS::NumberArrayStatistics<uint32_t> result;
1824 result.setNullValue(static_cast<uint32_t>(nullValue));
1825 return result;
1826 }
1827 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::NumberArrayStatistics<int64_t> getInt64Statistics(uint64_t patchIndex) const {
1828 COMMON_NS::NumberArrayStatistics<int64_t> result;
1829 result.setNullValue(getNullValueOfPatch(patchIndex));
1830 return result;
1831 }
1832 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::NumberArrayStatistics<uint64_t> getUInt64Statistics(uint64_t patchIndex) const {
1833 COMMON_NS::NumberArrayStatistics<uint64_t> result;
1834 result.setNullValue(getNullValueOfPatch(patchIndex));
1835 return result;
1836 }
1837 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::NumberArrayStatistics<float> getFloatStatistics(uint64_t) const { return COMMON_NS::NumberArrayStatistics<float>(); }
1838 DLL_IMPORT_OR_EXPORT virtual COMMON_NS::NumberArrayStatistics<double> getDoubleStatistics(uint64_t) const { return COMMON_NS::NumberArrayStatistics<double>(); }
1839
1840 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__IntegerArrayStatistics* createIntegerArrayStatisticsFrom(const COMMON_NS::NumberArrayStatistics<int8_t>& stats, size_t index);
1841 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__IntegerArrayStatistics* createIntegerArrayStatisticsFrom(const COMMON_NS::NumberArrayStatistics<uint8_t>& stats, size_t index);
1842 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__IntegerArrayStatistics* createIntegerArrayStatisticsFrom(const COMMON_NS::NumberArrayStatistics<int16_t>& stats, size_t index);
1843 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__IntegerArrayStatistics* createIntegerArrayStatisticsFrom(const COMMON_NS::NumberArrayStatistics<uint16_t>& stats, size_t index);
1844 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__IntegerArrayStatistics* createIntegerArrayStatisticsFrom(const COMMON_NS::NumberArrayStatistics<int32_t>& stats, size_t index);
1845 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__IntegerArrayStatistics* createIntegerArrayStatisticsFrom(const COMMON_NS::NumberArrayStatistics<uint32_t>& stats, size_t index);
1846 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__IntegerArrayStatistics* createIntegerArrayStatisticsFrom(const COMMON_NS::NumberArrayStatistics<int64_t>& stats, size_t index);
1847 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__IntegerArrayStatistics* createIntegerArrayStatisticsFrom(const COMMON_NS::NumberArrayStatistics<uint64_t>& stats, size_t index);
1848 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__FloatingPointArrayStatistics* createFloatingPointArrayStatisticsFrom(const COMMON_NS::NumberArrayStatistics<float>& stats, size_t index);
1849 DLL_IMPORT_OR_EXPORT gsoap_eml2_3::eml23__FloatingPointArrayStatistics* createFloatingPointArrayStatisticsFrom(const COMMON_NS::NumberArrayStatistics<double>& stats, size_t index);
1850
1851 template<typename T>
1852 void setStatistics(const COMMON_NS::NumberArrayStatistics<T>& stats, size_t patchIndex) {
1853 cannotBePartial();
1854
1855 if (gsoapProxy2_0_1 != nullptr) {
1856 if (gsoapProxy2_0_1->soap_type() == SOAP_TYPE_gsoap_resqml2_0_1_resqml20__obj_USCOREContinuousProperty) {
1857 gsoap_resqml2_0_1::_resqml20__ContinuousProperty* prop = static_cast<gsoap_resqml2_0_1::_resqml20__ContinuousProperty*>(gsoapProxy2_0_1);
1858 for (size_t i = 0; i < stats.getMinimumSize(); ++i) {
1859 const auto minStat = stats.getMinimum(i);
1860 if (prop->MinimumValue.size() > i) {
1861 if (minStat == minStat && prop->MinimumValue[i] > minStat) {
1862 prop->MinimumValue[i] = minStat;
1863 }
1864 }
1865 else {
1866 prop->MinimumValue.push_back(minStat);
1867 }
1868 }
1869 for (size_t i = 0; i < stats.getMaximumSize(); ++i) {
1870 const auto maxStat = stats.getMaximum(i);
1871 if (prop->MaximumValue.size() > i) {
1872 if (maxStat == maxStat && prop->MaximumValue[i] < maxStat) {
1873 prop->MaximumValue[i] = maxStat;
1874 }
1875 }
1876 else {
1877 prop->MaximumValue.push_back(maxStat);
1878 }
1879 }
1880 }
1881 else if (gsoapProxy2_0_1->soap_type() == SOAP_TYPE_gsoap_resqml2_0_1_resqml20__obj_USCOREDiscreteProperty) {
1882 gsoap_resqml2_0_1::_resqml20__DiscreteProperty* prop = static_cast<gsoap_resqml2_0_1::_resqml20__DiscreteProperty*>(gsoapProxy2_0_1);
1883 for (size_t i = 0; i < stats.getMinimumSize(); ++i) {
1884 const auto minStat = stats.getMinimum(i);
1885 if (prop->MinimumValue.size() > i) {
1886 if (minStat == minStat && prop->MinimumValue[i] > minStat) {
1887 prop->MinimumValue[i] = minStat;
1888 }
1889 }
1890 else {
1891 prop->MinimumValue.push_back(minStat);
1892 }
1893 }
1894 for (size_t i = 0; i < stats.getMaximumSize(); ++i) {
1895 const auto maxStat = stats.getMaximum(i);
1896 if (prop->MaximumValue.size() > i) {
1897 if (maxStat == maxStat && prop->MaximumValue[i] < maxStat) {
1898 prop->MaximumValue[i] = maxStat;
1899 }
1900 }
1901 else {
1902 prop->MaximumValue.push_back(maxStat);
1903 }
1904 }
1905 }
1906 else {
1907 throw std::invalid_argument("In RESQML 2.0.1, only continuous and discrete properties can transfer only minimum and maximum values");
1908 }
1909 }
1910 else if (gsoapProxy2_3 != nullptr) {
1911 const auto valuePerIndexableElement = getValueCountPerIndexableElement();
1912 gsoap_eml2_3::resqml22__AbstractValuesProperty* prop = static_cast<gsoap_eml2_3::resqml22__AbstractValuesProperty*>(gsoapProxy2_3);
1913 if (auto* integerArray = dynamic_cast<gsoap_eml2_3::eml23__AbstractIntegerArray*>(prop->ValuesForPatch.at(patchIndex))) {
1914 if constexpr (std::is_integral_v<T>) {
1915 integerArray->Statistics.clear();
1916 for (size_t i = 0; i < valuePerIndexableElement; ++i) {
1917 integerArray->Statistics.push_back(createIntegerArrayStatisticsFrom(stats, i));
1918 }
1919 }
1920 }
1921 else if (auto* floatingPointArray = dynamic_cast<gsoap_eml2_3::eml23__AbstractFloatingPointArray*>(prop->ValuesForPatch.at(patchIndex))) {
1922 if constexpr (std::is_floating_point_v<T>) {
1923 floatingPointArray->Statistics.clear();
1924 for (size_t i = 0; i < valuePerIndexableElement; ++i) {
1925 floatingPointArray->Statistics.push_back(createFloatingPointArrayStatisticsFrom(stats, i));
1926 }
1927 }
1928 }
1929 else {
1930 throw std::invalid_argument("In RESQML 2.2, only floating point and integer property array of values can haev statistics");
1931 }
1932 }
1933 else {
1934 throw std::logic_error("Only RESQML 2.2 and 2.0.1 are supported for now.");
1935 }
1936 }
1937 };
1938
1939 template<> DLL_IMPORT_OR_EXPORT void AbstractValuesProperty::pushBackArrayOfValues<int8_t>(const int8_t* values, const uint64_t* numValues, unsigned int numDimensionsInArray,
1940 EML2_NS::AbstractHdfProxy* proxy, int8_t nullValue);
1941 template<> DLL_IMPORT_OR_EXPORT void AbstractValuesProperty::pushBackArrayOfValues<uint8_t>(const uint8_t* values, const uint64_t* numValues, unsigned int numDimensionsInArray,
1942 EML2_NS::AbstractHdfProxy* proxy, uint8_t nullValue);
1943 template<> DLL_IMPORT_OR_EXPORT void AbstractValuesProperty::pushBackArrayOfValues<int16_t>(const int16_t* values, const uint64_t* numValues, unsigned int numDimensionsInArray,
1944 EML2_NS::AbstractHdfProxy* proxy, int16_t nullValue);
1945 template<> DLL_IMPORT_OR_EXPORT void AbstractValuesProperty::pushBackArrayOfValues<uint16_t>(const uint16_t* values, const uint64_t* numValues, unsigned int numDimensionsInArray,
1946 EML2_NS::AbstractHdfProxy* proxy, uint16_t nullValue);
1947 template<> DLL_IMPORT_OR_EXPORT void AbstractValuesProperty::pushBackArrayOfValues<int32_t>(const int32_t* values, const uint64_t* numValues, unsigned int numDimensionsInArray,
1948 EML2_NS::AbstractHdfProxy* proxy, int32_t nullValue);
1949 template<> DLL_IMPORT_OR_EXPORT void AbstractValuesProperty::pushBackArrayOfValues<uint32_t>(const uint32_t* values, const uint64_t* numValues, unsigned int numDimensionsInArray,
1950 EML2_NS::AbstractHdfProxy* proxy, uint32_t nullValue);
1951 template<> DLL_IMPORT_OR_EXPORT void AbstractValuesProperty::pushBackArrayOfValues<int64_t>(const int64_t* values, const uint64_t* numValues, unsigned int numDimensionsInArray,
1952 EML2_NS::AbstractHdfProxy* proxy, int64_t nullValue);
1953 template<> DLL_IMPORT_OR_EXPORT void AbstractValuesProperty::pushBackArrayOfValues<uint64_t>(const uint64_t* values, const uint64_t* numValues, unsigned int numDimensionsInArray,
1954 EML2_NS::AbstractHdfProxy* proxy, uint64_t nullValue);
1955 template<> DLL_IMPORT_OR_EXPORT void AbstractValuesProperty::pushBackArrayOfValues<float>(const float* values, const uint64_t* numValues, unsigned int numDimensionsInArray,
1956 EML2_NS::AbstractHdfProxy* proxy, float nullValue);
1957 template<> DLL_IMPORT_OR_EXPORT void AbstractValuesProperty::pushBackArrayOfValues<double>(const double* values, const uint64_t* numValues, unsigned int numDimensionsInArray,
1958 EML2_NS::AbstractHdfProxy* proxy, double nullValue);
1959
1960 template<> DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<int8_t> AbstractValuesProperty::getStatistics<int8_t>(uint64_t patchIndex) const;
1961 template<> DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<uint8_t> AbstractValuesProperty::getStatistics<uint8_t>(uint64_t patchIndex) const;
1962 template<> DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<int16_t> AbstractValuesProperty::getStatistics<int16_t>(uint64_t patchIndex) const;
1963 template<> DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<uint16_t> AbstractValuesProperty::getStatistics<uint16_t>(uint64_t patchIndex) const;
1964 template<> DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<int32_t> AbstractValuesProperty::getStatistics<int32_t>(uint64_t patchIndex) const;
1965 template<> DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<uint32_t> AbstractValuesProperty::getStatistics<uint32_t>(uint64_t patchIndex) const;
1966 template<> DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<int64_t> AbstractValuesProperty::getStatistics<int64_t>(uint64_t patchIndex) const;
1967 template<> DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<uint64_t> AbstractValuesProperty::getStatistics<uint64_t>(uint64_t patchIndex) const;
1968 template<> DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<float> AbstractValuesProperty::getStatistics<float>(uint64_t patchIndex) const;
1969 template<> DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<double> AbstractValuesProperty::getStatistics<double>(uint64_t patchIndex) const;
1970}
numericalDatatypeEnum
Definition AbstractObject.h:41
uint64_t getValuesCountOfPatch(uint64_t patchIndex) const
uint64_t getValueCountPerIndexableElement() const
Proxy class for an abstract values property.
Definition AbstractValuesProperty.h:32
void pushBackInt8Hdf5Array2dOfValues(const int8_t *values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy, int8_t nullValue)
void pushBackArray2dOfValues(const T *values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy=nullptr, T nullValue=(std::numeric_limits< T >::max)())
Adds a 2d array of explicit values to the property values.
Definition AbstractValuesProperty.h:177
double getDoubleConstantValuesOfPatch(uint64_t patchIndex) const
virtual void pushBackInt32Hdf5ArrayOfValues(const int *values, const uint64_t *numValues, unsigned int numDimensionsInArray, eml2::AbstractHdfProxy *proxy, int nullValue)
virtual void pushBackInt16Hdf5ArrayOfValues(const short *values, const uint64_t *numValues, unsigned int numDimensionsInArray, eml2::AbstractHdfProxy *proxy, short nullValue)
virtual std::string pushBackRefToExistingIntegerDataset(eml2::AbstractHdfProxy *hdfProxy, const std::string &dataset="", int64_t nullValue=(std::numeric_limits< int64_t >::max)())
void pushBackFloatingPointConstantArrayOfValues(double value, uint64_t valueCount)
Adds an array constant flaoting point values to the property values.
void setValuesOfInt64Hdf5Array3dOfValues(int64_t const *values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, uint64_t offsetInFastestDim, uint64_t offsetInMiddleDim, uint64_t offsetInSlowestDim, eml2::AbstractHdfProxy *proxy=nullptr, uint64_t patchIndex=(std::numeric_limits< uint64_t >::max)())
Definition AbstractValuesProperty.h:1193
void pushBackInt64Hdf5Array2dOfValues(const int64_t *values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy, int64_t nullValue)
Adds a 2d array of explicit int values to the property values.
int64_t getInt64ConstantValuesOfPatch(uint64_t patchIndex) const
virtual void pushBackUInt16Hdf5ArrayOfValues(const unsigned short *values, const uint64_t *numValues, unsigned int numDimensionsInArray, eml2::AbstractHdfProxy *proxy, unsigned short nullValue)
void pushBackUInt16Hdf5Array2dOfValues(const unsigned short *values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy, unsigned short nullValue)
void pushBackArray1dOfValues(const T *values, uint64_t valueCount, eml2::AbstractHdfProxy *proxy=nullptr, T nullValue=(std::numeric_limits< T >::max)())
Adds a 1d array of explicit values to the property values.
Definition AbstractValuesProperty.h:146
void pushBackInt32Hdf5Array2dOfValues(const int *values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy, int nullValue)
void pushBackDoubleHdf5Array2dOfValues(const double *values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy=nullptr)
Adds a 2d array of explicit double values to the property values.
void pushBackDoubleHdf5Array1dOfValues(const double *values, uint64_t valueCount, eml2::AbstractHdfProxy *proxy=nullptr)
Adds a 1d array of explicit double values to the property values.
void pushBackDoubleHdf5ArrayOfValues(double const *values, uint64_t const *numValues, unsigned int numArrayDimensions, eml2::AbstractHdfProxy *proxy=nullptr)
Adds an nd array of explicit double values to the property values.
void pushBackInt16Hdf5Array2dOfValues(const short *values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy, short nullValue)
void pushBackInt8Hdf5Array3dOfValues(const int8_t *values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy, int8_t nullValue)
gsoap_eml2_3::eml23__FacetKind getFacetKind(uint64_t index) const
std::enable_if_t< std::is_arithmetic_v< T >, void > pushBackArrayOfValues(const T *values, const uint64_t *numValues, uint32_t numDimensionsInArray, eml2::AbstractHdfProxy *proxy=nullptr, T nullValue=(std::numeric_limits< T >::max)())
Adds a nd array of explicit values to the property values.
void getFloatValuesOfPatch(uint64_t patchIndex, float *values, uint64_t const *numValuesInEachDimension, uint64_t const *offsetInEachDimension, unsigned int numArrayDimensions) const
void pushBackInt64Hdf5Array3dOfValues(const int64_t *values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy, int64_t nullValue)
Adds a 3d array of explicit int values to the property values.
void pushBackFloatHdf5Array3dOfValues(const float *values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy=nullptr)
void setValuesOfInt64Hdf5ArrayOfValues(int64_t const *values, uint64_t const *numValues, uint64_t const *offsetValues, unsigned int numArrayDimensions, eml2::AbstractHdfProxy *proxy=nullptr, uint64_t patchIndex=(std::numeric_limits< uint64_t >::max)())
Definition AbstractValuesProperty.h:786
void pushBackFloatHdf5Array1dOfValues(const float *values, uint64_t valueCount, eml2::AbstractHdfProxy *proxy=nullptr)
void pushBackInt64Hdf5Array1dOfValues(const int64_t *values, uint64_t valueCount, eml2::AbstractHdfProxy *proxy, int64_t nullValue)
Adds a 1d array of explicit int values to the property values.
int64_t getNullValueOfPatch(uint64_t patchIndex) const
void pushBackDoubleHdf5Array3dOfValues(const double *values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy=nullptr)
Adds a 3d array of explicit double values to the property values.
void pushBackFacet(gsoap_eml2_3::eml23__FacetKind facet, const std::string &facetValue)
void pushBackIntegerConstantArrayOfValues(int64_t value, uint64_t valueCount)
Adds an array constant integer values to the property values.
void pushBackFloatHdf5Array2dOfValues(const float *values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy=nullptr)
virtual std::string pushBackRefToExistingFloatingPointDataset(eml2::AbstractHdfProxy *proxy, const std::string &datasetName="")
virtual void pushBackInt64Hdf5ArrayOfValues(const int64_t *values, const uint64_t *numValues, unsigned int numDimensionsInArray, eml2::AbstractHdfProxy *proxy, int64_t nullValue)
Adds an nd array of explicit int values to the property values.
void setValuesOfInt64Hdf5Array2dOfValues(int64_t const *values, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, uint64_t offsetInFastestDim, uint64_t offsetInSlowestDim, eml2::AbstractHdfProxy *proxy=nullptr, uint64_t patchIndex=(std::numeric_limits< uint64_t >::max)())
Definition AbstractValuesProperty.h:1036
std::string getFacetValue(uint64_t index) const
void pushBackUInt16Hdf5Array3dOfValues(const unsigned short *values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy, unsigned short nullValue)
void pushBackInt32Hdf5Array3dOfValues(const int *values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy, int nullValue)
bool hasConstantValues(uint64_t patchIndex) const
common::NumberArrayStatistics< T > getArrayOfValuesOfPatch(uint64_t patchIndex, T *values, bool forceStatisticsComputation=false) const
Definition AbstractValuesProperty.h:238
void pushBackInt16Hdf5Array3dOfValues(const short *values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy, short nullValue)
void pushBackInt16Hdf5Array1dOfValues(const short *values, uint64_t valueCount, eml2::AbstractHdfProxy *proxy, short nullValue)
common::AbstractObject::numericalDatatypeEnum getValuesHdfDatatype() const final
void pushBackHdf5Array3dOfValues(common::AbstractObject::numericalDatatypeEnum datatype, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, int64_t nullValue=(std::numeric_limits< int64_t >::max)(), eml2::AbstractHdfProxy *proxy=nullptr)
void pushBackInt8Hdf5Array1dOfValues(const int8_t *values, uint64_t valueCount, eml2::AbstractHdfProxy *proxy, int8_t nullValue)
void pushBackFloatHdf5ArrayOfValues(float const *values, uint64_t const *numValues, unsigned int numArrayDimensions, eml2::AbstractHdfProxy *proxy=nullptr)
int32_t getIntValuesOfPatch(uint64_t patchIndex, int32_t *values, const uint64_t *numValuesInEachDimension, const uint64_t *offsetInEachDimension, unsigned int numArrayDimensions) const
virtual ~AbstractValuesProperty()=default
void pushBackInt32Hdf5Array1dOfValues(const int *values, uint64_t valueCount, eml2::AbstractHdfProxy *proxy, int nullValue)
void pushBackHdf5Array1dOfValues(common::AbstractObject::numericalDatatypeEnum datatype, uint64_t valueCount, int64_t nullValue=(std::numeric_limits< int64_t >::max)(), eml2::AbstractHdfProxy *proxy=nullptr)
void pushBackHdf5ArrayOfValues(common::AbstractObject::numericalDatatypeEnum datatype, uint64_t const *numValues, unsigned int numArrayDimensions, int64_t nullValue=(std::numeric_limits< int64_t >::max)(), eml2::AbstractHdfProxy *proxy=nullptr)
virtual void pushBackInt8Hdf5ArrayOfValues(const int8_t *values, const uint64_t *numValues, unsigned int numDimensionsInArray, eml2::AbstractHdfProxy *proxy, int8_t nullValue)
void getFloatValuesOf3dPatch(uint64_t patchIndex, float *values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, uint64_t offsetInFastestDim, uint64_t offsetInMiddleDim, uint64_t offsetInSlowestDim) const
uint64_t getPatchCount() const final
void getIntValuesOf3dPatch(uint64_t patchIndex, int32_t *values, unsigned int valueCountInFastestDim, unsigned int valueCountInMiddleDim, unsigned int valueCountInSlowestDim, unsigned int offsetInFastestDim, unsigned int offsetInMiddleDim, unsigned int offsetInSlowestDim) const
void pushBackArray3dOfValues(const T *values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, eml2::AbstractHdfProxy *proxy=nullptr, T nullValue=(std::numeric_limits< T >::max)())
Adds a 3d array of explicit values to the property values.
Definition AbstractValuesProperty.h:211
void setValuesOfInt64Hdf5Array1dOfValues(int64_t const *values, uint64_t valueCount, uint64_t offset, eml2::AbstractHdfProxy *proxy=nullptr, uint64_t patchIndex=(std::numeric_limits< uint64_t >::max)())
Definition AbstractValuesProperty.h:923
std::vector< uint32_t > getValuesCountPerDimensionOfPatch(uint64_t patchIndex) const final
void pushBackHdf5Array2dOfValues(common::AbstractObject::numericalDatatypeEnum datatype, uint64_t valueCountInFastestDim, uint64_t valueCountInSlowestDim, int64_t nullValue=(std::numeric_limits< int64_t >::max)(), eml2::AbstractHdfProxy *proxy=nullptr)
void getInt64ValuesOf3dPatch(uint64_t patchIndex, int64_t *values, uint64_t valueCountInFastestDim, uint64_t valueCountInMiddleDim, uint64_t valueCountInSlowestDim, uint64_t offsetInFastestDim, uint64_t offsetInMiddleDim, uint64_t offsetInSlowestDim) const
void getInt64ValuesOfPatch(uint64_t patchIndex, int64_t *values, uint64_t const *numValuesInEachDimension, uint64_t const *offsetInEachDimension, unsigned int numArrayDimensions) const
The statistics namespace.