first compilation

This commit is contained in:
Baudouin Raoult 2023-06-26 18:20:47 +01:00
parent 40d5223973
commit 54ea111b28
5 changed files with 592 additions and 10 deletions

View File

@ -399,6 +399,449 @@ list( APPEND eccodes_extra_src_files
grib_bits_ibmpow_opt.cc
minmax_val.cc )
list( APPEND eccodes_src_files
converted/eccodes/accessor/Long.cc
converted/eccodes/accessor/Dictionary.cc
converted/eccodes/accessor/Time.h
converted/eccodes/accessor/Divdouble.h
converted/eccodes/accessor/Generic.h
converted/eccodes/accessor/ApplyOperators.h
converted/eccodes/accessor/DataG2shsimplePacking.h
converted/eccodes/accessor/G1HalfByteCodeflag.cc
converted/eccodes/accessor/Size.h
converted/eccodes/accessor/OctetNumber.h
converted/eccodes/accessor/UnpackBufrValues.h
converted/eccodes/accessor/Bytes.cc
converted/eccodes/accessor/G1forecastmonth.cc
converted/eccodes/accessor/SectionPadding.cc
converted/eccodes/accessor/ValidityTime.cc
converted/eccodes/accessor/Box.h
converted/eccodes/accessor/G1monthlydate.h
converted/eccodes/accessor/GdsNotPresentBitmap.cc
converted/eccodes/accessor/Concept.h
converted/eccodes/accessor/NonAlpha.h
converted/eccodes/accessor/Padtomultiple.h
converted/eccodes/accessor/AbstractVector.h
converted/eccodes/accessor/BufrExtractSubsets.cc
converted/eccodes/accessor/Array.cc
converted/eccodes/accessor/SimplePackingError.cc
converted/eccodes/accessor/GdsIsPresent.h
converted/eccodes/accessor/Sexagesimal2decimal.h
converted/eccodes/accessor/Scale.h
converted/eccodes/accessor/Int64LittleEndian.cc
converted/eccodes/accessor/ChangeAlternativeRowScanning.h
converted/eccodes/accessor/Constant.cc
converted/eccodes/accessor/NonAlpha.cc
converted/eccodes/accessor/G1forecastmonth.h
converted/eccodes/accessor/Uint32LittleEndian.h
converted/eccodes/accessor/DataPngPacking.cc
converted/eccodes/accessor/ChangeScanningDirection.cc
converted/eccodes/accessor/FromScaleFactorScaledValue.cc
converted/eccodes/accessor/Evaluate.cc
converted/eccodes/accessor/DataG1secondaryBitmap.cc
converted/eccodes/accessor/G2MarsLabeling.h
converted/eccodes/accessor/When.cc
converted/eccodes/accessor/OctahedralGaussian.h
converted/eccodes/accessor/Budgdate.h
converted/eccodes/accessor/Uint32LittleEndian.cc
converted/eccodes/accessor/Statistics.cc
converted/eccodes/accessor/Data2orderPacking.cc
converted/eccodes/accessor/Latitudes.h
converted/eccodes/accessor/BufrSimpleThinning.h
converted/eccodes/accessor/BufrExtractAreaSubsets.h
converted/eccodes/accessor/OctetNumber.cc
converted/eccodes/accessor/Latlonvalues.h
converted/eccodes/accessor/BufrStringValues.cc
converted/eccodes/accessor/Bitmap.cc
converted/eccodes/accessor/CodetableTitle.h
converted/eccodes/accessor/Double.cc
converted/eccodes/accessor/Sum.cc
converted/eccodes/accessor/DataG2complexPacking.cc
converted/eccodes/accessor/Latlonvalues.cc
converted/eccodes/accessor/StepInUnits.h
converted/eccodes/accessor/Label.h
converted/eccodes/accessor/G1endOfIntervalMonthly.h
converted/eccodes/accessor/G2level.cc
converted/eccodes/accessor/DataDummyField.h
converted/eccodes/accessor/MarsParam.cc
converted/eccodes/accessor/Md5.cc
converted/eccodes/accessor/BufrElementsTable.cc
converted/eccodes/accessor/Laplacian.h
converted/eccodes/accessor/DataShUnpacked.cc
converted/eccodes/accessor/DataApplyBoustrophedonic.cc
converted/eccodes/accessor/FromScaleFactorScaledValue.h
converted/eccodes/accessor/G2Chemical.cc
converted/eccodes/accessor/Sexagesimal2decimal.cc
converted/eccodes/accessor/DataApplyBitmap.h
converted/eccodes/accessor/UnsignedBits.cc
converted/eccodes/accessor/G2bitmapPresent.h
converted/eccodes/accessor/GtsHeader.h
converted/eccodes/accessor/IfsParam.cc
converted/eccodes/accessor/SpectralTruncation.cc
converted/eccodes/accessor/HashArray.h
converted/eccodes/accessor/Nearest.cc
converted/eccodes/accessor/G2bitmap.cc
converted/eccodes/accessor/HashArray.cc
converted/eccodes/accessor/LocalDefinition.h
converted/eccodes/accessor/Budgdate.cc
converted/eccodes/accessor/DataSecondaryBitmap.h
converted/eccodes/accessor/ChangeAlternativeRowScanning.cc
converted/eccodes/accessor/BufrDataElement.h
converted/eccodes/accessor/ValidityDate.h
converted/eccodes/accessor/NumberOfValuesDataRawPacking.cc
converted/eccodes/accessor/DataG1secondOrderGeneralPacking.h
converted/eccodes/accessor/SectionPointer.cc
converted/eccodes/accessor/Int8.cc
converted/eccodes/accessor/DataSimplePacking.cc
converted/eccodes/accessor/CountTotal.h
converted/eccodes/accessor/G2date.cc
converted/eccodes/accessor/ToString.h
converted/eccodes/accessor/LongVector.cc
converted/eccodes/accessor/DataG2simplePacking.h
converted/eccodes/accessor/Int64.h
converted/eccodes/accessor/GdsIsPresent.cc
converted/eccodes/accessor/G2lon.h
converted/eccodes/accessor/SectionPointer.h
converted/eccodes/accessor/ScaleValues.cc
converted/eccodes/accessor/DataShPacked.h
converted/eccodes/accessor/Scale.cc
converted/eccodes/accessor/BufrDataArray.h
converted/eccodes/accessor/SectionPadding.h
converted/eccodes/accessor/OffsetFile.h
converted/eccodes/accessor/Blob.cc
converted/eccodes/accessor/Codetable.h
converted/eccodes/accessor/Padding.cc
converted/eccodes/accessor/Int16LittleEndian.h
converted/eccodes/accessor/Unsigned.h
converted/eccodes/accessor/DataG1secondOrderConstantWidthPacking.cc
converted/eccodes/accessor/NumberOfCodedValues.cc
converted/eccodes/accessor/DataApplyGdsnotpresent.cc
converted/eccodes/accessor/UnexpandedDescriptors.h
converted/eccodes/accessor/Ksec1expver.h
converted/eccodes/accessor/Int32LittleEndian.h
converted/eccodes/accessor/Times.h
converted/eccodes/accessor/DataG1simplePacking.cc
converted/eccodes/accessor/Round.cc
converted/eccodes/accessor/Uint32.h
converted/eccodes/accessor/DataApplyBoustrophedonicBitmap.cc
converted/eccodes/accessor/OffsetValues.h
converted/eccodes/accessor/DecimalPrecision.h
converted/eccodes/accessor/CheckInternalVersion.cc
converted/eccodes/accessor/Blob.h
converted/eccodes/accessor/Getenv.cc
converted/eccodes/accessor/Codeflag.cc
converted/eccodes/accessor/SecondOrderBitsPerValue.h
converted/eccodes/accessor/Int16.h
converted/eccodes/accessor/Uint64.cc
converted/eccodes/accessor/BufrdcExpandedDescriptors.cc
converted/eccodes/accessor/Nearest.h
converted/eccodes/accessor/GdsNotPresentBitmap.h
converted/eccodes/accessor/UnsignedBits.h
converted/eccodes/accessor/DataRawPacking.h
converted/eccodes/accessor/G2stepRange.h
converted/eccodes/accessor/Iterator.cc
converted/eccodes/accessor/BufrExtractSubsets.h
converted/eccodes/accessor/DataG1secondOrderConstantWidthPacking.h
converted/eccodes/accessor/GlobalGaussian.h
converted/eccodes/accessor/Constant.h
converted/eccodes/accessor/Round.h
converted/eccodes/accessor/ScaleValues.h
converted/eccodes/accessor/GaussianGridName.h
converted/eccodes/accessor/Variable.cc
converted/eccodes/accessor/Md5.h
converted/eccodes/accessor/Signed.cc
converted/eccodes/accessor/PackBufrValues.cc
converted/eccodes/accessor/GaussianGridName.cc
converted/eccodes/accessor/DataApplyBitmap.cc
converted/eccodes/accessor/CountTotal.cc
converted/eccodes/accessor/Int16LittleEndian.cc
converted/eccodes/accessor/Pad.cc
converted/eccodes/accessor/SmartTable.h
converted/eccodes/accessor/DataG2simplePackingWithPreprocessing.cc
converted/eccodes/accessor/G1dayOfTheYearDate.h
converted/eccodes/accessor/IfsParam.h
converted/eccodes/accessor/SectionLength.cc
converted/eccodes/accessor/Pad.h
converted/eccodes/accessor/LatlonIncrement.cc
converted/eccodes/accessor/Data2orderPacking.h
converted/eccodes/accessor/Divdouble.cc
converted/eccodes/accessor/ToInteger.h
converted/eccodes/accessor/Bit.h
converted/eccodes/accessor/Codetable.cc
converted/eccodes/accessor/Group.cc
converted/eccodes/accessor/DataG1secondOrderGeneralExtendedPacking.cc
converted/eccodes/accessor/Int16.cc
converted/eccodes/accessor/SmartTableColumn.cc
converted/eccodes/accessor/DataRawPacking.cc
converted/eccodes/accessor/StepHumanReadable.h
converted/eccodes/accessor/DataSecondaryBitmap.cc
converted/eccodes/accessor/GtsHeader.cc
converted/eccodes/accessor/Forward.cc
converted/eccodes/accessor/DataPngPacking.h
converted/eccodes/accessor/MarsParam.h
converted/eccodes/accessor/Message.h
converted/eccodes/accessor/AbstractLongVector.cc
converted/eccodes/accessor/MarsStep.h
converted/eccodes/accessor/CountMissing.cc
converted/eccodes/accessor/BufrDataElement.cc
converted/eccodes/accessor/ExpandedDescriptors.h
converted/eccodes/accessor/DataG2complexPacking.h
converted/eccodes/accessor/Trim.h
converted/eccodes/accessor/Transient.h
converted/eccodes/accessor/G2Chemical.h
converted/eccodes/accessor/Transient.cc
converted/eccodes/accessor/Longitudes.cc
converted/eccodes/accessor/Long.h
converted/eccodes/accessor/CodetableUnits.cc
converted/eccodes/accessor/Bit.cc
converted/eccodes/accessor/Int32.cc
converted/eccodes/accessor/Variable.h
converted/eccodes/accessor/DataG1secondOrderGeneralPacking.cc
converted/eccodes/accessor/G1fcperiod.cc
converted/eccodes/accessor/Uint16LittleEndian.h
converted/eccodes/accessor/Section.h
converted/eccodes/accessor/ReferenceValueError.cc
converted/eccodes/accessor/ValidityTime.h
converted/eccodes/accessor/TransientDarray.cc
converted/eccodes/accessor/DecimalPrecision.cc
converted/eccodes/accessor/GlobalGaussian.cc
converted/eccodes/accessor/Sprintf.cc
converted/eccodes/accessor/TransientDarray.h
converted/eccodes/accessor/Padtoeven.cc
converted/eccodes/accessor/Position.cc
converted/eccodes/accessor/G1numberOfCodedValuesShComplex.h
converted/eccodes/accessor/DataG2secondaryBitmap.cc
converted/eccodes/accessor/BufrGroup.h
converted/eccodes/accessor/DataShPacked.cc
converted/eccodes/accessor/Suppressed.h
converted/eccodes/accessor/LibraryVersion.cc
converted/eccodes/accessor/DataG1secondaryBitmap.h
converted/eccodes/accessor/DataG1simplePacking.h
converted/eccodes/accessor/G2MarsLabeling.cc
converted/eccodes/accessor/ProjString.cc
converted/eccodes/accessor/StepHumanReadable.cc
converted/eccodes/accessor/DataApplyGdsnotpresent.h
converted/eccodes/accessor/Ibmfloat.h
converted/eccodes/accessor/Label.cc
converted/eccodes/accessor/Concept.cc
converted/eccodes/accessor/ToDouble.h
converted/eccodes/accessor/G1verificationdate.h
converted/eccodes/accessor/ClosestDate.cc
converted/eccodes/accessor/Missing.h
converted/eccodes/accessor/Uint16LittleEndian.cc
converted/eccodes/accessor/DataShsimplePacking.h
converted/eccodes/accessor/LongVector.h
converted/eccodes/accessor/CountFile.h
converted/eccodes/accessor/Ascii.h
converted/eccodes/accessor/BufrStringValues.h
converted/eccodes/accessor/OffsetValues.cc
converted/eccodes/accessor/Int32.h
converted/eccodes/accessor/ChangeScanningDirection.h
converted/eccodes/accessor/Spd.cc
converted/eccodes/accessor/Sum.h
converted/eccodes/accessor/G2bitmap.h
converted/eccodes/accessor/G1numberOfCodedValuesShSimple.cc
converted/eccodes/accessor/NumberOfCodedValues.h
converted/eccodes/accessor/Values.h
converted/eccodes/accessor/Lookup.cc
converted/eccodes/accessor/Generic.cc
converted/eccodes/accessor/Padto.cc
converted/eccodes/accessor/G1fcperiod.h
converted/eccodes/accessor/Latitudes.cc
converted/eccodes/accessor/G2date.h
converted/eccodes/accessor/G1numberOfCodedValuesShSimple.h
converted/eccodes/accessor/Uint16.h
converted/eccodes/accessor/DataG2bifourierPacking.cc
converted/eccodes/accessor/BufrExtractDatetimeSubsets.cc
converted/eccodes/accessor/BufrSimpleThinning.cc
converted/eccodes/accessor/G1HalfByteCodeflag.h
converted/eccodes/accessor/StepInUnits.cc
converted/eccodes/accessor/Element.h
converted/eccodes/accessor/BitsPerValue.cc
converted/eccodes/accessor/G2level.h
converted/eccodes/accessor/DataG1secondOrderRowByRowPacking.h
converted/eccodes/accessor/DataSimplePacking.h
converted/eccodes/accessor/Dictionary.h
converted/eccodes/accessor/G2stepRange.cc
converted/eccodes/accessor/Group.h
converted/eccodes/accessor/DataComplexPacking.cc
converted/eccodes/accessor/G1numberOfCodedValuesShComplex.cc
converted/eccodes/accessor/G2latlon.h
converted/eccodes/accessor/G1bitmap.cc
converted/eccodes/accessor/OctahedralGaussian.cc
converted/eccodes/accessor/G1area.cc
converted/eccodes/accessor/Int64.cc
converted/eccodes/accessor/G2lon.cc
converted/eccodes/accessor/Ascii.cc
converted/eccodes/accessor/G1date.cc
converted/eccodes/accessor/Trim.cc
converted/eccodes/accessor/Laplacian.cc
converted/eccodes/accessor/Uint64LittleEndian.h
converted/eccodes/accessor/RdbtimeGuessDate.h
converted/eccodes/accessor/Section.cc
converted/eccodes/accessor/ToString.cc
converted/eccodes/accessor/Statistics.h
converted/eccodes/accessor/ToDouble.cc
converted/eccodes/accessor/G1stepRange.h
converted/eccodes/accessor/ExpandedDescriptors.cc
converted/eccodes/accessor/Assert.cc
converted/eccodes/accessor/G1MessageLength.cc
converted/eccodes/accessor/NumberOfPoints.h
converted/eccodes/accessor/DataG1secondOrderGeneralExtendedPacking.h
converted/eccodes/accessor/When.h
converted/eccodes/accessor/G2grid.h
converted/eccodes/accessor/JulianDay.cc
converted/eccodes/accessor/Times.cc
converted/eccodes/accessor/Ibmfloat.cc
converted/eccodes/accessor/Array.h
converted/eccodes/accessor/Size.cc
converted/eccodes/accessor/MarsStep.cc
converted/eccodes/accessor/Bytes.h
converted/eccodes/accessor/DataApplyBoustrophedonicBitmap.h
converted/eccodes/accessor/DataG2secondaryBitmap.h
converted/eccodes/accessor/Dirty.h
converted/eccodes/accessor/Padto.h
converted/eccodes/accessor/Raw.h
converted/eccodes/accessor/UnpackBufrValues.cc
converted/eccodes/accessor/Unsigned.cc
converted/eccodes/accessor/Suppressed.cc
converted/eccodes/accessor/Element.cc
converted/eccodes/accessor/G1Section4Length.h
converted/eccodes/accessor/ClosestDate.h
converted/eccodes/accessor/Lookup.h
converted/eccodes/accessor/BufrExtractDatetimeSubsets.h
converted/eccodes/accessor/AbstractLongVector.h
converted/eccodes/accessor/Codeflag.h
converted/eccodes/accessor/G1verificationdate.cc
converted/eccodes/accessor/Uint16.cc
converted/eccodes/accessor/G1Section4Length.cc
converted/eccodes/accessor/JulianDate.h
converted/eccodes/accessor/BufrdcExpandedDescriptors.h
converted/eccodes/accessor/DataComplexPacking.h
converted/eccodes/accessor/Double.h
converted/eccodes/accessor/DataJpeg2000Packing.cc
converted/eccodes/accessor/Message.cc
converted/eccodes/accessor/DataG1shsimplePacking.cc
converted/eccodes/accessor/G2endStep.cc
converted/eccodes/accessor/BufrElementsTable.h
converted/eccodes/accessor/DataRunLengthPacking.cc
converted/eccodes/accessor/Padtomultiple.cc
converted/eccodes/accessor/SelectStepTemplate.cc
converted/eccodes/accessor/G2Aerosol.h
converted/eccodes/accessor/PackBufrValues.h
converted/eccodes/accessor/G1monthlydate.cc
converted/eccodes/accessor/Uint32.cc
converted/eccodes/accessor/ApplyOperators.cc
converted/eccodes/accessor/CodetableTitle.cc
converted/eccodes/accessor/DataRunLengthPacking.h
converted/eccodes/accessor/BufrDataArray.cc
converted/eccodes/accessor/SmartTable.cc
converted/eccodes/accessor/Longitudes.h
converted/eccodes/accessor/ProjString.h
converted/eccodes/accessor/Bits.cc
converted/eccodes/accessor/G1endOfIntervalMonthly.cc
converted/eccodes/accessor/BitsPerValue.h
converted/eccodes/accessor/DataApplyBoustrophedonic.h
converted/eccodes/accessor/G2grid.cc
converted/eccodes/accessor/G1date.h
converted/eccodes/accessor/DataG1complexPacking.h
converted/eccodes/accessor/DataG22orderPacking.cc
converted/eccodes/accessor/Signed.h
converted/eccodes/accessor/DataCcsdsPacking.cc
converted/eccodes/accessor/MessageCopy.h
converted/eccodes/accessor/Uint64LittleEndian.cc
converted/eccodes/accessor/Evaluate.h
converted/eccodes/accessor/Box.cc
converted/eccodes/accessor/CheckInternalVersion.h
converted/eccodes/accessor/Missing.cc
converted/eccodes/accessor/UnexpandedDescriptors.cc
converted/eccodes/accessor/CodetableUnits.h
converted/eccodes/accessor/G2Eps.cc
converted/eccodes/accessor/DataShsimplePacking.cc
converted/eccodes/accessor/DataG1complexPacking.cc
converted/eccodes/accessor/Int32LittleEndian.cc
converted/eccodes/accessor/Padtoeven.h
converted/eccodes/accessor/BufrExtractAreaSubsets.cc
converted/eccodes/accessor/LibraryVersion.h
converted/eccodes/accessor/DataShUnpacked.h
converted/eccodes/accessor/SignedBits.cc
converted/eccodes/accessor/OffsetFile.cc
converted/eccodes/accessor/G2latlon.cc
converted/eccodes/accessor/ReferenceValueError.h
converted/eccodes/accessor/DataG1shsimplePacking.h
converted/eccodes/accessor/RdbtimeGuessDate.cc
converted/eccodes/accessor/DataDummyField.cc
converted/eccodes/accessor/DataG1secondOrderRowByRowPacking.cc
converted/eccodes/accessor/AbstractVector.cc
converted/eccodes/accessor/DataG2shsimplePacking.cc
converted/eccodes/accessor/Time.cc
converted/eccodes/accessor/G2bitmapPresent.cc
converted/eccodes/accessor/HeadersOnly.cc
converted/eccodes/accessor/G1bitmap.h
converted/eccodes/accessor/SmartTableColumn.h
converted/eccodes/accessor/Vector.h
converted/eccodes/accessor/NumberOfPointsGaussian.cc
converted/eccodes/accessor/Bitmap.h
converted/eccodes/accessor/DataG2bifourierPacking.h
converted/eccodes/accessor/ToInteger.cc
converted/eccodes/accessor/JulianDay.h
converted/eccodes/accessor/Assert.h
converted/eccodes/accessor/CountFile.cc
converted/eccodes/accessor/StatisticsSpectral.h
converted/eccodes/accessor/G1stepRange.cc
converted/eccodes/accessor/Spd.h
converted/eccodes/accessor/NumberOfValues.h
converted/eccodes/accessor/SimplePackingError.h
converted/eccodes/accessor/G1MessageLength.h
converted/eccodes/accessor/LocalDefinition.cc
converted/eccodes/accessor/NumberOfValuesDataRawPacking.h
converted/eccodes/accessor/Dirty.cc
converted/eccodes/accessor/ValidityDate.cc
converted/eccodes/accessor/SpectralTruncation.h
converted/eccodes/accessor/Iterator.h
converted/eccodes/accessor/StatisticsSpectral.cc
converted/eccodes/accessor/SignedBits.h
converted/eccodes/accessor/DataCcsdsPacking.h
converted/eccodes/accessor/Sprintf.h
converted/eccodes/accessor/JulianDate.cc
converted/eccodes/accessor/Raw.cc
converted/eccodes/accessor/G1area.h
converted/eccodes/accessor/Position.h
converted/eccodes/accessor/DataG2simplePacking.cc
converted/eccodes/accessor/Getenv.h
converted/eccodes/accessor/Uint8.h
converted/eccodes/accessor/DataG22orderPacking.h
converted/eccodes/accessor/G2Eps.h
converted/eccodes/accessor/NumberOfPointsGaussian.h
converted/eccodes/accessor/Uint64.h
converted/eccodes/accessor/Ksec1expver.cc
converted/eccodes/accessor/Ieeefloat.h
converted/eccodes/accessor/Values.cc
converted/eccodes/accessor/Int64LittleEndian.h
converted/eccodes/accessor/DataJpeg2000Packing.h
converted/eccodes/accessor/BufrGroup.cc
converted/eccodes/accessor/NumberOfValues.cc
converted/eccodes/accessor/MessageCopy.cc
converted/eccodes/accessor/LatlonIncrement.h
converted/eccodes/accessor/G2Aerosol.cc
converted/eccodes/accessor/NumberOfPoints.cc
converted/eccodes/accessor/Bits.h
converted/eccodes/accessor/CountMissing.h
converted/eccodes/accessor/Uint8.cc
converted/eccodes/accessor/Padding.h
converted/eccodes/accessor/HeadersOnly.h
converted/eccodes/accessor/Vector.cc
converted/eccodes/accessor/Ieeefloat.cc
converted/eccodes/accessor/G1dayOfTheYearDate.cc
converted/eccodes/accessor/SectionLength.h
converted/eccodes/accessor/Forward.h
converted/eccodes/accessor/Int8.h
converted/eccodes/accessor/SecondOrderBitsPerValue.cc
converted/eccodes/accessor/DataG2simplePackingWithPreprocessing.h
converted/eccodes/accessor/SelectStepTemplate.h
converted/eccodes/accessor/G2endStep.h
)
if(UNIX)
ecbuild_get_date(eccodes_BUILD_DATE)
endif()

View File

@ -57,6 +57,8 @@ class Method:
name = bits[-1]
self.args_list.append((type, name))
self.call_args = ", ".join([n for _, n in self.args_list[1:]])
def add_line(self, line):
self.lines.append(line)
@ -117,8 +119,10 @@ class Class:
self.body_includes = includes
if SUPER:
self.super, _ = self.tidy_class_name(SUPER[0])
self.src = args.target
else:
self.super, _ = self.tidy_class_name(class_)
self.src = 'cpp'
self.members = [Member(m) for m in MEMBERS if m != ""]
@ -135,7 +139,7 @@ class Class:
)
]
init = [p for p in inherited_procs.values() if p.name == "init"]
self.constructor = init[0] if init else Method("init", "void", "void")
self.constructor = init[0] if init else Method("init", "void", "grib_accessor* a, const long length, grib_arguments* args")
init = [p for p in inherited_procs.values() if p.name == "destroy"]
self.destructor = init[0] if init else Method("init", "void", "void")
@ -189,7 +193,7 @@ class Class:
destructor=self.destructor,
namespaces=self.namespaces,
namespace_reversed=reversed(self.namespaces),
include_super="/".join(self.namespaces + [f"{self.super}.h"]),
include_super="/".join([self.src] + self.namespaces + [f"{self.super}.h"]),
),
)
@ -223,7 +227,7 @@ class Class:
destructor=self.destructor,
namespaces=self.namespaces,
namespace_reversed=reversed(self.namespaces),
include_header="/".join(self.namespaces + [f"{self.name}.h"]),
include_header="/".join([self.src] +self.namespaces + [f"{self.name}.h"]),
top_level=self.top_level,
factory_name=self.factory_name,
)
@ -288,6 +292,9 @@ class Accessor(Class):
r"\bgrib_byte_offset\((\w+)\s*\)": r"\1->byte_offset()",
r"\bgrib_byte_count\((\w+)\s*\)": r"\1->byte_count()",
r"\bgrib_pack_string\((\w+)\s*,": r"\1->pack_string(",
r"\bgrib_pack_long\((\w+)\s*,": r"\1->pack_long(",
r"\bgrib_unpack_long\((\w+)\s*,": r"\1->unpack_long(",
r"\bgrib_value_count\((\w+)\s*,": r"\1->value_count(",
r"\bDebugAssert\b": "ASSERT",
r"\bAssert\b": "ASSERT",
r"\bunpack_long\(this,": "this->unpack_long(",

View File

@ -0,0 +1,129 @@
/*
* (C) Copyright 2005- ECMWF.
*
* This software is licensed under the terms of the Apache Licence Version 2.0
* which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
*
* In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
#include <cstddef>
#include <iostream>
#include "grib_api_internal.h"
namespace eccodes
{
namespace accessor
{
// Should not be here
class EccodesException : public std::exception{
int code_;
public:
EccodesException(int code) : code_(code) {}
int code() const { return code_; }
};
class Accessor /* eckit non copyable : public Accessor */
{
protected:
Accessor(const long len, grib_arguments* param);
virtual ~Accessor();
private:
// Inherited methods
virtual void dump(grib_dumper* dumper) const =0;
virtual long next_offset() const =0;
virtual int value_count(long* count) const =0;
virtual size_t string_length() const =0;
virtual long byte_count() const =0;
virtual int get_native_type() const =0;
virtual long byte_offset() const =0;
virtual int unpack_bytes(unsigned char* val, size_t* len) const =0;
virtual int clear() const =0;
virtual int unpack_long(long* v, size_t* len) const =0;
virtual int unpack_double(double* v, size_t* len) const =0;
virtual int unpack_float(float* v, size_t* len) const =0;
virtual int unpack_string(char* v, size_t* len) const =0;
virtual int unpack_string_array(char** v, size_t* len) const =0;
virtual int pack_expression(grib_expression* e) const =0;
virtual int pack_long(const long* v, size_t* len) const =0;
virtual int pack_double(const double* v, size_t* len) const =0;
virtual int pack_string_array(const char** v, size_t* len) const =0;
virtual int pack_string(const char* v, size_t* len) const =0;
virtual int pack_bytes(const unsigned char* val, size_t* len) const =0;
virtual grib_section* sub_section() const =0;
virtual int notify_change(grib_accessor* observed) const =0;
virtual void update_size(size_t s) const =0;
virtual grib_accessor* next(int mod) const =0;
virtual int compare(grib_accessor* b) const =0;
virtual size_t preferred_size(int from_handle) const =0;
virtual int is_missing() const =0;
virtual int unpack_double_element(size_t i, double* val) const =0;
virtual int unpack_double_element_set(const size_t* index_array, size_t len, double* val_array) const =0;
virtual int unpack_double_subarray(double* val, size_t start, size_t len) const =0;
virtual grib_accessor* make_clone(grib_section* s, int* err) const =0;
virtual void print(std::ostream& s) const =0;
// Missing from the original
virtual int pack_missing() const =0;
// Members
// friends
friend std::ostream& operator<<(std::ostream& s, const Accessor& p)
{
p.print(s);
return s;
}
// For now....
public:
grib_context *context_;
unsigned long flags_;
const char* name;
};
class AccessorFactory {
std::string name_;
virtual Accessor* make(long length, grib_arguments* args) = 0;
AccessorFactory(const AccessorFactory&) = delete;
AccessorFactory& operator=(const AccessorFactory&) = delete;
protected:
AccessorFactory(const std::string&);
virtual ~AccessorFactory();
public:
static const Accessor* build(long length, grib_arguments* args);
static void list(std::ostream&);
};
template <class T>
class AccessorMaker : public AccessorFactory {
Accessor* make(long length, grib_arguments* args) override { return new T(length, args); }
public:
AccessorMaker(const std::string& name) : AccessorFactory(name) {}
};
} // namespace accessor
} // namespace eccodes

View File

@ -32,13 +32,13 @@ static {{ m.result }} {{ m.name }}({{ m.args }}) const {
{% for line in top_level['init'] %}{{ line }}
{% endfor %}
{{ name }}({{constructor.args}}) {
{{ name }}::{{ name }}({{constructor.args}}) : {{ super }}({{ constructor.call_args }}){
{{ constructor.body }}
}
{% for line in top_level['destroy'] %}{{ line }}
{% endfor %}
~{{ name }}() {
{{ name }}::~{{ name }}() {
{{ destructor.body }}
}

View File

@ -20,19 +20,26 @@
class {{ name }} : public {{ super }} {
protected:
public:
{{ name }}({{constructor.args}});
virtual ~{{ name }}();
private:
// No copy allowed
{{ name }}(const {{ name }}&);
{{ name }}& operator=(const {{ name }}&);
protected:
// Inherited methods
// Protected for now
{% for m in inherited_methods %}
virtual {{ m.result }} {{ m.name }}({{ m.args }}) const override;{% endfor %}
virtual void print(std::ostream& s) const override;
private:
// Private methods
{% for m in private_methods %}
{{ m.result }} {{ m.name }}({{ m.args }}) const;{% endfor %}
@ -42,10 +49,6 @@ private:
{% for m in members %}{{ m.type }} {{ m.name }};
{% endfor %}
// friends
friend std::ostream& operator<<(std::ostream& s, const {{ name }}& p) { p.print(s); return s; }
};
{% for n in namespace_reversed %}} // namespace {{ n }}