diff --git a/src/accessor/grib_accessor.h b/src/accessor/grib_accessor.h index 7220e90e7..c18a355d2 100644 --- a/src/accessor/grib_accessor.h +++ b/src/accessor/grib_accessor.h @@ -10,8 +10,8 @@ #pragma once -#include "../grib_api_internal.h" -#include "../grib_value.h" +#include "grib_api_internal.h" +#include "grib_value.h" class grib_accessor { diff --git a/src/accessor/grib_accessor_class_abstract_long_vector.h b/src/accessor/grib_accessor_class_abstract_long_vector.h index 2961979d8..5c3c6b5f9 100644 --- a/src/accessor/grib_accessor_class_abstract_long_vector.h +++ b/src/accessor/grib_accessor_class_abstract_long_vector.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_abstract_long_vector_h #define eccodes_accessor_abstract_long_vector_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_abstract_long_vector_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_abstract_long_vector.h.bak b/src/accessor/grib_accessor_class_abstract_long_vector.h.bak new file mode 100644 index 000000000..2961979d8 --- /dev/null +++ b/src/accessor/grib_accessor_class_abstract_long_vector.h.bak @@ -0,0 +1,33 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_abstract_long_vector_h +#define eccodes_accessor_abstract_long_vector_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_abstract_long_vector_t : public grib_accessor_gen_t +{ +public: + /* Members defined in abstract_long_vector */ + long* v; + long pack_index; + int number_of_elements; +}; + +class grib_accessor_class_abstract_long_vector_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_abstract_long_vector_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_abstract_long_vector_t{}; } +}; +#endif /* eccodes_accessor_abstract_long_vector_h */ diff --git a/src/accessor/grib_accessor_class_abstract_vector.h b/src/accessor/grib_accessor_class_abstract_vector.h index df7e3fdbf..d1201ede7 100644 --- a/src/accessor/grib_accessor_class_abstract_vector.h +++ b/src/accessor/grib_accessor_class_abstract_vector.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_abstract_vector_h #define eccodes_accessor_abstract_vector_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_abstract_vector_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_abstract_vector.h.bak b/src/accessor/grib_accessor_class_abstract_vector.h.bak new file mode 100644 index 000000000..df7e3fdbf --- /dev/null +++ b/src/accessor/grib_accessor_class_abstract_vector.h.bak @@ -0,0 +1,32 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_abstract_vector_h +#define eccodes_accessor_abstract_vector_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_abstract_vector_t : public grib_accessor_double_t +{ +public: + /* Members defined in abstract_vector */ + double* v; + int number_of_elements; +}; + +class grib_accessor_class_abstract_vector_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_abstract_vector_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_abstract_vector_t{}; } +}; +#endif /* eccodes_accessor_abstract_vector_h */ diff --git a/src/accessor/grib_accessor_class_ascii.h b/src/accessor/grib_accessor_class_ascii.h index cb8e68bd7..ea00a247c 100644 --- a/src/accessor/grib_accessor_class_ascii.h +++ b/src/accessor/grib_accessor_class_ascii.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_ascii_h #define eccodes_accessor_ascii_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_ascii_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_ascii.h.bak b/src/accessor/grib_accessor_class_ascii.h.bak new file mode 100644 index 000000000..cb8e68bd7 --- /dev/null +++ b/src/accessor/grib_accessor_class_ascii.h.bak @@ -0,0 +1,42 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_ascii_h +#define eccodes_accessor_ascii_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_ascii_t : public grib_accessor_gen_t +{ +public: + /* Members defined in ascii */ +}; + +class grib_accessor_class_ascii_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_ascii_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_ascii_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int compare(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_ascii_h */ diff --git a/src/accessor/grib_accessor_class_bit.h b/src/accessor/grib_accessor_class_bit.h index 3a9eee2d7..28c001488 100644 --- a/src/accessor/grib_accessor_class_bit.h +++ b/src/accessor/grib_accessor_class_bit.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_bit_h #define eccodes_accessor_bit_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_bit_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_bit.h.bak b/src/accessor/grib_accessor_class_bit.h.bak new file mode 100644 index 000000000..3a9eee2d7 --- /dev/null +++ b/src/accessor/grib_accessor_class_bit.h.bak @@ -0,0 +1,35 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bit_h +#define eccodes_accessor_bit_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_bit_t : public grib_accessor_long_t +{ +public: + /* Members defined in bit */ + const char* owner; + int bit_index; +}; + +class grib_accessor_class_bit_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_bit_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bit_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_bit_h */ diff --git a/src/accessor/grib_accessor_class_bitmap.h b/src/accessor/grib_accessor_class_bitmap.h index d9b3ab9df..dd66d6256 100644 --- a/src/accessor/grib_accessor_class_bitmap.h +++ b/src/accessor/grib_accessor_class_bitmap.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_bitmap_h #define eccodes_accessor_bitmap_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_bytes.h" class grib_accessor_bitmap_t : public grib_accessor_bytes_t diff --git a/src/accessor/grib_accessor_class_bitmap.h.bak b/src/accessor/grib_accessor_class_bitmap.h.bak new file mode 100644 index 000000000..d9b3ab9df --- /dev/null +++ b/src/accessor/grib_accessor_class_bitmap.h.bak @@ -0,0 +1,45 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bitmap_h +#define eccodes_accessor_bitmap_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_bytes.h" + +class grib_accessor_bitmap_t : public grib_accessor_bytes_t +{ +public: + /* Members defined in bitmap */ + const char* tableReference; + const char* missing_value; + const char* offsetbsec; + const char* sLength; +}; + +class grib_accessor_class_bitmap_t : public grib_accessor_class_bytes_t +{ +public: + grib_accessor_class_bitmap_t(const char* name) : grib_accessor_class_bytes_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bitmap_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + long next_offset(grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void update_size(grib_accessor*, size_t) override; + int unpack_double_element(grib_accessor*, size_t i, double* val) override; + int unpack_double_element_set(grib_accessor*, const size_t* index_array, size_t len, double* val_array) override; +}; +#endif /* eccodes_accessor_bitmap_h */ diff --git a/src/accessor/grib_accessor_class_bits.h b/src/accessor/grib_accessor_class_bits.h index b5dd2977b..dccc43486 100644 --- a/src/accessor/grib_accessor_class_bits.h +++ b/src/accessor/grib_accessor_class_bits.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_bits_h #define eccodes_accessor_bits_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_bits_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_bits.h.bak b/src/accessor/grib_accessor_class_bits.h.bak new file mode 100644 index 000000000..b5dd2977b --- /dev/null +++ b/src/accessor/grib_accessor_class_bits.h.bak @@ -0,0 +1,45 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bits_h +#define eccodes_accessor_bits_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_bits_t : public grib_accessor_gen_t +{ +public: + /* Members defined in bits */ + const char* argument; + long start; + long len; + double referenceValue; + double referenceValuePresent; + double scale; +}; + +class grib_accessor_class_bits_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_bits_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bits_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_bytes(grib_accessor*, unsigned char*, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + long byte_count(grib_accessor*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_bits_h */ diff --git a/src/accessor/grib_accessor_class_bits_per_value.h b/src/accessor/grib_accessor_class_bits_per_value.h index 59514fc05..3d83e07e6 100644 --- a/src/accessor/grib_accessor_class_bits_per_value.h +++ b/src/accessor/grib_accessor_class_bits_per_value.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_bits_per_value_h #define eccodes_accessor_bits_per_value_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_bits_per_value_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_bits_per_value.h.bak b/src/accessor/grib_accessor_class_bits_per_value.h.bak new file mode 100644 index 000000000..59514fc05 --- /dev/null +++ b/src/accessor/grib_accessor_class_bits_per_value.h.bak @@ -0,0 +1,35 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bits_per_value_h +#define eccodes_accessor_bits_per_value_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_bits_per_value_t : public grib_accessor_long_t +{ +public: + /* Members defined in bits_per_value */ + const char* values; + const char* bits_per_value; +}; + +class grib_accessor_class_bits_per_value_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_bits_per_value_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bits_per_value_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_bits_per_value_h */ diff --git a/src/accessor/grib_accessor_class_blob.h b/src/accessor/grib_accessor_class_blob.h index a2da98a03..d0dc4b290 100644 --- a/src/accessor/grib_accessor_class_blob.h +++ b/src/accessor/grib_accessor_class_blob.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_blob_h #define eccodes_accessor_blob_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_blob_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_blob.h.bak b/src/accessor/grib_accessor_class_blob.h.bak new file mode 100644 index 000000000..a2da98a03 --- /dev/null +++ b/src/accessor/grib_accessor_class_blob.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_blob_h +#define eccodes_accessor_blob_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_blob_t : public grib_accessor_gen_t +{ +public: + /* Members defined in blob */ +}; + +class grib_accessor_class_blob_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_blob_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_blob_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_bytes(grib_accessor*, unsigned char*, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_blob_h */ diff --git a/src/accessor/grib_accessor_class_budgdate.h b/src/accessor/grib_accessor_class_budgdate.h index c3fc849c7..d5a75ffe1 100644 --- a/src/accessor/grib_accessor_class_budgdate.h +++ b/src/accessor/grib_accessor_class_budgdate.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_budgdate_h #define eccodes_accessor_budgdate_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_budgdate_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_budgdate.h.bak b/src/accessor/grib_accessor_class_budgdate.h.bak new file mode 100644 index 000000000..c3fc849c7 --- /dev/null +++ b/src/accessor/grib_accessor_class_budgdate.h.bak @@ -0,0 +1,36 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_budgdate_h +#define eccodes_accessor_budgdate_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_budgdate_t : public grib_accessor_long_t +{ +public: + /* Members defined in budgdate */ + const char* year; + const char* month; + const char* day; +}; + +class grib_accessor_class_budgdate_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_budgdate_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_budgdate_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_budgdate_h */ diff --git a/src/accessor/grib_accessor_class_bufr_data_array.h.bak b/src/accessor/grib_accessor_class_bufr_data_array.h.bak new file mode 100644 index 000000000..c6089fa63 --- /dev/null +++ b/src/accessor/grib_accessor_class_bufr_data_array.h.bak @@ -0,0 +1,92 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bufr_data_array_h +#define eccodes_accessor_bufr_data_array_h + +#include "grib_accessor_class_gen.h" + +class grib_accessor_bufr_data_array_t : public grib_accessor_gen_t +{ +public: + const char* bufrDataEncodedName; + const char* numberOfSubsetsName; + const char* expandedDescriptorsName; + const char* flagsName; + const char* unitsName; + const char* elementsDescriptorsIndexName; + const char* compressedDataName; + bufr_descriptors_array* expanded; + grib_accessor* expandedAccessor; + int* canBeMissing; + long numberOfSubsets; + long compressedData; + grib_vdarray* numericValues; + grib_vsarray* stringValues; + grib_viarray* elementsDescriptorsIndex; + int do_decode; + int bitmapStartElementsDescriptorsIndex; + int bitmapCurrentElementsDescriptorsIndex; + int bitmapSize; + int bitmapStart; + int bitmapCurrent; + grib_accessors_list* dataAccessors; + int unpackMode; + int bitsToEndData; + grib_section* dataKeys; + double* inputBitmap; + int nInputBitmap; + int iInputBitmap; + long* inputReplications; + int nInputReplications; + int iInputReplications; + long* inputExtendedReplications; + int nInputExtendedReplications; + int iInputExtendedReplications; + long* inputShortReplications; + int nInputShortReplications; + int iInputShortReplications; + grib_iarray* iss_list; + grib_trie_with_rank* dataAccessorsTrie; + grib_sarray* tempStrings; + grib_vdarray* tempDoubleValues; + int change_ref_value_operand; + size_t refValListSize; + long* refValList; + long refValIndex; + bufr_tableb_override* tableb_override; + int set_to_missing_if_out_of_range; +}; + +class grib_accessor_class_bufr_data_array_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_bufr_data_array_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bufr_data_array_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + long byte_count(grib_accessor*) override; + long byte_offset(grib_accessor*) override; + long next_offset(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; + +grib_vsarray* accessor_bufr_data_array_get_stringValues(grib_accessor* a); +grib_accessors_list* accessor_bufr_data_array_get_dataAccessors(grib_accessor* a); +grib_trie_with_rank* accessor_bufr_data_array_get_dataAccessorsTrie(grib_accessor* a); +void accessor_bufr_data_array_set_unpackMode(grib_accessor* a, int unpackMode); + +#endif /* eccodes_accessor_bufr_data_array_h */ diff --git a/src/accessor/grib_accessor_class_bufr_data_element.h b/src/accessor/grib_accessor_class_bufr_data_element.h index 6cba5b91c..a8766df47 100644 --- a/src/accessor/grib_accessor_class_bufr_data_element.h +++ b/src/accessor/grib_accessor_class_bufr_data_element.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_bufr_data_element_h #define eccodes_accessor_bufr_data_element_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_bufr_data_element_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_bufr_data_element.h.bak b/src/accessor/grib_accessor_class_bufr_data_element.h.bak new file mode 100644 index 000000000..6cba5b91c --- /dev/null +++ b/src/accessor/grib_accessor_class_bufr_data_element.h.bak @@ -0,0 +1,57 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bufr_data_element_h +#define eccodes_accessor_bufr_data_element_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_bufr_data_element_t : public grib_accessor_gen_t +{ +public: + /* Members defined in bufr_data_element */ + long index; + int type; + long compressedData; + long subsetNumber; + long numberOfSubsets; + bufr_descriptors_array* descriptors; + grib_vdarray* numericValues; + grib_vsarray* stringValues; + grib_viarray* elementsDescriptorsIndex; + char* cname; +}; + +class grib_accessor_class_bufr_data_element_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_bufr_data_element_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bufr_data_element_t{}; } + int get_native_type(grib_accessor*) override; + int pack_missing(grib_accessor*) override; + int is_missing(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int pack_string_array(grib_accessor*, const char**, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + int unpack_string_array(grib_accessor*, char**, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int unpack_double_element(grib_accessor*, size_t i, double* val) override; + grib_accessor* make_clone(grib_accessor*, grib_section*, int*) override; +}; +#endif /* eccodes_accessor_bufr_data_element_h */ diff --git a/src/accessor/grib_accessor_class_bufr_elements_table.h b/src/accessor/grib_accessor_class_bufr_elements_table.h index 8ddd8a824..1149b2ad3 100644 --- a/src/accessor/grib_accessor_class_bufr_elements_table.h +++ b/src/accessor/grib_accessor_class_bufr_elements_table.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_bufr_elements_table_h #define eccodes_accessor_bufr_elements_table_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_bufr_elements_table_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_bufr_elements_table.h.bak b/src/accessor/grib_accessor_class_bufr_elements_table.h.bak new file mode 100644 index 000000000..8ddd8a824 --- /dev/null +++ b/src/accessor/grib_accessor_class_bufr_elements_table.h.bak @@ -0,0 +1,39 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bufr_elements_table_h +#define eccodes_accessor_bufr_elements_table_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_bufr_elements_table_t : public grib_accessor_gen_t +{ +public: + /* Members defined in bufr_elements_table */ + const char* dictionary; + const char* masterDir; + const char* localDir; +}; + +class grib_accessor_class_bufr_elements_table_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_bufr_elements_table_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bufr_elements_table_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_bufr_elements_table_h */ diff --git a/src/accessor/grib_accessor_class_bufr_extract_area_subsets.h b/src/accessor/grib_accessor_class_bufr_extract_area_subsets.h index d079f958e..f2e8b0ba2 100644 --- a/src/accessor/grib_accessor_class_bufr_extract_area_subsets.h +++ b/src/accessor/grib_accessor_class_bufr_extract_area_subsets.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_bufr_extract_area_subsets_h #define eccodes_accessor_bufr_extract_area_subsets_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_bufr_extract_area_subsets_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_bufr_extract_area_subsets.h.bak b/src/accessor/grib_accessor_class_bufr_extract_area_subsets.h.bak new file mode 100644 index 000000000..d079f958e --- /dev/null +++ b/src/accessor/grib_accessor_class_bufr_extract_area_subsets.h.bak @@ -0,0 +1,43 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bufr_extract_area_subsets_h +#define eccodes_accessor_bufr_extract_area_subsets_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_bufr_extract_area_subsets_t : public grib_accessor_gen_t +{ +public: + /* Members defined in bufr_extract_area_subsets */ + const char* doExtractSubsets; + const char* numberOfSubsets; + const char* extractSubsetList; + const char* extractAreaWestLongitude; + const char* extractAreaEastLongitude; + const char* extractAreaNorthLatitude; + const char* extractAreaSouthLatitude; + const char* extractAreaLongitudeRank; + const char* extractAreaLatitudeRank; + const char* extractedAreaNumberOfSubsets; +}; + +class grib_accessor_class_bufr_extract_area_subsets_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_bufr_extract_area_subsets_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bufr_extract_area_subsets_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_bufr_extract_area_subsets_h */ diff --git a/src/accessor/grib_accessor_class_bufr_extract_datetime_subsets.h b/src/accessor/grib_accessor_class_bufr_extract_datetime_subsets.h index 7acfd35b3..3f7c505e0 100644 --- a/src/accessor/grib_accessor_class_bufr_extract_datetime_subsets.h +++ b/src/accessor/grib_accessor_class_bufr_extract_datetime_subsets.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_bufr_extract_datetime_subsets_h #define eccodes_accessor_bufr_extract_datetime_subsets_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_bufr_extract_datetime_subsets_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_bufr_extract_datetime_subsets.h.bak b/src/accessor/grib_accessor_class_bufr_extract_datetime_subsets.h.bak new file mode 100644 index 000000000..7acfd35b3 --- /dev/null +++ b/src/accessor/grib_accessor_class_bufr_extract_datetime_subsets.h.bak @@ -0,0 +1,36 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bufr_extract_datetime_subsets_h +#define eccodes_accessor_bufr_extract_datetime_subsets_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_bufr_extract_datetime_subsets_t : public grib_accessor_gen_t +{ +public: + /* Members defined in bufr_extract_datetime_subsets */ + const char* doExtractSubsets; + const char* numberOfSubsets; + const char* extractSubsetList; +}; + +class grib_accessor_class_bufr_extract_datetime_subsets_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_bufr_extract_datetime_subsets_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bufr_extract_datetime_subsets_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_bufr_extract_datetime_subsets_h */ diff --git a/src/accessor/grib_accessor_class_bufr_extract_subsets.h b/src/accessor/grib_accessor_class_bufr_extract_subsets.h index 80392338d..736206c08 100644 --- a/src/accessor/grib_accessor_class_bufr_extract_subsets.h +++ b/src/accessor/grib_accessor_class_bufr_extract_subsets.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_bufr_extract_subsets_h #define eccodes_accessor_bufr_extract_subsets_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_bufr_extract_subsets_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_bufr_extract_subsets.h.bak b/src/accessor/grib_accessor_class_bufr_extract_subsets.h.bak new file mode 100644 index 000000000..80392338d --- /dev/null +++ b/src/accessor/grib_accessor_class_bufr_extract_subsets.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bufr_extract_subsets_h +#define eccodes_accessor_bufr_extract_subsets_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_bufr_extract_subsets_t : public grib_accessor_gen_t +{ +public: + /* Members defined in bufr_extract_subsets */ + const char* numericValues; + const char* pack; + grib_accessor* numericValuesAccessor; + grib_accessor* packAccessor; +}; + +class grib_accessor_class_bufr_extract_subsets_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_bufr_extract_subsets_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bufr_extract_subsets_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_bufr_extract_subsets_h */ diff --git a/src/accessor/grib_accessor_class_bufr_group.h b/src/accessor/grib_accessor_class_bufr_group.h index 3bd71690f..c225cfe2d 100644 --- a/src/accessor/grib_accessor_class_bufr_group.h +++ b/src/accessor/grib_accessor_class_bufr_group.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_bufr_group_h #define eccodes_accessor_bufr_group_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_variable.h" class grib_accessor_bufr_group_t : public grib_accessor_variable_t diff --git a/src/accessor/grib_accessor_class_bufr_group.h.bak b/src/accessor/grib_accessor_class_bufr_group.h.bak new file mode 100644 index 000000000..3bd71690f --- /dev/null +++ b/src/accessor/grib_accessor_class_bufr_group.h.bak @@ -0,0 +1,32 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bufr_group_h +#define eccodes_accessor_bufr_group_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_variable.h" + +class grib_accessor_bufr_group_t : public grib_accessor_variable_t +{ +public: + /* Members defined in bufr_group */ +}; + +class grib_accessor_class_bufr_group_t : public grib_accessor_class_variable_t +{ +public: + grib_accessor_class_bufr_group_t(const char* name) : grib_accessor_class_variable_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bufr_group_t{}; } + void dump(grib_accessor*, grib_dumper*) override; + grib_accessor* next(grib_accessor* a, int explore) override; +}; +#endif /* eccodes_accessor_bufr_group_h */ diff --git a/src/accessor/grib_accessor_class_bufr_simple_thinning.h b/src/accessor/grib_accessor_class_bufr_simple_thinning.h index eb786f966..6971e5edb 100644 --- a/src/accessor/grib_accessor_class_bufr_simple_thinning.h +++ b/src/accessor/grib_accessor_class_bufr_simple_thinning.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_bufr_simple_thinning_h #define eccodes_accessor_bufr_simple_thinning_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_bufr_simple_thinning_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_bufr_simple_thinning.h.bak b/src/accessor/grib_accessor_class_bufr_simple_thinning.h.bak new file mode 100644 index 000000000..eb786f966 --- /dev/null +++ b/src/accessor/grib_accessor_class_bufr_simple_thinning.h.bak @@ -0,0 +1,39 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bufr_simple_thinning_h +#define eccodes_accessor_bufr_simple_thinning_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_bufr_simple_thinning_t : public grib_accessor_gen_t +{ +public: + /* Members defined in bufr_simple_thinning */ + const char* doExtractSubsets; + const char* numberOfSubsets; + const char* extractSubsetList; + const char* simpleThinningStart; + const char* simpleThinningMissingRadius; + const char* simpleThinningSkip; +}; + +class grib_accessor_class_bufr_simple_thinning_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_bufr_simple_thinning_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bufr_simple_thinning_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_bufr_simple_thinning_h */ diff --git a/src/accessor/grib_accessor_class_bufr_string_values.h b/src/accessor/grib_accessor_class_bufr_string_values.h index 9038a8d73..2262990a7 100644 --- a/src/accessor/grib_accessor_class_bufr_string_values.h +++ b/src/accessor/grib_accessor_class_bufr_string_values.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_bufr_string_values_h #define eccodes_accessor_bufr_string_values_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_ascii.h" class grib_accessor_bufr_string_values_t : public grib_accessor_ascii_t diff --git a/src/accessor/grib_accessor_class_bufr_string_values.h.bak b/src/accessor/grib_accessor_class_bufr_string_values.h.bak new file mode 100644 index 000000000..9038a8d73 --- /dev/null +++ b/src/accessor/grib_accessor_class_bufr_string_values.h.bak @@ -0,0 +1,38 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bufr_string_values_h +#define eccodes_accessor_bufr_string_values_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_ascii.h" + +class grib_accessor_bufr_string_values_t : public grib_accessor_ascii_t +{ +public: + /* Members defined in bufr_string_values */ + const char* dataAccessorName; + grib_accessor* dataAccessor; +}; + +class grib_accessor_class_bufr_string_values_t : public grib_accessor_class_ascii_t +{ +public: + grib_accessor_class_bufr_string_values_t(const char* name) : grib_accessor_class_ascii_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bufr_string_values_t{}; } + int unpack_string(grib_accessor*, char*, size_t* len) override; + int unpack_string_array(grib_accessor*, char**, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_bufr_string_values_h */ diff --git a/src/accessor/grib_accessor_class_bufrdc_expanded_descriptors.h b/src/accessor/grib_accessor_class_bufrdc_expanded_descriptors.h index 588f9d08b..9d8f551b2 100644 --- a/src/accessor/grib_accessor_class_bufrdc_expanded_descriptors.h +++ b/src/accessor/grib_accessor_class_bufrdc_expanded_descriptors.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_bufrdc_expanded_descriptors_h #define eccodes_accessor_bufrdc_expanded_descriptors_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_bufrdc_expanded_descriptors_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_bufrdc_expanded_descriptors.h.bak b/src/accessor/grib_accessor_class_bufrdc_expanded_descriptors.h.bak new file mode 100644 index 000000000..588f9d08b --- /dev/null +++ b/src/accessor/grib_accessor_class_bufrdc_expanded_descriptors.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bufrdc_expanded_descriptors_h +#define eccodes_accessor_bufrdc_expanded_descriptors_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_bufrdc_expanded_descriptors_t : public grib_accessor_long_t +{ +public: + /* Members defined in bufrdc_expanded_descriptors */ + const char* expandedDescriptors; + grib_accessor* expandedDescriptorsAccessor; +}; + +class grib_accessor_class_bufrdc_expanded_descriptors_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_bufrdc_expanded_descriptors_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bufrdc_expanded_descriptors_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string_array(grib_accessor*, char**, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_bufrdc_expanded_descriptors_h */ diff --git a/src/accessor/grib_accessor_class_bytes.h b/src/accessor/grib_accessor_class_bytes.h index 8204ceba7..ee72f13c3 100644 --- a/src/accessor/grib_accessor_class_bytes.h +++ b/src/accessor/grib_accessor_class_bytes.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_bytes_h #define eccodes_accessor_bytes_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_bytes_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_bytes.h.bak b/src/accessor/grib_accessor_class_bytes.h.bak new file mode 100644 index 000000000..8204ceba7 --- /dev/null +++ b/src/accessor/grib_accessor_class_bytes.h.bak @@ -0,0 +1,35 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_bytes_h +#define eccodes_accessor_bytes_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_bytes_t : public grib_accessor_gen_t +{ +public: + /* Members defined in bytes */ +}; + +class grib_accessor_class_bytes_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_bytes_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_bytes_t{}; } + int get_native_type(grib_accessor*) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int compare(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_bytes_h */ diff --git a/src/accessor/grib_accessor_class_change_alternative_row_scanning.h b/src/accessor/grib_accessor_class_change_alternative_row_scanning.h index c893e242f..3caca2a6b 100644 --- a/src/accessor/grib_accessor_class_change_alternative_row_scanning.h +++ b/src/accessor/grib_accessor_class_change_alternative_row_scanning.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_change_alternative_row_scanning_h #define eccodes_accessor_change_alternative_row_scanning_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_change_alternative_row_scanning_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_change_alternative_row_scanning.h.bak b/src/accessor/grib_accessor_class_change_alternative_row_scanning.h.bak new file mode 100644 index 000000000..c893e242f --- /dev/null +++ b/src/accessor/grib_accessor_class_change_alternative_row_scanning.h.bak @@ -0,0 +1,38 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_change_alternative_row_scanning_h +#define eccodes_accessor_change_alternative_row_scanning_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_change_alternative_row_scanning_t : public grib_accessor_gen_t +{ +public: + /* Members defined in change_alternative_row_scanning */ + const char* values; + const char* Ni; + const char* Nj; + const char* alternativeRowScanning; +}; + +class grib_accessor_class_change_alternative_row_scanning_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_change_alternative_row_scanning_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_change_alternative_row_scanning_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_change_alternative_row_scanning_h */ diff --git a/src/accessor/grib_accessor_class_change_scanning_direction.h b/src/accessor/grib_accessor_class_change_scanning_direction.h index 08f2ceb55..7d8ac8d6a 100644 --- a/src/accessor/grib_accessor_class_change_scanning_direction.h +++ b/src/accessor/grib_accessor_class_change_scanning_direction.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_change_scanning_direction_h #define eccodes_accessor_change_scanning_direction_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_change_scanning_direction_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_change_scanning_direction.h.bak b/src/accessor/grib_accessor_class_change_scanning_direction.h.bak new file mode 100644 index 000000000..08f2ceb55 --- /dev/null +++ b/src/accessor/grib_accessor_class_change_scanning_direction.h.bak @@ -0,0 +1,42 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_change_scanning_direction_h +#define eccodes_accessor_change_scanning_direction_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_change_scanning_direction_t : public grib_accessor_gen_t +{ +public: + /* Members defined in change_scanning_direction */ + const char* values; + const char* Ni; + const char* Nj; + const char* i_scans_negatively; + const char* j_scans_positively; + const char* first; + const char* last; + const char* axis; +}; + +class grib_accessor_class_change_scanning_direction_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_change_scanning_direction_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_change_scanning_direction_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_change_scanning_direction_h */ diff --git a/src/accessor/grib_accessor_class_check_internal_version.h b/src/accessor/grib_accessor_class_check_internal_version.h index 871f5a56e..222ec76ab 100644 --- a/src/accessor/grib_accessor_class_check_internal_version.h +++ b/src/accessor/grib_accessor_class_check_internal_version.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_check_internal_version_h #define eccodes_accessor_check_internal_version_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_ascii.h" class grib_accessor_check_internal_version_t : public grib_accessor_ascii_t diff --git a/src/accessor/grib_accessor_class_check_internal_version.h.bak b/src/accessor/grib_accessor_class_check_internal_version.h.bak new file mode 100644 index 000000000..871f5a56e --- /dev/null +++ b/src/accessor/grib_accessor_class_check_internal_version.h.bak @@ -0,0 +1,33 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_check_internal_version_h +#define eccodes_accessor_check_internal_version_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_ascii.h" + +class grib_accessor_check_internal_version_t : public grib_accessor_ascii_t +{ +public: + /* Members defined in check_internal_version */ +}; + +class grib_accessor_class_check_internal_version_t : public grib_accessor_class_ascii_t +{ +public: + grib_accessor_class_check_internal_version_t(const char* name) : grib_accessor_class_ascii_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_check_internal_version_t{}; } + size_t string_length(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_check_internal_version_h */ diff --git a/src/accessor/grib_accessor_class_closest_date.h b/src/accessor/grib_accessor_class_closest_date.h index b4fbace12..be6d3aa98 100644 --- a/src/accessor/grib_accessor_class_closest_date.h +++ b/src/accessor/grib_accessor_class_closest_date.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_closest_date_h #define eccodes_accessor_closest_date_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_closest_date_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_closest_date.h.bak b/src/accessor/grib_accessor_class_closest_date.h.bak new file mode 100644 index 000000000..b4fbace12 --- /dev/null +++ b/src/accessor/grib_accessor_class_closest_date.h.bak @@ -0,0 +1,43 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_closest_date_h +#define eccodes_accessor_closest_date_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_closest_date_t : public grib_accessor_double_t +{ +public: + /* Members defined in closest_date */ + const char *dateLocal; + const char *timeLocal; + const char *numForecasts; + const char *year; + const char *month; + const char *day; + const char *hour; + const char *minute; + const char *second; +}; + +class grib_accessor_class_closest_date_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_closest_date_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_closest_date_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_closest_date_h */ diff --git a/src/accessor/grib_accessor_class_codeflag.h b/src/accessor/grib_accessor_class_codeflag.h index 734369b74..f74af599a 100644 --- a/src/accessor/grib_accessor_class_codeflag.h +++ b/src/accessor/grib_accessor_class_codeflag.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_codeflag_h #define eccodes_accessor_codeflag_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_unsigned.h" class grib_accessor_codeflag_t : public grib_accessor_unsigned_t diff --git a/src/accessor/grib_accessor_class_codeflag.h.bak b/src/accessor/grib_accessor_class_codeflag.h.bak new file mode 100644 index 000000000..734369b74 --- /dev/null +++ b/src/accessor/grib_accessor_class_codeflag.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_codeflag_h +#define eccodes_accessor_codeflag_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_unsigned.h" + +class grib_accessor_codeflag_t : public grib_accessor_unsigned_t +{ +public: + /* Members defined in codeflag */ + const char* tablename; +}; + +class grib_accessor_class_codeflag_t : public grib_accessor_class_unsigned_t +{ +public: + grib_accessor_class_codeflag_t(const char* name) : grib_accessor_class_unsigned_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_codeflag_t{}; } + int value_count(grib_accessor*, long*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_codeflag_h */ diff --git a/src/accessor/grib_accessor_class_codetable.h b/src/accessor/grib_accessor_class_codetable.h index c77c6f72d..48ae07502 100644 --- a/src/accessor/grib_accessor_class_codetable.h +++ b/src/accessor/grib_accessor_class_codetable.h @@ -14,7 +14,7 @@ #pragma once -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_unsigned.h" #include diff --git a/src/accessor/grib_accessor_class_codetable.h.bak b/src/accessor/grib_accessor_class_codetable.h.bak new file mode 100644 index 000000000..c77c6f72d --- /dev/null +++ b/src/accessor/grib_accessor_class_codetable.h.bak @@ -0,0 +1,47 @@ +/* + * (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. + */ + +/***************************************** + * Enrico Fucile + ****************************************/ + +#pragma once + +#include "../grib_api_internal.h" +#include "grib_accessor_class_unsigned.h" +#include + + +class grib_accessor_codetable_t : public grib_accessor_unsigned_t +{ +public: + const char* tablename; + const char* masterDir; + const char* localDir; + grib_codetable* table; + int table_loaded; +}; + +class grib_accessor_class_codetable_t : public grib_accessor_class_unsigned_t +{ +public: + grib_accessor* create_empty_accessor() override { return new grib_accessor_codetable_t{}; } + grib_accessor_class_codetable_t(const char* name) : grib_accessor_class_unsigned_t(name) {} + int get_native_type(grib_accessor*) override; + int pack_missing(grib_accessor*) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int pack_expression(grib_accessor*, grib_expression*) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; diff --git a/src/accessor/grib_accessor_class_codetable_title.h b/src/accessor/grib_accessor_class_codetable_title.h index e115a9c28..873b3e0a1 100644 --- a/src/accessor/grib_accessor_class_codetable_title.h +++ b/src/accessor/grib_accessor_class_codetable_title.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_codetable_title_h #define eccodes_accessor_codetable_title_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_codetable_title_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_codetable_title.h.bak b/src/accessor/grib_accessor_class_codetable_title.h.bak new file mode 100644 index 000000000..e115a9c28 --- /dev/null +++ b/src/accessor/grib_accessor_class_codetable_title.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_codetable_title_h +#define eccodes_accessor_codetable_title_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_codetable_title_t : public grib_accessor_gen_t +{ +public: + /* Members defined in codetable_title */ + const char* codetable; +}; + +class grib_accessor_class_codetable_title_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_codetable_title_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_codetable_title_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_codetable_title_h */ diff --git a/src/accessor/grib_accessor_class_codetable_units.h b/src/accessor/grib_accessor_class_codetable_units.h index b5cfb75c8..913afb1d2 100644 --- a/src/accessor/grib_accessor_class_codetable_units.h +++ b/src/accessor/grib_accessor_class_codetable_units.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_codetable_units_h #define eccodes_accessor_codetable_units_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_codetable_units_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_codetable_units.h.bak b/src/accessor/grib_accessor_class_codetable_units.h.bak new file mode 100644 index 000000000..b5cfb75c8 --- /dev/null +++ b/src/accessor/grib_accessor_class_codetable_units.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_codetable_units_h +#define eccodes_accessor_codetable_units_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_codetable_units_t : public grib_accessor_gen_t +{ +public: + /* Members defined in codetable_units */ + const char* codetable; +}; + +class grib_accessor_class_codetable_units_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_codetable_units_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_codetable_units_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_codetable_units_h */ diff --git a/src/accessor/grib_accessor_class_concept.h b/src/accessor/grib_accessor_class_concept.h index 99405ed48..436e5b95e 100644 --- a/src/accessor/grib_accessor_class_concept.h +++ b/src/accessor/grib_accessor_class_concept.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_concept_h #define eccodes_accessor_concept_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_concept_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_concept.h.bak b/src/accessor/grib_accessor_class_concept.h.bak new file mode 100644 index 000000000..99405ed48 --- /dev/null +++ b/src/accessor/grib_accessor_class_concept.h.bak @@ -0,0 +1,43 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_concept_h +#define eccodes_accessor_concept_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_concept_t : public grib_accessor_gen_t +{ +public: + /* Members defined in concept */ +}; + +class grib_accessor_class_concept_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_concept_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_concept_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int compare(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_concept_h */ diff --git a/src/accessor/grib_accessor_class_constant.h b/src/accessor/grib_accessor_class_constant.h index 0c4944c68..029c51e79 100644 --- a/src/accessor/grib_accessor_class_constant.h +++ b/src/accessor/grib_accessor_class_constant.h @@ -13,7 +13,7 @@ * Enrico Fucile **************************************/ -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_variable.h" class grib_accessor_constant_t : public grib_accessor_variable_t {}; diff --git a/src/accessor/grib_accessor_class_constant.h.bak b/src/accessor/grib_accessor_class_constant.h.bak new file mode 100644 index 000000000..0c4944c68 --- /dev/null +++ b/src/accessor/grib_accessor_class_constant.h.bak @@ -0,0 +1,27 @@ +/* + * (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. + */ + + +/************************************* + * Enrico Fucile + **************************************/ + +#include "../grib_api_internal.h" +#include "grib_accessor_class_variable.h" + +class grib_accessor_constant_t : public grib_accessor_variable_t {}; + +class grib_accessor_class_constant_t : public grib_accessor_class_variable_t +{ +public: + grib_accessor_class_constant_t(const char* name) : grib_accessor_class_variable_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_constant_t{}; } + void init(grib_accessor*, const long, grib_arguments*) override; +}; diff --git a/src/accessor/grib_accessor_class_count_file.h b/src/accessor/grib_accessor_class_count_file.h index 4b9a0b4f0..fd2251045 100644 --- a/src/accessor/grib_accessor_class_count_file.h +++ b/src/accessor/grib_accessor_class_count_file.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_count_file_h #define eccodes_accessor_count_file_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_count_file_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_count_file.h.bak b/src/accessor/grib_accessor_class_count_file.h.bak new file mode 100644 index 000000000..4b9a0b4f0 --- /dev/null +++ b/src/accessor/grib_accessor_class_count_file.h.bak @@ -0,0 +1,32 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_count_file_h +#define eccodes_accessor_count_file_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_count_file_t : public grib_accessor_long_t +{ +public: + /* Members defined in count_file */ +}; + +class grib_accessor_class_count_file_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_count_file_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_count_file_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_count_file_h */ diff --git a/src/accessor/grib_accessor_class_count_missing.h b/src/accessor/grib_accessor_class_count_missing.h index fbf583109..d43c6f22e 100644 --- a/src/accessor/grib_accessor_class_count_missing.h +++ b/src/accessor/grib_accessor_class_count_missing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_count_missing_h #define eccodes_accessor_count_missing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_count_missing_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_count_missing.h.bak b/src/accessor/grib_accessor_class_count_missing.h.bak new file mode 100644 index 000000000..fbf583109 --- /dev/null +++ b/src/accessor/grib_accessor_class_count_missing.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_count_missing_h +#define eccodes_accessor_count_missing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_count_missing_t : public grib_accessor_long_t +{ +public: + /* Members defined in count_missing */ + const char* bitmap; + const char* unusedBitsInBitmap; + const char* numberOfDataPoints; + const char* missingValueManagementUsed; +}; + +class grib_accessor_class_count_missing_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_count_missing_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_count_missing_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_count_missing_h */ diff --git a/src/accessor/grib_accessor_class_count_total.h b/src/accessor/grib_accessor_class_count_total.h index ab044e8a9..9c242b5c6 100644 --- a/src/accessor/grib_accessor_class_count_total.h +++ b/src/accessor/grib_accessor_class_count_total.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_count_total_h #define eccodes_accessor_count_total_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_count_total_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_count_total.h.bak b/src/accessor/grib_accessor_class_count_total.h.bak new file mode 100644 index 000000000..ab044e8a9 --- /dev/null +++ b/src/accessor/grib_accessor_class_count_total.h.bak @@ -0,0 +1,32 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_count_total_h +#define eccodes_accessor_count_total_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_count_total_t : public grib_accessor_long_t +{ +public: + /* Members defined in count_total */ +}; + +class grib_accessor_class_count_total_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_count_total_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_count_total_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_count_total_h */ diff --git a/src/accessor/grib_accessor_class_data_apply_bitmap.h b/src/accessor/grib_accessor_class_data_apply_bitmap.h index b2516ec4e..9e5e2955e 100644 --- a/src/accessor/grib_accessor_class_data_apply_bitmap.h +++ b/src/accessor/grib_accessor_class_data_apply_bitmap.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_apply_bitmap_h #define eccodes_accessor_data_apply_bitmap_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_data_apply_bitmap_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_data_apply_bitmap.h.bak b/src/accessor/grib_accessor_class_data_apply_bitmap.h.bak new file mode 100644 index 000000000..b2516ec4e --- /dev/null +++ b/src/accessor/grib_accessor_class_data_apply_bitmap.h.bak @@ -0,0 +1,132 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_apply_bitmap_h +#define eccodes_accessor_data_apply_bitmap_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_data_apply_bitmap_t : public grib_accessor_gen_t +{ +public: + /* Members defined in data_apply_bitmap */ + const char* coded_values; + const char* bitmap; + const char* missing_value; + const char* number_of_data_points; + const char* number_of_values; + const char* binary_scale_factor; +}; + +class grib_accessor_class_data_apply_bitmap_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_data_apply_bitmap_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_apply_bitmap_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int compare(grib_accessor*, grib_accessor*) override; + int unpack_double_element(grib_accessor*, size_t i, double* val) override; + int unpack_double_element_set(grib_accessor*, const size_t* index_array, size_t len, double* val_array) override; + +private: + template int unpack(grib_accessor*, T*, size_t*); +}; + + +template +int grib_accessor_class_data_apply_bitmap_t::unpack(grib_accessor* a, T* val, size_t* len){ + static_assert(std::is_floating_point::value, "Requires floating point numbers"); + grib_accessor_data_apply_bitmap_t* self = (grib_accessor_data_apply_bitmap_t*)a; + + size_t i = 0; + size_t j = 0; + size_t n_vals = 0; + long nn = 0; + int err = 0; + size_t coded_n_vals = 0; + T* coded_vals = NULL; + double missing_value = 0; + + err = a->value_count(&nn); n_vals = nn; + if (err) + return err; + + if (!grib_find_accessor(grib_handle_of_accessor(a), self->bitmap)) + return grib_get_array(grib_handle_of_accessor(a), self->coded_values, val, len); + + if ((err = grib_get_size(grib_handle_of_accessor(a), self->coded_values, &coded_n_vals)) != GRIB_SUCCESS) + return err; + + if ((err = grib_get_double_internal(grib_handle_of_accessor(a), self->missing_value, &missing_value)) != GRIB_SUCCESS) + return err; + + if (*len < n_vals) { + *len = n_vals; + return GRIB_ARRAY_TOO_SMALL; + } + + if (coded_n_vals == 0) { + for (i = 0; i < n_vals; i++) + val[i] = missing_value; + + *len = n_vals; + return GRIB_SUCCESS; + } + + if ((err = grib_get_array_internal(grib_handle_of_accessor(a), self->bitmap, val, &n_vals)) != GRIB_SUCCESS) + return err; + + coded_vals = (T*)grib_context_malloc(a->context, coded_n_vals * sizeof(T)); + if (coded_vals == NULL) + return GRIB_OUT_OF_MEMORY; + + if ((err = grib_get_array(grib_handle_of_accessor(a), self->coded_values, coded_vals, &coded_n_vals)) != GRIB_SUCCESS) { + grib_context_free(a->context, coded_vals); + return err; + } + + grib_context_log(a->context, GRIB_LOG_DEBUG, + "grib_accessor_class_data_apply_bitmap: %s : creating %s, %d values", + __func__, + a->name, n_vals); + + for (i = 0; i < n_vals; i++) { + if (val[i] == 0) { + val[i] = missing_value; + } + else { + val[i] = coded_vals[j++]; + if (j > coded_n_vals) { + grib_context_free(a->context, coded_vals); + grib_context_log(a->context, GRIB_LOG_ERROR, + "grib_accessor_class_data_apply_bitmap [%s]:" + " %s : number of coded values does not match bitmap %ld %ld", + a->name, __func__, coded_n_vals, n_vals); + + return GRIB_ARRAY_TOO_SMALL; + } + } + } + + *len = n_vals; + + grib_context_free(a->context, coded_vals); + return err; +} + +#endif /* eccodes_accessor_data_apply_bitmap_h */ diff --git a/src/accessor/grib_accessor_class_data_apply_boustrophedonic.h.bak b/src/accessor/grib_accessor_class_data_apply_boustrophedonic.h.bak new file mode 100644 index 000000000..9b101e7ed --- /dev/null +++ b/src/accessor/grib_accessor_class_data_apply_boustrophedonic.h.bak @@ -0,0 +1,41 @@ + +/* + * (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. + */ + +#pragma once + +#include "grib_accessor_class_gen.h" + +class grib_accessor_data_apply_boustrophedonic_t : public grib_accessor_gen_t +{ +public: + /* Members defined in data_apply_boustrophedonic */ + const char* values; + const char* numberOfRows; + const char* numberOfColumns; + const char* numberOfPoints; + const char* pl; +}; + +class grib_accessor_class_data_apply_boustrophedonic_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_data_apply_boustrophedonic_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_apply_boustrophedonic_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int unpack_double_element(grib_accessor*, size_t i, double* val) override; + int unpack_double_element_set(grib_accessor*, const size_t* index_array, size_t len, double* val_array) override; +}; diff --git a/src/accessor/grib_accessor_class_data_apply_boustrophedonic_bitmap.h b/src/accessor/grib_accessor_class_data_apply_boustrophedonic_bitmap.h index e92299eab..c03416060 100644 --- a/src/accessor/grib_accessor_class_data_apply_boustrophedonic_bitmap.h +++ b/src/accessor/grib_accessor_class_data_apply_boustrophedonic_bitmap.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_apply_boustrophedonic_bitmap_h #define eccodes_accessor_data_apply_boustrophedonic_bitmap_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_data_apply_boustrophedonic_bitmap_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_data_apply_boustrophedonic_bitmap.h.bak b/src/accessor/grib_accessor_class_data_apply_boustrophedonic_bitmap.h.bak new file mode 100644 index 000000000..e92299eab --- /dev/null +++ b/src/accessor/grib_accessor_class_data_apply_boustrophedonic_bitmap.h.bak @@ -0,0 +1,45 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_apply_boustrophedonic_bitmap_h +#define eccodes_accessor_data_apply_boustrophedonic_bitmap_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_data_apply_boustrophedonic_bitmap_t : public grib_accessor_gen_t +{ +public: + /* Members defined in data_apply_boustrophedonic_bitmap */ + const char* coded_values; + const char* bitmap; + const char* missing_value; + const char* binary_scale_factor; + const char* numberOfRows; + const char* numberOfColumns; + const char* numberOfPoints; +}; + +class grib_accessor_class_data_apply_boustrophedonic_bitmap_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_data_apply_boustrophedonic_bitmap_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_apply_boustrophedonic_bitmap_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int unpack_double_element(grib_accessor*, size_t i, double* val) override; + int unpack_double_element_set(grib_accessor*, const size_t* index_array, size_t len, double* val_array) override; +}; +#endif /* eccodes_accessor_data_apply_boustrophedonic_bitmap_h */ diff --git a/src/accessor/grib_accessor_class_data_ccsds_packing.h.bak b/src/accessor/grib_accessor_class_data_ccsds_packing.h.bak new file mode 100644 index 000000000..19889e937 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_ccsds_packing.h.bak @@ -0,0 +1,203 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_ccsds_packing_h +#define eccodes_accessor_data_ccsds_packing_h + +#include "grib_accessor_class_values.h" +#include "grib_scaling.h" + +#if defined(HAVE_LIBAEC) || defined(HAVE_AEC) +#include +#endif + +#ifndef LIBAEC_DLL_EXPORTED + #error Version of libaec appears to be too old. Please upgrade. +#endif + +class grib_accessor_data_ccsds_packing_t : public grib_accessor_values_t +{ +public: + /* Members defined in data_ccsds_packing */ + const char* number_of_values; + const char* reference_value; + const char* binary_scale_factor; + const char* decimal_scale_factor; + const char* optimize_scaling_factor; + const char* bits_per_value; + const char* number_of_data_points; + const char* ccsds_flags; + const char* ccsds_block_size; + const char* ccsds_rsi; +}; + + + +// TODO(maee): if libaec is not available, this class should not be defined +class grib_accessor_class_data_ccsds_packing_t : public grib_accessor_class_values_t +{ +public: + grib_accessor_class_data_ccsds_packing_t(const char* name) : grib_accessor_class_values_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_ccsds_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int unpack_double_element(grib_accessor*, size_t i, double* val) override; + int unpack_double_element_set(grib_accessor*, const size_t* index_array, size_t len, double* val_array) override; + +private: + template int unpack(grib_accessor*, T*, size_t* ); + void print_aec_stream_info(struct aec_stream*, const char*); + void modify_aec_flags(long*); + const char* aec_get_error_message(int); + bool is_big_endian(); +}; + + +template +int grib_accessor_class_data_ccsds_packing_t::unpack(grib_accessor* a, T* val, size_t* len){ + static_assert(std::is_floating_point::value, "Requires floating point numbers"); + grib_accessor_data_ccsds_packing_t* self = (grib_accessor_data_ccsds_packing_t*)a; + grib_handle* hand = grib_handle_of_accessor(a); + const char* cclass_name = a->cclass->name; + + int err = GRIB_SUCCESS, i = 0; + size_t buflen = 0; + struct aec_stream strm; + double bscale = 0; + double dscale = 0; + unsigned char* buf = NULL; + size_t n_vals = 0; + size_t size = 0; + unsigned char* decoded = NULL; + // unsigned char* p = NULL; + long nn = 0; + + long binary_scale_factor = 0; + long decimal_scale_factor = 0; + double reference_value = 0; + long bits_per_value = 0; + + long ccsds_flags; + long ccsds_block_size; + long ccsds_rsi; + size_t nbytes; + + self->dirty = 0; + + if ((err = a->value_count(&nn)) != GRIB_SUCCESS) + return err; + n_vals = nn; + + if ((err = grib_get_long_internal(hand, self->bits_per_value, &bits_per_value)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_double_internal(hand, self->reference_value, &reference_value)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_long_internal(hand, self->binary_scale_factor, &binary_scale_factor)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_long_internal(hand, self->decimal_scale_factor, &decimal_scale_factor)) != GRIB_SUCCESS) + return err; + + // ECC-477: Don't call grib_get_long_internal to suppress error message being output + if ((err = grib_get_long(hand, self->ccsds_flags, &ccsds_flags)) != GRIB_SUCCESS) + return err; + + if ((err = grib_get_long_internal(hand, self->ccsds_block_size, &ccsds_block_size)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_long_internal(hand, self->ccsds_rsi, &ccsds_rsi)) != GRIB_SUCCESS) + return err; + + modify_aec_flags(&ccsds_flags); + + // TODO(masn): This should be called upstream + if (*len < n_vals) + return GRIB_ARRAY_TOO_SMALL; + + // Special case + if (bits_per_value == 0) { + for (i = 0; i < n_vals; i++) + val[i] = reference_value; + *len = n_vals; + return GRIB_SUCCESS; + } + + bscale = codes_power(binary_scale_factor, 2); + dscale = codes_power(-decimal_scale_factor, 10); + + buflen = a->byte_count(); buf = (unsigned char*)hand->buffer->data; + buf += a->byte_offset(); + strm.flags = ccsds_flags; + strm.bits_per_sample = bits_per_value; + strm.block_size = ccsds_block_size; + strm.rsi = ccsds_rsi; + + strm.next_in = buf; + strm.avail_in = buflen; + + nbytes = (bits_per_value + 7) / 8; + if (nbytes == 3) + nbytes = 4; + + size = n_vals * nbytes; + decoded = (unsigned char*)grib_context_buffer_malloc_clear(a->context, size); + if (!decoded) { + err = GRIB_OUT_OF_MEMORY; + goto cleanup; + } + strm.next_out = decoded; + strm.avail_out = size; + + if (hand->context->debug) print_aec_stream_info(&strm, "unpack_*"); + + if ((err = aec_buffer_decode(&strm)) != AEC_OK) { + grib_context_log(a->context, GRIB_LOG_ERROR, "%s %s: aec_buffer_decode error %d (%s)", + cclass_name, __func__, err, aec_get_error_message(err)); + err = GRIB_DECODING_ERROR; + goto cleanup; + } + + // ECC-1427: Performance improvement (replaced by ECC-1602) + //grib_decode_array(decoded, &pos, bits8 , reference_value, bscale, dscale, n_vals, val); + + // ECC-1602: Performance improvement + switch (nbytes) { + case 1: + for (i = 0; i < n_vals; i++) { + val[i] = (reinterpret_cast(decoded)[i] * bscale + reference_value) * dscale; + } + break; + case 2: + for (i = 0; i < n_vals; i++) { + val[i] = (reinterpret_cast(decoded)[i] * bscale + reference_value) * dscale; + } + break; + case 4: + for (i = 0; i < n_vals; i++) { + val[i] = (reinterpret_cast(decoded)[i] * bscale + reference_value) * dscale; + } + break; + default: + grib_context_log(a->context, GRIB_LOG_ERROR, "%s %s: unpacking %s, bits_per_value=%ld (max 32)", + cclass_name, __func__, a->name, bits_per_value); + err = GRIB_INVALID_BPV; + goto cleanup; + } + + *len = n_vals; + +cleanup: + grib_context_buffer_free(a->context, decoded); + return err; +} + +#endif /* eccodes_accessor_data_ccsds_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_complex_packing.h.bak b/src/accessor/grib_accessor_class_data_complex_packing.h.bak new file mode 100644 index 000000000..d588eef38 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_complex_packing.h.bak @@ -0,0 +1,272 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_complex_packing_h +#define eccodes_accessor_data_complex_packing_h + +#include "grib_accessor_class_data_simple_packing.h" +#include "grib_scaling.h" +#include "grib_ieeefloat.h" + +typedef unsigned long (*encode_float_proc)(double); +typedef double (*decode_float_proc)(unsigned long); + +class grib_accessor_data_complex_packing_t : public grib_accessor_data_simple_packing_t +{ +public: + /* Members defined in data_complex_packing */ + const char* GRIBEX_sh_bug_present; + const char* ieee_floats; + const char* laplacianOperatorIsSet; + const char* laplacianOperator; + const char* sub_j; + const char* sub_k; + const char* sub_m; + const char* pen_j; + const char* pen_k; + const char* pen_m; +}; + +class grib_accessor_class_data_complex_packing_t : public grib_accessor_class_data_simple_packing_t +{ +public: + grib_accessor_class_data_complex_packing_t(const char* name) : grib_accessor_class_data_simple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_complex_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + +private: + template int unpack(grib_accessor*, T*, size_t*); +}; + +template +int grib_accessor_class_data_complex_packing_t::unpack(grib_accessor* a, T* val, size_t* len){ + static_assert(std::is_floating_point::value, "Requires floating point numbers"); + grib_accessor_data_complex_packing_t* self = (grib_accessor_data_complex_packing_t*)a; + grib_handle* gh = grib_handle_of_accessor(a); + const char* cclass_name = a->cclass->name; + + size_t i = 0; + int ret = GRIB_SUCCESS; + long hcount = 0; + long lcount = 0; + long hpos = 0; + long lup = 0; + long mmax = 0; + long n_vals = 0; + T* scals = NULL; + T* pscals = NULL, *pval = NULL; + + T s = 0; + T d = 0; + T laplacianOperator = 0; + unsigned char* buf = NULL; + unsigned char* hres = NULL; + unsigned char* lres = NULL; + unsigned long packed_offset; + long lpos = 0; + + long maxv = 0; + long GRIBEX_sh_bug_present = 0; + long ieee_floats = 0; + + long offsetdata = 0; + long bits_per_value = 0; + T reference_value = 0; + long binary_scale_factor = 0; + long decimal_scale_factor = 0; + + long sub_j = 0; + long sub_k = 0; + long sub_m = 0; + long pen_j = 0; + long pen_k = 0; + long pen_m = 0; + + T operat = 0; + int bytes; + int err = 0; + double tmp; + + decode_float_proc decode_float = NULL; + + err = a->value_count(&n_vals); if (err) + return err; + + if (*len < n_vals) { + *len = n_vals; + return GRIB_ARRAY_TOO_SMALL; + } + + if ((ret = grib_get_long_internal(gh, self->offsetdata, &offsetdata)) != GRIB_SUCCESS) + return ret; + if ((ret = grib_get_long_internal(gh, self->bits_per_value, &bits_per_value)) != GRIB_SUCCESS) + return ret; + if ((ret = grib_get_double_internal(gh, self->reference_value, &tmp)) != GRIB_SUCCESS) + return ret; + reference_value = tmp; + if ((ret = grib_get_long_internal(gh, self->binary_scale_factor, &binary_scale_factor)) != GRIB_SUCCESS) + return ret; + + if ((ret = grib_get_long_internal(gh, self->decimal_scale_factor, &decimal_scale_factor)) != GRIB_SUCCESS) + return ret; + + if ((ret = grib_get_long_internal(gh, self->GRIBEX_sh_bug_present, &GRIBEX_sh_bug_present)) != GRIB_SUCCESS) + return ret; + + /* ECC-774: don't use grib_get_long_internal */ + if ((ret = grib_get_long(gh, self->ieee_floats, &ieee_floats)) != GRIB_SUCCESS) + return ret; + + if ((ret = grib_get_double_internal(gh, self->laplacianOperator, &tmp)) != GRIB_SUCCESS) + return ret; + laplacianOperator = tmp; + + if ((ret = grib_get_long_internal(gh, self->sub_j, &sub_j)) != GRIB_SUCCESS) + return ret; + if ((ret = grib_get_long_internal(gh, self->sub_k, &sub_k)) != GRIB_SUCCESS) + return ret; + if ((ret = grib_get_long_internal(gh, self->sub_m, &sub_m)) != GRIB_SUCCESS) + return ret; + if ((ret = grib_get_long_internal(gh, self->pen_j, &pen_j)) != GRIB_SUCCESS) + return ret; + if ((ret = grib_get_long_internal(gh, self->pen_k, &pen_k)) != GRIB_SUCCESS) + return ret; + if ((ret = grib_get_long_internal(gh, self->pen_m, &pen_m)) != GRIB_SUCCESS) + return ret; + + self->dirty = 0; + + switch (ieee_floats) { + case 0: + decode_float = grib_long_to_ibm; + bytes = 4; + break; + case 1: + decode_float = grib_long_to_ieee; + bytes = 4; + break; + case 2: + decode_float = grib_long_to_ieee64; + bytes = 8; + break; + default: + return GRIB_NOT_IMPLEMENTED; + } + + if (sub_j != sub_k || sub_j != sub_m || pen_j != pen_k || pen_j != pen_m) { + grib_context_log(a->context, GRIB_LOG_ERROR, "%s: Invalid pentagonal resolution parameters", cclass_name); + return GRIB_DECODING_ERROR; + } + + buf = (unsigned char*)gh->buffer->data; + + maxv = pen_j + 1; + + buf += a->byte_offset(); hres = buf; + lres = buf; + + if (pen_j == sub_j) { + n_vals = (pen_j + 1) * (pen_j + 2); + d = codes_power(-decimal_scale_factor, 10); + + grib_ieee_decode_array(a->context, buf, n_vals, bytes, val); + if (d) { + for (i = 0; i < n_vals; i++) + val[i] *= d; + } + return 0; + } + + packed_offset = a->byte_offset() + bytes * (sub_k + 1) * (sub_k + 2); + lpos = 8 * (packed_offset - offsetdata); + + s = codes_power(binary_scale_factor, 2); + d = codes_power(-decimal_scale_factor, 10); + + scals = (T*)grib_context_malloc(a->context, maxv * sizeof(T)); + if (!scals) return GRIB_OUT_OF_MEMORY; + + scals[0] = 0; + for (i = 1; i < maxv; i++) { + operat = pow(i * (i + 1), laplacianOperator); + if (operat != 0) + scals[i] = (1.0 / operat); + else { + grib_context_log(a->context, GRIB_LOG_WARNING, + "%s: Problem with operator div by zero at index %d of %d", cclass_name, i, maxv); + scals[i] = 0; + } + } + + /* + printf("UNPACKING LAPLACE=%.20f\n",laplacianOperator); + printf("packed offset=%ld\n",packed_offset); + for(i=0;i 0) { + lup = mmax; + if (sub_k >= 0) { + for (hcount = 0; hcount < sub_k + 1; hcount++) { + val[i++] = decode_float(grib_decode_unsigned_long(hres, &hpos, 8 * bytes)); + val[i++] = decode_float(grib_decode_unsigned_long(hres, &hpos, 8 * bytes)); + + if (GRIBEX_sh_bug_present && hcount == sub_k) { + /* bug in ecmwf data, last row (K+1)is scaled but should not */ + val[i - 2] *= scals[lup]; + val[i - 1] *= scals[lup]; + } + lup++; + } + sub_k--; + } + + pscals = scals + lup; + pval = val + i; +#if FAST_BIG_ENDIAN + grib_decode_double_array_complex(lres, + &lpos, bits_per_value, + reference_value, s, pscals, (maxv - hcount) * 2, pval); + i += (maxv - hcount) * 2; +#else + (void)pscals; /* suppress gcc warning */ + (void)pval; /* suppress gcc warning */ + for (lcount = hcount; lcount < maxv; lcount++) { + val[i++] = d * (T)((grib_decode_unsigned_long(lres, &lpos, bits_per_value) * s) + reference_value) * scals[lup]; + val[i++] = d * (T)((grib_decode_unsigned_long(lres, &lpos, bits_per_value) * s) + reference_value) * scals[lup]; + /* These values should always be zero, but as they are packed, + it is necessary to force them back to zero */ + if (mmax == 0) + val[i - 1] = 0; + lup++; + } +#endif + + maxv--; + hcount = 0; + mmax++; + } + + Assert(*len >= i); + *len = i; + + grib_context_free(a->context, scals); + + return ret; +} + +#endif /* eccodes_accessor_data_complex_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_dummy_field.h b/src/accessor/grib_accessor_class_data_dummy_field.h index 00de1fe73..31d6d27b8 100644 --- a/src/accessor/grib_accessor_class_data_dummy_field.h +++ b/src/accessor/grib_accessor_class_data_dummy_field.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_dummy_field_h #define eccodes_accessor_data_dummy_field_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_g1simple_packing.h" class grib_accessor_data_dummy_field_t : public grib_accessor_data_g1simple_packing_t diff --git a/src/accessor/grib_accessor_class_data_dummy_field.h.bak b/src/accessor/grib_accessor_class_data_dummy_field.h.bak new file mode 100644 index 000000000..00de1fe73 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_dummy_field.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_dummy_field_h +#define eccodes_accessor_data_dummy_field_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_g1simple_packing.h" + +class grib_accessor_data_dummy_field_t : public grib_accessor_data_g1simple_packing_t +{ +public: + /* Members defined in data_dummy_field */ + const char* missing_value; + const char* numberOfPoints; + const char* bitmap; +}; + +class grib_accessor_class_data_dummy_field_t : public grib_accessor_class_data_g1simple_packing_t +{ +public: + grib_accessor_class_data_dummy_field_t(const char* name) : grib_accessor_class_data_g1simple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_dummy_field_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_dummy_field_h */ diff --git a/src/accessor/grib_accessor_class_data_g1complex_packing.h b/src/accessor/grib_accessor_class_data_g1complex_packing.h index cc6208c95..a3c916606 100644 --- a/src/accessor/grib_accessor_class_data_g1complex_packing.h +++ b/src/accessor/grib_accessor_class_data_g1complex_packing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_g1complex_packing_h #define eccodes_accessor_data_g1complex_packing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_complex_packing.h" class grib_accessor_data_g1complex_packing_t : public grib_accessor_data_complex_packing_t diff --git a/src/accessor/grib_accessor_class_data_g1complex_packing.h.bak b/src/accessor/grib_accessor_class_data_g1complex_packing.h.bak new file mode 100644 index 000000000..cc6208c95 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g1complex_packing.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_g1complex_packing_h +#define eccodes_accessor_data_g1complex_packing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_complex_packing.h" + +class grib_accessor_data_g1complex_packing_t : public grib_accessor_data_complex_packing_t +{ +public: + /* Members defined in data_g1complex_packing */ + const char* N; + const char* half_byte; + const char* packingType; + const char* ieee_packing; + const char* precision; +}; + +class grib_accessor_class_data_g1complex_packing_t : public grib_accessor_class_data_complex_packing_t +{ +public: + grib_accessor_class_data_g1complex_packing_t(const char* name) : grib_accessor_class_data_complex_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g1complex_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_g1complex_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_g1second_order_constant_width_packing.h b/src/accessor/grib_accessor_class_data_g1second_order_constant_width_packing.h index adfc36716..8c190bd12 100644 --- a/src/accessor/grib_accessor_class_data_g1second_order_constant_width_packing.h +++ b/src/accessor/grib_accessor_class_data_g1second_order_constant_width_packing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_g1second_order_constant_width_packing_h #define eccodes_accessor_data_g1second_order_constant_width_packing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_simple_packing.h" class grib_accessor_data_g1second_order_constant_width_packing_t : public grib_accessor_data_simple_packing_t diff --git a/src/accessor/grib_accessor_class_data_g1second_order_constant_width_packing.h.bak b/src/accessor/grib_accessor_class_data_g1second_order_constant_width_packing.h.bak new file mode 100644 index 000000000..adfc36716 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g1second_order_constant_width_packing.h.bak @@ -0,0 +1,53 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_g1second_order_constant_width_packing_h +#define eccodes_accessor_data_g1second_order_constant_width_packing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_simple_packing.h" + +class grib_accessor_data_g1second_order_constant_width_packing_t : public grib_accessor_data_simple_packing_t +{ +public: + /* Members defined in data_g1second_order_constant_width_packing */ + const char* half_byte; + const char* packingType; + const char* ieee_packing; + const char* precision; + const char* widthOfFirstOrderValues; + const char* N1; + const char* N2; + const char* numberOfGroups; + const char* numberOfSecondOrderPackedValues; + const char* extraValues; + const char* pl; + const char* Ni; + const char* Nj; + const char* jPointsAreConsecutive; + const char* bitmap; + const char* groupWidth; +}; + +class grib_accessor_class_data_g1second_order_constant_width_packing_t : public grib_accessor_class_data_simple_packing_t +{ +public: + grib_accessor_class_data_g1second_order_constant_width_packing_t(const char* name) : grib_accessor_class_data_simple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g1second_order_constant_width_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int unpack_double_element(grib_accessor*, size_t i, double* val) override; + int unpack_double_element_set(grib_accessor*, const size_t* index_array, size_t len, double* val_array) override; +}; +#endif /* eccodes_accessor_data_g1second_order_constant_width_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_g1second_order_general_extended_packing.h b/src/accessor/grib_accessor_class_data_g1second_order_general_extended_packing.h index 245217f7f..fb2356a4f 100644 --- a/src/accessor/grib_accessor_class_data_g1second_order_general_extended_packing.h +++ b/src/accessor/grib_accessor_class_data_g1second_order_general_extended_packing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_g1second_order_general_extended_packing_h #define eccodes_accessor_data_g1second_order_general_extended_packing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_simple_packing.h" class grib_accessor_data_g1second_order_general_extended_packing_t : public grib_accessor_data_simple_packing_t diff --git a/src/accessor/grib_accessor_class_data_g1second_order_general_extended_packing.h.bak b/src/accessor/grib_accessor_class_data_g1second_order_general_extended_packing.h.bak new file mode 100644 index 000000000..245217f7f --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g1second_order_general_extended_packing.h.bak @@ -0,0 +1,68 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_g1second_order_general_extended_packing_h +#define eccodes_accessor_data_g1second_order_general_extended_packing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_simple_packing.h" + +class grib_accessor_data_g1second_order_general_extended_packing_t : public grib_accessor_data_simple_packing_t +{ +public: + /* Members defined in data_g1second_order_general_extended_packing */ + const char* half_byte; + const char* packingType; + const char* ieee_packing; + const char* precision; + const char* widthOfFirstOrderValues; + const char* firstOrderValues; + const char* N1; + const char* N2; + const char* numberOfGroups; + const char* codedNumberOfGroups; + const char* numberOfSecondOrderPackedValues; + const char* extraValues; + const char* groupWidths; + const char* widthOfWidths; + const char* groupLengths; + const char* widthOfLengths; + const char* NL; + const char* SPD; + const char* widthOfSPD; + const char* orderOfSPD; + const char* numberOfPoints; + const char* dataFlag; + double* dvalues; + float* fvalues; + int double_dirty; + int float_dirty; + size_t size; +}; + +class grib_accessor_class_data_g1second_order_general_extended_packing_t : public grib_accessor_class_data_simple_packing_t +{ +public: + grib_accessor_class_data_g1second_order_general_extended_packing_t(const char* name) : grib_accessor_class_data_simple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g1second_order_general_extended_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int unpack_double_element(grib_accessor*, size_t i, double* val) override; + int unpack_double_element_set(grib_accessor*, const size_t* index_array, size_t len, double* val_array) override; + +private: + int unpack(grib_accessor* a, double*, float*, size_t*); +}; +#endif /* eccodes_accessor_data_g1second_order_general_extended_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_g1second_order_general_packing.h.bak b/src/accessor/grib_accessor_class_data_g1second_order_general_packing.h.bak new file mode 100644 index 000000000..2e8bb3620 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g1second_order_general_packing.h.bak @@ -0,0 +1,49 @@ + +/* + * (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. + */ + +#pragma once + +#include "grib_accessor_class_data_simple_packing.h" +#include "grib_scaling.h" + +class grib_accessor_data_g1second_order_general_packing_t : public grib_accessor_data_simple_packing_t +{ +public: + /* Members defined in data_g1second_order_general_packing */ + const char* half_byte; + const char* packingType; + const char* ieee_packing; + const char* precision; + const char* widthOfFirstOrderValues; + const char* N1; + const char* N2; + const char* numberOfGroups; + const char* numberOfSecondOrderPackedValues; + const char* extraValues; + const char* pl; + const char* Ni; + const char* Nj; + const char* jPointsAreConsecutive; + const char* bitmap; + const char* groupWidths; +}; + +class grib_accessor_class_data_g1second_order_general_packing_t : public grib_accessor_class_data_simple_packing_t +{ +public: + grib_accessor_class_data_g1second_order_general_packing_t(const char* name) : grib_accessor_class_data_simple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g1second_order_general_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; diff --git a/src/accessor/grib_accessor_class_data_g1second_order_row_by_row_packing.h.bak b/src/accessor/grib_accessor_class_data_g1second_order_row_by_row_packing.h.bak new file mode 100644 index 000000000..9b274a408 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g1second_order_row_by_row_packing.h.bak @@ -0,0 +1,49 @@ + +/* + * (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. + */ + +#pragma once + +#include "grib_accessor_class_data_simple_packing.h" +#include "grib_scaling.h" + +class grib_accessor_data_g1second_order_row_by_row_packing_t : public grib_accessor_data_simple_packing_t +{ +public: + /* Members defined in data_g1second_order_row_by_row_packing */ + const char* half_byte; + const char* packingType; + const char* ieee_packing; + const char* precision; + const char* widthOfFirstOrderValues; + const char* N1; + const char* N2; + const char* numberOfGroups; + const char* numberOfSecondOrderPackedValues; + const char* extraValues; + const char* pl; + const char* Ni; + const char* Nj; + const char* jPointsAreConsecutive; + const char* bitmap; + const char* groupWidths; +}; + +class grib_accessor_class_data_g1second_order_row_by_row_packing_t : public grib_accessor_class_data_simple_packing_t +{ +public: + grib_accessor_class_data_g1second_order_row_by_row_packing_t(const char* name) : grib_accessor_class_data_simple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g1second_order_row_by_row_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; diff --git a/src/accessor/grib_accessor_class_data_g1secondary_bitmap.h b/src/accessor/grib_accessor_class_data_g1secondary_bitmap.h index e963d6f44..d0eaedb55 100644 --- a/src/accessor/grib_accessor_class_data_g1secondary_bitmap.h +++ b/src/accessor/grib_accessor_class_data_g1secondary_bitmap.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_g1secondary_bitmap_h #define eccodes_accessor_data_g1secondary_bitmap_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_secondary_bitmap.h" class grib_accessor_data_g1secondary_bitmap_t : public grib_accessor_data_secondary_bitmap_t diff --git a/src/accessor/grib_accessor_class_data_g1secondary_bitmap.h.bak b/src/accessor/grib_accessor_class_data_g1secondary_bitmap.h.bak new file mode 100644 index 000000000..e963d6f44 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g1secondary_bitmap.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_g1secondary_bitmap_h +#define eccodes_accessor_data_g1secondary_bitmap_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_secondary_bitmap.h" + +class grib_accessor_data_g1secondary_bitmap_t : public grib_accessor_data_secondary_bitmap_t +{ +public: + /* Members defined in data_g1secondary_bitmap */ + const char* number_of_ones; +}; + +class grib_accessor_class_data_g1secondary_bitmap_t : public grib_accessor_class_data_secondary_bitmap_t +{ +public: + grib_accessor_class_data_g1secondary_bitmap_t(const char* name) : grib_accessor_class_data_secondary_bitmap_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g1secondary_bitmap_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_g1secondary_bitmap_h */ diff --git a/src/accessor/grib_accessor_class_data_g1shsimple_packing.h b/src/accessor/grib_accessor_class_data_g1shsimple_packing.h index 0c8efffa1..8a212b5df 100644 --- a/src/accessor/grib_accessor_class_data_g1shsimple_packing.h +++ b/src/accessor/grib_accessor_class_data_g1shsimple_packing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_g1shsimple_packing_h #define eccodes_accessor_data_g1shsimple_packing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_shsimple_packing.h" class grib_accessor_data_g1shsimple_packing_t : public grib_accessor_data_shsimple_packing_t diff --git a/src/accessor/grib_accessor_class_data_g1shsimple_packing.h.bak b/src/accessor/grib_accessor_class_data_g1shsimple_packing.h.bak new file mode 100644 index 000000000..0c8efffa1 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g1shsimple_packing.h.bak @@ -0,0 +1,32 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_g1shsimple_packing_h +#define eccodes_accessor_data_g1shsimple_packing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_shsimple_packing.h" + +class grib_accessor_data_g1shsimple_packing_t : public grib_accessor_data_shsimple_packing_t +{ +public: + /* Members defined in data_g1shsimple_packing */ +}; + +class grib_accessor_class_data_g1shsimple_packing_t : public grib_accessor_class_data_shsimple_packing_t +{ +public: + grib_accessor_class_data_g1shsimple_packing_t(const char* name) : grib_accessor_class_data_shsimple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g1shsimple_packing_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; +}; +#endif /* eccodes_accessor_data_g1shsimple_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_g1simple_packing.h b/src/accessor/grib_accessor_class_data_g1simple_packing.h index 3a351d17f..9d210ab63 100644 --- a/src/accessor/grib_accessor_class_data_g1simple_packing.h +++ b/src/accessor/grib_accessor_class_data_g1simple_packing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_g1simple_packing_h #define eccodes_accessor_data_g1simple_packing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_simple_packing.h" class grib_accessor_data_g1simple_packing_t : public grib_accessor_data_simple_packing_t diff --git a/src/accessor/grib_accessor_class_data_g1simple_packing.h.bak b/src/accessor/grib_accessor_class_data_g1simple_packing.h.bak new file mode 100644 index 000000000..3a351d17f --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g1simple_packing.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_g1simple_packing_h +#define eccodes_accessor_data_g1simple_packing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_simple_packing.h" + +class grib_accessor_data_g1simple_packing_t : public grib_accessor_data_simple_packing_t +{ +public: + /* Members defined in data_g1simple_packing */ + const char* half_byte; + const char* packingType; + const char* ieee_packing; + const char* precision; +}; + +class grib_accessor_class_data_g1simple_packing_t : public grib_accessor_class_data_simple_packing_t +{ +public: + grib_accessor_class_data_g1simple_packing_t(const char* name) : grib_accessor_class_data_simple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g1simple_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_g1simple_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_g22order_packing.h.bak b/src/accessor/grib_accessor_class_data_g22order_packing.h.bak new file mode 100644 index 000000000..39d01a70b --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g22order_packing.h.bak @@ -0,0 +1,55 @@ + +/* + * (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. + */ + +#pragma once + +#include "grib_accessor_class_values.h" +#include "grib_scaling.h" + +class grib_accessor_data_g22order_packing_t : public grib_accessor_values_t +{ +public: + /* Members defined in data_g22order_packing */ + const char* numberOfValues; + const char* bits_per_value; + const char* reference_value; + const char* binary_scale_factor; + const char* decimal_scale_factor; + const char* optimize_scale_factor; + const char* typeOfOriginalFieldValues; + const char* groupSplittingMethodUsed; + const char* missingValueManagementUsed; + const char* primaryMissingValueSubstitute; + const char* secondaryMissingValueSubstitute; + const char* numberOfGroupsOfDataValues; + const char* referenceForGroupWidths; + const char* numberOfBitsUsedForTheGroupWidths; + const char* referenceForGroupLengths; + const char* lengthIncrementForTheGroupLengths; + const char* trueLengthOfLastGroup; + const char* numberOfBitsUsedForTheScaledGroupLengths; + const char* orderOfSpatialDifferencing; + const char* numberOfOctetsExtraDescriptors; +}; + +class grib_accessor_class_data_g22order_packing_t : public grib_accessor_class_values_t +{ +public: + grib_accessor_class_data_g22order_packing_t(const char* name) : grib_accessor_class_values_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g22order_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int unpack_double_element(grib_accessor*, size_t i, double* val) override; + int unpack_double_element_set(grib_accessor*, const size_t* index_array, size_t len, double* val_array) override; +}; diff --git a/src/accessor/grib_accessor_class_data_g2bifourier_packing.h b/src/accessor/grib_accessor_class_data_g2bifourier_packing.h index f4033a1ba..1d2838414 100644 --- a/src/accessor/grib_accessor_class_data_g2bifourier_packing.h +++ b/src/accessor/grib_accessor_class_data_g2bifourier_packing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_g2bifourier_packing_h #define eccodes_accessor_data_g2bifourier_packing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_simple_packing.h" class grib_accessor_data_g2bifourier_packing_t : public grib_accessor_data_simple_packing_t diff --git a/src/accessor/grib_accessor_class_data_g2bifourier_packing.h.bak b/src/accessor/grib_accessor_class_data_g2bifourier_packing.h.bak new file mode 100644 index 000000000..f4033a1ba --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g2bifourier_packing.h.bak @@ -0,0 +1,47 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_g2bifourier_packing_h +#define eccodes_accessor_data_g2bifourier_packing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_simple_packing.h" + +class grib_accessor_data_g2bifourier_packing_t : public grib_accessor_data_simple_packing_t +{ +public: + /* Members defined in data_g2bifourier_packing */ + const char* ieee_floats; + const char* laplacianOperatorIsSet; + const char* laplacianOperator; + const char* biFourierTruncationType; + const char* sub_i; + const char* sub_j; + const char* bif_i; + const char* bif_j; + const char* biFourierSubTruncationType; + const char* biFourierDoNotPackAxes; + const char* biFourierMakeTemplate; + const char* totalNumberOfValuesInUnpackedSubset; + const char* numberOfValues; +}; + +class grib_accessor_class_data_g2bifourier_packing_t : public grib_accessor_class_data_simple_packing_t +{ +public: + grib_accessor_class_data_g2bifourier_packing_t(const char* name) : grib_accessor_class_data_simple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g2bifourier_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_g2bifourier_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_g2complex_packing.h b/src/accessor/grib_accessor_class_data_g2complex_packing.h index e77b89276..ec7ab213e 100644 --- a/src/accessor/grib_accessor_class_data_g2complex_packing.h +++ b/src/accessor/grib_accessor_class_data_g2complex_packing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_g2complex_packing_h #define eccodes_accessor_data_g2complex_packing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_complex_packing.h" class grib_accessor_data_g2complex_packing_t : public grib_accessor_data_complex_packing_t diff --git a/src/accessor/grib_accessor_class_data_g2complex_packing.h.bak b/src/accessor/grib_accessor_class_data_g2complex_packing.h.bak new file mode 100644 index 000000000..e77b89276 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g2complex_packing.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_g2complex_packing_h +#define eccodes_accessor_data_g2complex_packing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_complex_packing.h" + +class grib_accessor_data_g2complex_packing_t : public grib_accessor_data_complex_packing_t +{ +public: + /* Members defined in data_g2complex_packing */ + const char* numberOfValues; +}; + +class grib_accessor_class_data_g2complex_packing_t : public grib_accessor_class_data_complex_packing_t +{ +public: + grib_accessor_class_data_g2complex_packing_t(const char* name) : grib_accessor_class_data_complex_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g2complex_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_g2complex_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_g2secondary_bitmap.h b/src/accessor/grib_accessor_class_data_g2secondary_bitmap.h index 394c79bfa..abc550a97 100644 --- a/src/accessor/grib_accessor_class_data_g2secondary_bitmap.h +++ b/src/accessor/grib_accessor_class_data_g2secondary_bitmap.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_g2secondary_bitmap_h #define eccodes_accessor_data_g2secondary_bitmap_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_secondary_bitmap.h" class grib_accessor_data_g2secondary_bitmap_t : public grib_accessor_data_secondary_bitmap_t diff --git a/src/accessor/grib_accessor_class_data_g2secondary_bitmap.h.bak b/src/accessor/grib_accessor_class_data_g2secondary_bitmap.h.bak new file mode 100644 index 000000000..394c79bfa --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g2secondary_bitmap.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_g2secondary_bitmap_h +#define eccodes_accessor_data_g2secondary_bitmap_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_secondary_bitmap.h" + +class grib_accessor_data_g2secondary_bitmap_t : public grib_accessor_data_secondary_bitmap_t +{ +public: + /* Members defined in data_g2secondary_bitmap */ + const char* number_of_values; +}; + +class grib_accessor_class_data_g2secondary_bitmap_t : public grib_accessor_class_data_secondary_bitmap_t +{ +public: + grib_accessor_class_data_g2secondary_bitmap_t(const char* name) : grib_accessor_class_data_secondary_bitmap_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g2secondary_bitmap_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_g2secondary_bitmap_h */ diff --git a/src/accessor/grib_accessor_class_data_g2shsimple_packing.h b/src/accessor/grib_accessor_class_data_g2shsimple_packing.h index 28e7a7c06..30899788b 100644 --- a/src/accessor/grib_accessor_class_data_g2shsimple_packing.h +++ b/src/accessor/grib_accessor_class_data_g2shsimple_packing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_g2shsimple_packing_h #define eccodes_accessor_data_g2shsimple_packing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_shsimple_packing.h" class grib_accessor_data_g2shsimple_packing_t : public grib_accessor_data_shsimple_packing_t diff --git a/src/accessor/grib_accessor_class_data_g2shsimple_packing.h.bak b/src/accessor/grib_accessor_class_data_g2shsimple_packing.h.bak new file mode 100644 index 000000000..28e7a7c06 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g2shsimple_packing.h.bak @@ -0,0 +1,36 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_g2shsimple_packing_h +#define eccodes_accessor_data_g2shsimple_packing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_shsimple_packing.h" + +class grib_accessor_data_g2shsimple_packing_t : public grib_accessor_data_shsimple_packing_t +{ +public: + /* Members defined in data_g2shsimple_packing */ + const char* numberOfValues; + const char* numberOfDataPoints; +}; + +class grib_accessor_class_data_g2shsimple_packing_t : public grib_accessor_class_data_shsimple_packing_t +{ +public: + grib_accessor_class_data_g2shsimple_packing_t(const char* name) : grib_accessor_class_data_shsimple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g2shsimple_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_g2shsimple_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_g2simple_packing.h.bak b/src/accessor/grib_accessor_class_data_g2simple_packing.h.bak new file mode 100644 index 000000000..4f27ab87c --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g2simple_packing.h.bak @@ -0,0 +1,28 @@ +/* + * (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. + */ + +#ifndef eccodes_accessor_data_g2simple_packing_h +#define eccodes_accessor_data_g2simple_packing_h + +#include "grib_accessor_class_data_simple_packing.h" + +class grib_accessor_data_g2simple_packing_t : public grib_accessor_data_simple_packing_t {}; + +class grib_accessor_class_data_g2simple_packing_t : public grib_accessor_class_data_simple_packing_t +{ +public: + grib_accessor_class_data_g2simple_packing_t(const char* name) : grib_accessor_class_data_simple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g2simple_packing_t{}; } + int pack_bytes(grib_accessor*, const unsigned char*, size_t* len) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_g2simple_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_g2simple_packing_with_preprocessing.h b/src/accessor/grib_accessor_class_data_g2simple_packing_with_preprocessing.h index ac2bc2d27..797815bd3 100644 --- a/src/accessor/grib_accessor_class_data_g2simple_packing_with_preprocessing.h +++ b/src/accessor/grib_accessor_class_data_g2simple_packing_with_preprocessing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_g2simple_packing_with_preprocessing_h #define eccodes_accessor_data_g2simple_packing_with_preprocessing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_g2simple_packing.h" class grib_accessor_data_g2simple_packing_with_preprocessing_t : public grib_accessor_data_g2simple_packing_t diff --git a/src/accessor/grib_accessor_class_data_g2simple_packing_with_preprocessing.h.bak b/src/accessor/grib_accessor_class_data_g2simple_packing_with_preprocessing.h.bak new file mode 100644 index 000000000..ac2bc2d27 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_g2simple_packing_with_preprocessing.h.bak @@ -0,0 +1,36 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_g2simple_packing_with_preprocessing_h +#define eccodes_accessor_data_g2simple_packing_with_preprocessing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_g2simple_packing.h" + +class grib_accessor_data_g2simple_packing_with_preprocessing_t : public grib_accessor_data_g2simple_packing_t +{ +public: + /* Members defined in data_g2simple_packing_with_preprocessing */ + const char* pre_processing; + const char* pre_processing_parameter; +}; + +class grib_accessor_class_data_g2simple_packing_with_preprocessing_t : public grib_accessor_class_data_g2simple_packing_t +{ +public: + grib_accessor_class_data_g2simple_packing_with_preprocessing_t(const char* name) : grib_accessor_class_data_g2simple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_g2simple_packing_with_preprocessing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_g2simple_packing_with_preprocessing_h */ diff --git a/src/accessor/grib_accessor_class_data_jpeg2000_packing.h b/src/accessor/grib_accessor_class_data_jpeg2000_packing.h index a04ee58d5..4802dd2ac 100644 --- a/src/accessor/grib_accessor_class_data_jpeg2000_packing.h +++ b/src/accessor/grib_accessor_class_data_jpeg2000_packing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_jpeg2000_packing_h #define eccodes_accessor_data_jpeg2000_packing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_simple_packing.h" class grib_accessor_data_jpeg2000_packing_t : public grib_accessor_data_simple_packing_t diff --git a/src/accessor/grib_accessor_class_data_jpeg2000_packing.h.bak b/src/accessor/grib_accessor_class_data_jpeg2000_packing.h.bak new file mode 100644 index 000000000..a04ee58d5 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_jpeg2000_packing.h.bak @@ -0,0 +1,46 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_jpeg2000_packing_h +#define eccodes_accessor_data_jpeg2000_packing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_simple_packing.h" + +class grib_accessor_data_jpeg2000_packing_t : public grib_accessor_data_simple_packing_t +{ +public: + /* Members defined in data_jpeg2000_packing */ + const char* type_of_compression_used; + const char* target_compression_ratio; + const char* ni; + const char* nj; + const char* list_defining_points; + const char* number_of_data_points; + const char* scanning_mode; + int jpeg_lib; + const char* dump_jpg; +}; + +class grib_accessor_class_data_jpeg2000_packing_t : public grib_accessor_class_data_simple_packing_t +{ +public: + grib_accessor_class_data_jpeg2000_packing_t(const char* name) : grib_accessor_class_data_simple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_jpeg2000_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int unpack_double_element(grib_accessor*, size_t i, double* val) override; + int unpack_double_element_set(grib_accessor*, const size_t* index_array, size_t len, double* val_array) override; +}; +#endif /* eccodes_accessor_data_jpeg2000_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_png_packing.h.bak b/src/accessor/grib_accessor_class_data_png_packing.h.bak new file mode 100644 index 000000000..841ed9d31 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_png_packing.h.bak @@ -0,0 +1,41 @@ +/* + * (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. + */ + +#pragma once + +#include "grib_accessor_class_values.h" + +class grib_accessor_data_png_packing_t : public grib_accessor_values_t +{ +public: + const char* number_of_values; + const char* reference_value; + const char* binary_scale_factor; + const char* decimal_scale_factor; + const char* bits_per_value; + const char* ni; + const char* nj; + const char* list_defining_points; + const char* number_of_data_points; + const char* scanning_mode; +}; + +class grib_accessor_class_data_png_packing_t : public grib_accessor_class_values_t +{ +public: + grib_accessor_class_data_png_packing_t(const char* name) : grib_accessor_class_values_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_png_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int unpack_double_element(grib_accessor*, size_t i, double* val) override; + int unpack_double_element_set(grib_accessor*, const size_t* index_array, size_t len, double* val_array) override; +}; diff --git a/src/accessor/grib_accessor_class_data_raw_packing.h b/src/accessor/grib_accessor_class_data_raw_packing.h index 5b1b103e0..075cc470e 100644 --- a/src/accessor/grib_accessor_class_data_raw_packing.h +++ b/src/accessor/grib_accessor_class_data_raw_packing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_raw_packing_h #define eccodes_accessor_data_raw_packing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_values.h" class grib_accessor_data_raw_packing_t : public grib_accessor_values_t diff --git a/src/accessor/grib_accessor_class_data_raw_packing.h.bak b/src/accessor/grib_accessor_class_data_raw_packing.h.bak new file mode 100644 index 000000000..5b1b103e0 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_raw_packing.h.bak @@ -0,0 +1,38 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_raw_packing_h +#define eccodes_accessor_data_raw_packing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_values.h" + +class grib_accessor_data_raw_packing_t : public grib_accessor_values_t +{ +public: + /* Members defined in data_raw_packing */ + const char* number_of_values; + const char* precision; +}; + +class grib_accessor_class_data_raw_packing_t : public grib_accessor_class_values_t +{ +public: + grib_accessor_class_data_raw_packing_t(const char* name) : grib_accessor_class_values_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_raw_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int unpack_double_element(grib_accessor*, size_t i, double* val) override; + int unpack_double_element_set(grib_accessor*, const size_t* index_array, size_t len, double* val_array) override; +}; +#endif /* eccodes_accessor_data_raw_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_run_length_packing.h b/src/accessor/grib_accessor_class_data_run_length_packing.h index 3125fdcf4..f57d69c39 100644 --- a/src/accessor/grib_accessor_class_data_run_length_packing.h +++ b/src/accessor/grib_accessor_class_data_run_length_packing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_run_length_packing_h #define eccodes_accessor_data_run_length_packing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_values.h" class grib_accessor_data_run_length_packing_t : public grib_accessor_values_t diff --git a/src/accessor/grib_accessor_class_data_run_length_packing.h.bak b/src/accessor/grib_accessor_class_data_run_length_packing.h.bak new file mode 100644 index 000000000..3125fdcf4 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_run_length_packing.h.bak @@ -0,0 +1,40 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_run_length_packing_h +#define eccodes_accessor_data_run_length_packing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_values.h" + +class grib_accessor_data_run_length_packing_t : public grib_accessor_values_t +{ +public: + /* Members defined in data_run_length_packing */ + const char* number_of_values; + const char* bits_per_value; + const char* max_level_value; + const char* number_of_level_values; + const char* decimal_scale_factor; + const char* level_values; +}; + +class grib_accessor_class_data_run_length_packing_t : public grib_accessor_class_values_t +{ +public: + grib_accessor_class_data_run_length_packing_t(const char* name) : grib_accessor_class_values_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_run_length_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_run_length_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_secondary_bitmap.h b/src/accessor/grib_accessor_class_data_secondary_bitmap.h index 3ac86e324..06a2ab576 100644 --- a/src/accessor/grib_accessor_class_data_secondary_bitmap.h +++ b/src/accessor/grib_accessor_class_data_secondary_bitmap.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_secondary_bitmap_h #define eccodes_accessor_data_secondary_bitmap_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_data_secondary_bitmap_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_data_secondary_bitmap.h.bak b/src/accessor/grib_accessor_class_data_secondary_bitmap.h.bak new file mode 100644 index 000000000..3ac86e324 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_secondary_bitmap.h.bak @@ -0,0 +1,38 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_secondary_bitmap_h +#define eccodes_accessor_data_secondary_bitmap_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_data_secondary_bitmap_t : public grib_accessor_gen_t +{ +public: + /* Members defined in data_secondary_bitmap */ + const char* primary_bitmap; + const char* secondary_bitmap; + const char* missing_value; + const char* expand_by; +}; + +class grib_accessor_class_data_secondary_bitmap_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_data_secondary_bitmap_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_secondary_bitmap_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_secondary_bitmap_h */ diff --git a/src/accessor/grib_accessor_class_data_sh_packed.h b/src/accessor/grib_accessor_class_data_sh_packed.h index 2d7cbdf47..109534010 100644 --- a/src/accessor/grib_accessor_class_data_sh_packed.h +++ b/src/accessor/grib_accessor_class_data_sh_packed.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_sh_packed_h #define eccodes_accessor_data_sh_packed_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_simple_packing.h" class grib_accessor_data_sh_packed_t : public grib_accessor_data_simple_packing_t diff --git a/src/accessor/grib_accessor_class_data_sh_packed.h.bak b/src/accessor/grib_accessor_class_data_sh_packed.h.bak new file mode 100644 index 000000000..2d7cbdf47 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_sh_packed.h.bak @@ -0,0 +1,43 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_sh_packed_h +#define eccodes_accessor_data_sh_packed_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_simple_packing.h" + +class grib_accessor_data_sh_packed_t : public grib_accessor_data_simple_packing_t +{ +public: + /* Members defined in data_sh_packed */ + const char* GRIBEX_sh_bug_present; + const char* ieee_floats; + const char* laplacianOperatorIsSet; + const char* laplacianOperator; + const char* sub_j; + const char* sub_k; + const char* sub_m; + const char* pen_j; + const char* pen_k; + const char* pen_m; +}; + +class grib_accessor_class_data_sh_packed_t : public grib_accessor_class_data_simple_packing_t +{ +public: + grib_accessor_class_data_sh_packed_t(const char* name) : grib_accessor_class_data_simple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_sh_packed_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_sh_packed_h */ diff --git a/src/accessor/grib_accessor_class_data_sh_unpacked.h b/src/accessor/grib_accessor_class_data_sh_unpacked.h index 4b1e893c0..3f9c57dc8 100644 --- a/src/accessor/grib_accessor_class_data_sh_unpacked.h +++ b/src/accessor/grib_accessor_class_data_sh_unpacked.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_sh_unpacked_h #define eccodes_accessor_data_sh_unpacked_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_data_simple_packing.h" class grib_accessor_data_sh_unpacked_t : public grib_accessor_data_simple_packing_t diff --git a/src/accessor/grib_accessor_class_data_sh_unpacked.h.bak b/src/accessor/grib_accessor_class_data_sh_unpacked.h.bak new file mode 100644 index 000000000..4b1e893c0 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_sh_unpacked.h.bak @@ -0,0 +1,43 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_sh_unpacked_h +#define eccodes_accessor_data_sh_unpacked_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_data_simple_packing.h" + +class grib_accessor_data_sh_unpacked_t : public grib_accessor_data_simple_packing_t +{ +public: + /* Members defined in data_sh_unpacked */ + const char* GRIBEX_sh_bug_present; + const char* ieee_floats; + const char* laplacianOperatorIsSet; + const char* laplacianOperator; + const char* sub_j; + const char* sub_k; + const char* sub_m; + const char* pen_j; + const char* pen_k; + const char* pen_m; +}; + +class grib_accessor_class_data_sh_unpacked_t : public grib_accessor_class_data_simple_packing_t +{ +public: + grib_accessor_class_data_sh_unpacked_t(const char* name) : grib_accessor_class_data_simple_packing_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_sh_unpacked_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_sh_unpacked_h */ diff --git a/src/accessor/grib_accessor_class_data_shsimple_packing.h b/src/accessor/grib_accessor_class_data_shsimple_packing.h index 851907eb9..b4c388902 100644 --- a/src/accessor/grib_accessor_class_data_shsimple_packing.h +++ b/src/accessor/grib_accessor_class_data_shsimple_packing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_data_shsimple_packing_h #define eccodes_accessor_data_shsimple_packing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_data_shsimple_packing_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_data_shsimple_packing.h.bak b/src/accessor/grib_accessor_class_data_shsimple_packing.h.bak new file mode 100644 index 000000000..851907eb9 --- /dev/null +++ b/src/accessor/grib_accessor_class_data_shsimple_packing.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_shsimple_packing_h +#define eccodes_accessor_data_shsimple_packing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_data_shsimple_packing_t : public grib_accessor_gen_t +{ +public: + /* Members defined in data_shsimple_packing */ + const char* coded_values; + const char* real_part; + int dirty; +}; + +class grib_accessor_class_data_shsimple_packing_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_data_shsimple_packing_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_shsimple_packing_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_data_shsimple_packing_h */ diff --git a/src/accessor/grib_accessor_class_data_simple_packing.h.bak b/src/accessor/grib_accessor_class_data_simple_packing.h.bak new file mode 100644 index 000000000..92f355b3f --- /dev/null +++ b/src/accessor/grib_accessor_class_data_simple_packing.h.bak @@ -0,0 +1,195 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_data_simple_packing_h +#define eccodes_accessor_data_simple_packing_h + +#include "grib_accessor_class_values.h" +#include "grib_bits_any_endian_simple.h" +#include "grib_scaling.h" + +class grib_accessor_data_simple_packing_t : public grib_accessor_values_t +{ +public: + /* Members defined in data_simple_packing */ + int edition; + const char* units_factor; + const char* units_bias; + const char* changing_precision; + const char* number_of_values; + const char* bits_per_value; + const char* reference_value; + const char* binary_scale_factor; + const char* decimal_scale_factor; + const char* optimize_scaling_factor; +}; + +class grib_accessor_class_data_simple_packing_t : public grib_accessor_class_values_t +{ +public: + grib_accessor_class_data_simple_packing_t(const char* name) : grib_accessor_class_values_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_data_simple_packing_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int unpack_double_element(grib_accessor*, size_t i, double* val) override; + int unpack_double_element_set(grib_accessor*, const size_t* index_array, size_t len, double* val_array) override; + int unpack_double_subarray(grib_accessor*, double* val, size_t start, size_t len) override; + +private: + template int unpack(grib_accessor*, T*, size_t*); +}; + + +template +int grib_accessor_class_data_simple_packing_t::unpack(grib_accessor* a, T* val, size_t* len){ + static_assert(std::is_floating_point::value, "Requires floating point numbers"); + + grib_accessor_data_simple_packing_t* self = (grib_accessor_data_simple_packing_t*)a; + const char* cclass_name = a->cclass->name; + grib_handle* gh = grib_handle_of_accessor(a); + unsigned char* buf = (unsigned char*)grib_handle_of_accessor(a)->buffer->data; + + size_t i = 0; + int err = 0; + size_t n_vals = 0; + long pos = 0; + long count = 0; + + double reference_value; + long binary_scale_factor; + long bits_per_value; + long decimal_scale_factor; + long offsetBeforeData; + double s = 0; + double d = 0; + double units_factor = 1.0; + double units_bias = 0.0; + + err = a->value_count(&count); if (err) + return err; + n_vals = count; + + if (*len < n_vals) { + *len = (long)n_vals; + return GRIB_ARRAY_TOO_SMALL; + } + + if ((err = grib_get_long_internal(gh, self->bits_per_value, &bits_per_value)) != GRIB_SUCCESS) + return err; + + /* + * check we don't decode bpv > max(ulong) as it is + * not currently supported by the algorithm + */ + if (bits_per_value > (sizeof(long) * 8)) { + return GRIB_INVALID_BPV; + } + + if (self->units_factor && + (grib_get_double_internal(gh, self->units_factor, &units_factor) == GRIB_SUCCESS)) { + grib_set_double_internal(gh, self->units_factor, 1.0); + } + + if (self->units_bias && + (grib_get_double_internal(gh, self->units_bias, &units_bias) == GRIB_SUCCESS)) { + grib_set_double_internal(gh, self->units_bias, 0.0); + } + + if (n_vals == 0) { + *len = 0; + return GRIB_SUCCESS; + } + + self->dirty = 0; + + if ((err = grib_get_double_internal(gh, self->reference_value, &reference_value)) != GRIB_SUCCESS) + return err; + + if ((err = grib_get_long_internal(gh, self->binary_scale_factor, &binary_scale_factor)) != GRIB_SUCCESS) + return err; + + if ((err = grib_get_long_internal(gh, self->decimal_scale_factor, &decimal_scale_factor)) != GRIB_SUCCESS) + return err; + + /* Special case */ + + if (bits_per_value == 0) { + for (i = 0; i < n_vals; i++) + val[i] = reference_value; + *len = n_vals; + return GRIB_SUCCESS; + } + + s = codes_power(binary_scale_factor, 2); + d = codes_power(-decimal_scale_factor, 10); + + grib_context_log(a->context, GRIB_LOG_DEBUG, + "%s %s: Creating %s, %zu values", cclass_name, __func__, a->name, n_vals); + + offsetBeforeData = a->byte_offset(); buf += offsetBeforeData; + + /*Assert(((bits_per_value*n_vals)/8) < (1<<29));*/ /* See GRIB-787 */ + + /* ECC-941 */ + if (!a->context->ieee_packing) { + /* Must turn off this check when the environment variable ECCODES_GRIB_IEEE_PACKING is on */ + long offsetAfterData = 0; + err = grib_get_long(gh, "offsetAfterData", &offsetAfterData); + if (!err && offsetAfterData > offsetBeforeData) { + const long valuesSize = (bits_per_value * n_vals) / 8; /*in bytes*/ + if (offsetBeforeData + valuesSize > offsetAfterData) { + grib_context_log(a->context, GRIB_LOG_ERROR, + "%s: Data section size mismatch: " + "offset before data=%ld, offset after data=%ld (num values=%zu, bits per value=%ld)", + cclass_name, offsetBeforeData, offsetAfterData, n_vals, bits_per_value); + return GRIB_DECODING_ERROR; + } + } + // if (offsetBeforeData == offsetAfterData) { + // /* Crazy case: Constant field with bitsPerValue > 0 */ + // for (i = 0; i < n_vals; i++) + // val[i] = reference_value; + // *len = n_vals; + // return GRIB_SUCCESS; + // } + } + + grib_context_log(a->context, GRIB_LOG_DEBUG, + "%s %s: calling outline function: bpv: %ld, rv: %g, bsf: %ld, dsf: %ld", + cclass_name, __func__, bits_per_value, reference_value, binary_scale_factor, decimal_scale_factor); + grib_decode_array(buf, &pos, bits_per_value, reference_value, s, d, n_vals, val); + + *len = (long)n_vals; + + if (units_factor != 1.0) { + if (units_bias != 0.0) { + for (i = 0; i < n_vals; i++) { + val[i] = val[i] * units_factor + units_bias; + } + } else { + for (i = 0; i < n_vals; i++) { + val[i] *= units_factor; + } + } + } + else if (units_bias != 0.0) { + for (i = 0; i < n_vals; i++) { + val[i] += units_bias; + } + } + return err; +} + + +#endif /* eccodes_accessor_data_simple_packing_h */ diff --git a/src/accessor/grib_accessor_class_decimal_precision.h b/src/accessor/grib_accessor_class_decimal_precision.h index 455d77946..a3e3e3024 100644 --- a/src/accessor/grib_accessor_class_decimal_precision.h +++ b/src/accessor/grib_accessor_class_decimal_precision.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_decimal_precision_h #define eccodes_accessor_decimal_precision_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_decimal_precision_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_decimal_precision.h.bak b/src/accessor/grib_accessor_class_decimal_precision.h.bak new file mode 100644 index 000000000..455d77946 --- /dev/null +++ b/src/accessor/grib_accessor_class_decimal_precision.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_decimal_precision_h +#define eccodes_accessor_decimal_precision_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_decimal_precision_t : public grib_accessor_long_t +{ +public: + /* Members defined in decimal_precision */ + const char* values; + const char* bits_per_value; + const char* changing_precision; + const char* decimal_scale_factor; +}; + +class grib_accessor_class_decimal_precision_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_decimal_precision_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_decimal_precision_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_decimal_precision_h */ diff --git a/src/accessor/grib_accessor_class_dictionary.h b/src/accessor/grib_accessor_class_dictionary.h index 7f86a44ae..353cb9efa 100644 --- a/src/accessor/grib_accessor_class_dictionary.h +++ b/src/accessor/grib_accessor_class_dictionary.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_dictionary_h #define eccodes_accessor_dictionary_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_dictionary_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_dictionary.h.bak b/src/accessor/grib_accessor_class_dictionary.h.bak new file mode 100644 index 000000000..7f86a44ae --- /dev/null +++ b/src/accessor/grib_accessor_class_dictionary.h.bak @@ -0,0 +1,42 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_dictionary_h +#define eccodes_accessor_dictionary_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_dictionary_t : public grib_accessor_gen_t +{ +public: + /* Members defined in dictionary */ + const char* dictionary; + const char* key; + long column; + const char* masterDir; + const char* localDir; +}; + +class grib_accessor_class_dictionary_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_dictionary_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_dictionary_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_dictionary_h */ diff --git a/src/accessor/grib_accessor_class_dirty.h b/src/accessor/grib_accessor_class_dirty.h index 7a008ce29..78d4fcb64 100644 --- a/src/accessor/grib_accessor_class_dirty.h +++ b/src/accessor/grib_accessor_class_dirty.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_dirty_h #define eccodes_accessor_dirty_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_dirty_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_dirty.h.bak b/src/accessor/grib_accessor_class_dirty.h.bak new file mode 100644 index 000000000..7a008ce29 --- /dev/null +++ b/src/accessor/grib_accessor_class_dirty.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_dirty_h +#define eccodes_accessor_dirty_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_dirty_t : public grib_accessor_long_t +{ +public: + /* Members defined in dirty */ + const char* accessor; +}; + +class grib_accessor_class_dirty_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_dirty_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_dirty_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_dirty_h */ diff --git a/src/accessor/grib_accessor_class_divdouble.h b/src/accessor/grib_accessor_class_divdouble.h index e10239676..eb2357a3e 100644 --- a/src/accessor/grib_accessor_class_divdouble.h +++ b/src/accessor/grib_accessor_class_divdouble.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_divdouble_h #define eccodes_accessor_divdouble_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_divdouble_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_divdouble.h.bak b/src/accessor/grib_accessor_class_divdouble.h.bak new file mode 100644 index 000000000..e10239676 --- /dev/null +++ b/src/accessor/grib_accessor_class_divdouble.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_divdouble_h +#define eccodes_accessor_divdouble_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_divdouble_t : public grib_accessor_double_t +{ +public: + /* Members defined in divdouble */ + const char* val; + double divisor; +}; + +class grib_accessor_class_divdouble_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_divdouble_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_divdouble_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_divdouble_h */ diff --git a/src/accessor/grib_accessor_class_double.h.bak b/src/accessor/grib_accessor_class_double.h.bak new file mode 100644 index 000000000..1c1e2fb4f --- /dev/null +++ b/src/accessor/grib_accessor_class_double.h.bak @@ -0,0 +1,30 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_double_h +#define eccodes_accessor_double_h + +#include "grib_accessor_class_gen.h" + +class grib_accessor_double_t : public grib_accessor_gen_t {}; + +class grib_accessor_class_double_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_double_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_double_t{}; } + int get_native_type(grib_accessor*) override; + int pack_missing(grib_accessor*) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + int compare(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_double_h */ diff --git a/src/accessor/grib_accessor_class_element.h b/src/accessor/grib_accessor_class_element.h index f22109be2..fe1d58ecd 100644 --- a/src/accessor/grib_accessor_class_element.h +++ b/src/accessor/grib_accessor_class_element.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_element_h #define eccodes_accessor_element_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_element_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_element.h.bak b/src/accessor/grib_accessor_class_element.h.bak new file mode 100644 index 000000000..f22109be2 --- /dev/null +++ b/src/accessor/grib_accessor_class_element.h.bak @@ -0,0 +1,36 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_element_h +#define eccodes_accessor_element_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_element_t : public grib_accessor_long_t +{ +public: + /* Members defined in element */ + const char* array; + long element; +}; + +class grib_accessor_class_element_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_element_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_element_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_element_h */ diff --git a/src/accessor/grib_accessor_class_evaluate.h b/src/accessor/grib_accessor_class_evaluate.h index e65c6473b..cfaf92c00 100644 --- a/src/accessor/grib_accessor_class_evaluate.h +++ b/src/accessor/grib_accessor_class_evaluate.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_evaluate_h #define eccodes_accessor_evaluate_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_evaluate_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_evaluate.h.bak b/src/accessor/grib_accessor_class_evaluate.h.bak new file mode 100644 index 000000000..e65c6473b --- /dev/null +++ b/src/accessor/grib_accessor_class_evaluate.h.bak @@ -0,0 +1,33 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_evaluate_h +#define eccodes_accessor_evaluate_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_evaluate_t : public grib_accessor_long_t +{ +public: + /* Members defined in evaluate */ + grib_arguments* arg; +}; + +class grib_accessor_class_evaluate_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_evaluate_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_evaluate_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_evaluate_h */ diff --git a/src/accessor/grib_accessor_class_expanded_descriptors.h b/src/accessor/grib_accessor_class_expanded_descriptors.h index be2094d4f..419b28c61 100644 --- a/src/accessor/grib_accessor_class_expanded_descriptors.h +++ b/src/accessor/grib_accessor_class_expanded_descriptors.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_expanded_descriptors_h #define eccodes_accessor_expanded_descriptors_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_expanded_descriptors_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_expanded_descriptors.h.bak b/src/accessor/grib_accessor_class_expanded_descriptors.h.bak new file mode 100644 index 000000000..be2094d4f --- /dev/null +++ b/src/accessor/grib_accessor_class_expanded_descriptors.h.bak @@ -0,0 +1,47 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_expanded_descriptors_h +#define eccodes_accessor_expanded_descriptors_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_expanded_descriptors_t : public grib_accessor_long_t +{ +public: + /* Members defined in expanded_descriptors */ + const char* unexpandedDescriptors; + const char* sequence; + const char* expandedName; + const char* tablesAccessorName; + bufr_descriptors_array* expanded; + int rank; + grib_accessor* expandedAccessor; + int do_expand; + grib_accessor* tablesAccessor; +}; + +class grib_accessor_class_expanded_descriptors_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_expanded_descriptors_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_expanded_descriptors_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string_array(grib_accessor*, char**, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_expanded_descriptors_h */ diff --git a/src/accessor/grib_accessor_class_from_scale_factor_scaled_value.h b/src/accessor/grib_accessor_class_from_scale_factor_scaled_value.h index 1874c559f..d14cb9c56 100644 --- a/src/accessor/grib_accessor_class_from_scale_factor_scaled_value.h +++ b/src/accessor/grib_accessor_class_from_scale_factor_scaled_value.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_from_scale_factor_scaled_value_h #define eccodes_accessor_from_scale_factor_scaled_value_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_from_scale_factor_scaled_value_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_from_scale_factor_scaled_value.h.bak b/src/accessor/grib_accessor_class_from_scale_factor_scaled_value.h.bak new file mode 100644 index 000000000..1874c559f --- /dev/null +++ b/src/accessor/grib_accessor_class_from_scale_factor_scaled_value.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_from_scale_factor_scaled_value_h +#define eccodes_accessor_from_scale_factor_scaled_value_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_from_scale_factor_scaled_value_t : public grib_accessor_double_t +{ +public: + /* Members defined in from_scale_factor_scaled_value */ + const char* scaleFactor; + const char* scaledValue; +}; + +class grib_accessor_class_from_scale_factor_scaled_value_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_from_scale_factor_scaled_value_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_from_scale_factor_scaled_value_t{}; } + int is_missing(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_from_scale_factor_scaled_value_h */ diff --git a/src/accessor/grib_accessor_class_g1_half_byte_codeflag.h b/src/accessor/grib_accessor_class_g1_half_byte_codeflag.h index 9c5890aa3..bf6ae7372 100644 --- a/src/accessor/grib_accessor_class_g1_half_byte_codeflag.h +++ b/src/accessor/grib_accessor_class_g1_half_byte_codeflag.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g1_half_byte_codeflag_h #define eccodes_accessor_g1_half_byte_codeflag_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_g1_half_byte_codeflag_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_g1_half_byte_codeflag.h.bak b/src/accessor/grib_accessor_class_g1_half_byte_codeflag.h.bak new file mode 100644 index 000000000..9c5890aa3 --- /dev/null +++ b/src/accessor/grib_accessor_class_g1_half_byte_codeflag.h.bak @@ -0,0 +1,35 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g1_half_byte_codeflag_h +#define eccodes_accessor_g1_half_byte_codeflag_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_g1_half_byte_codeflag_t : public grib_accessor_gen_t +{ +public: + /* Members defined in g1_half_byte_codeflag */ +}; + +class grib_accessor_class_g1_half_byte_codeflag_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_g1_half_byte_codeflag_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g1_half_byte_codeflag_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g1_half_byte_codeflag_h */ diff --git a/src/accessor/grib_accessor_class_g1_message_length.h b/src/accessor/grib_accessor_class_g1_message_length.h index c3b865ec0..65d1983a9 100644 --- a/src/accessor/grib_accessor_class_g1_message_length.h +++ b/src/accessor/grib_accessor_class_g1_message_length.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g1_message_length_h #define eccodes_accessor_g1_message_length_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_section_length.h" class grib_accessor_g1_message_length_t : public grib_accessor_section_length_t diff --git a/src/accessor/grib_accessor_class_g1_message_length.h.bak b/src/accessor/grib_accessor_class_g1_message_length.h.bak new file mode 100644 index 000000000..c3b865ec0 --- /dev/null +++ b/src/accessor/grib_accessor_class_g1_message_length.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g1_message_length_h +#define eccodes_accessor_g1_message_length_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_section_length.h" + +class grib_accessor_g1_message_length_t : public grib_accessor_section_length_t +{ +public: + /* Members defined in g1_message_length */ + const char *sec4_length; +}; + +class grib_accessor_class_g1_message_length_t : public grib_accessor_class_section_length_t +{ +public: + grib_accessor_class_g1_message_length_t(const char* name) : grib_accessor_class_section_length_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g1_message_length_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g1_message_length_h */ diff --git a/src/accessor/grib_accessor_class_g1_section4_length.h b/src/accessor/grib_accessor_class_g1_section4_length.h index 0a1b0c768..0cb88362a 100644 --- a/src/accessor/grib_accessor_class_g1_section4_length.h +++ b/src/accessor/grib_accessor_class_g1_section4_length.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g1_section4_length_h #define eccodes_accessor_g1_section4_length_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_section_length.h" class grib_accessor_g1_section4_length_t : public grib_accessor_section_length_t diff --git a/src/accessor/grib_accessor_class_g1_section4_length.h.bak b/src/accessor/grib_accessor_class_g1_section4_length.h.bak new file mode 100644 index 000000000..0a1b0c768 --- /dev/null +++ b/src/accessor/grib_accessor_class_g1_section4_length.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g1_section4_length_h +#define eccodes_accessor_g1_section4_length_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_section_length.h" + +class grib_accessor_g1_section4_length_t : public grib_accessor_section_length_t +{ +public: + /* Members defined in g1_section4_length */ + const char* total_length; +}; + +class grib_accessor_class_g1_section4_length_t : public grib_accessor_class_section_length_t +{ +public: + grib_accessor_class_g1_section4_length_t(const char* name) : grib_accessor_class_section_length_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g1_section4_length_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g1_section4_length_h */ diff --git a/src/accessor/grib_accessor_class_g1bitmap.h b/src/accessor/grib_accessor_class_g1bitmap.h index b34344d1f..d27f6b4eb 100644 --- a/src/accessor/grib_accessor_class_g1bitmap.h +++ b/src/accessor/grib_accessor_class_g1bitmap.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g1bitmap_h #define eccodes_accessor_g1bitmap_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_bitmap.h" class grib_accessor_g1bitmap_t : public grib_accessor_bitmap_t diff --git a/src/accessor/grib_accessor_class_g1bitmap.h.bak b/src/accessor/grib_accessor_class_g1bitmap.h.bak new file mode 100644 index 000000000..b34344d1f --- /dev/null +++ b/src/accessor/grib_accessor_class_g1bitmap.h.bak @@ -0,0 +1,35 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g1bitmap_h +#define eccodes_accessor_g1bitmap_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_bitmap.h" + +class grib_accessor_g1bitmap_t : public grib_accessor_bitmap_t +{ +public: + /* Members defined in g1bitmap */ + const char* unusedBits; +}; + +class grib_accessor_class_g1bitmap_t : public grib_accessor_class_bitmap_t +{ +public: + grib_accessor_class_g1bitmap_t(const char* name) : grib_accessor_class_bitmap_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g1bitmap_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_bytes(grib_accessor*, unsigned char*, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g1bitmap_h */ diff --git a/src/accessor/grib_accessor_class_g1date.h b/src/accessor/grib_accessor_class_g1date.h index 27e71189f..734b2a3b5 100644 --- a/src/accessor/grib_accessor_class_g1date.h +++ b/src/accessor/grib_accessor_class_g1date.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g1date_h #define eccodes_accessor_g1date_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_g1date_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_g1date.h.bak b/src/accessor/grib_accessor_class_g1date.h.bak new file mode 100644 index 000000000..27e71189f --- /dev/null +++ b/src/accessor/grib_accessor_class_g1date.h.bak @@ -0,0 +1,39 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g1date_h +#define eccodes_accessor_g1date_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_g1date_t : public grib_accessor_long_t +{ +public: + /* Members defined in g1date */ + const char* century; + const char* year; + const char* month; + const char* day; +}; + +class grib_accessor_class_g1date_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_g1date_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g1date_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g1date_h */ diff --git a/src/accessor/grib_accessor_class_g1day_of_the_year_date.h b/src/accessor/grib_accessor_class_g1day_of_the_year_date.h index 1563cdb9d..bc12f541e 100644 --- a/src/accessor/grib_accessor_class_g1day_of_the_year_date.h +++ b/src/accessor/grib_accessor_class_g1day_of_the_year_date.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g1day_of_the_year_date_h #define eccodes_accessor_g1day_of_the_year_date_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_g1date.h" class grib_accessor_g1day_of_the_year_date_t : public grib_accessor_g1date_t diff --git a/src/accessor/grib_accessor_class_g1day_of_the_year_date.h.bak b/src/accessor/grib_accessor_class_g1day_of_the_year_date.h.bak new file mode 100644 index 000000000..1563cdb9d --- /dev/null +++ b/src/accessor/grib_accessor_class_g1day_of_the_year_date.h.bak @@ -0,0 +1,33 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g1day_of_the_year_date_h +#define eccodes_accessor_g1day_of_the_year_date_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_g1date.h" + +class grib_accessor_g1day_of_the_year_date_t : public grib_accessor_g1date_t +{ +public: + /* Members defined in g1day_of_the_year_date */ +}; + +class grib_accessor_class_g1day_of_the_year_date_t : public grib_accessor_class_g1date_t +{ +public: + grib_accessor_class_g1day_of_the_year_date_t(const char* name) : grib_accessor_class_g1date_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g1day_of_the_year_date_t{}; } + int unpack_string(grib_accessor*, char*, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g1day_of_the_year_date_h */ diff --git a/src/accessor/grib_accessor_class_g1end_of_interval_monthly.h b/src/accessor/grib_accessor_class_g1end_of_interval_monthly.h index a1e29a76c..7e6ac3563 100644 --- a/src/accessor/grib_accessor_class_g1end_of_interval_monthly.h +++ b/src/accessor/grib_accessor_class_g1end_of_interval_monthly.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g1end_of_interval_monthly_h #define eccodes_accessor_g1end_of_interval_monthly_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_abstract_vector.h" class grib_accessor_g1end_of_interval_monthly_t : public grib_accessor_abstract_vector_t diff --git a/src/accessor/grib_accessor_class_g1end_of_interval_monthly.h.bak b/src/accessor/grib_accessor_class_g1end_of_interval_monthly.h.bak new file mode 100644 index 000000000..a1e29a76c --- /dev/null +++ b/src/accessor/grib_accessor_class_g1end_of_interval_monthly.h.bak @@ -0,0 +1,36 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g1end_of_interval_monthly_h +#define eccodes_accessor_g1end_of_interval_monthly_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_abstract_vector.h" + +class grib_accessor_g1end_of_interval_monthly_t : public grib_accessor_abstract_vector_t +{ +public: + /* Members defined in g1end_of_interval_monthly */ + const char* verifyingMonth; +}; + +class grib_accessor_class_g1end_of_interval_monthly_t : public grib_accessor_class_abstract_vector_t +{ +public: + grib_accessor_class_g1end_of_interval_monthly_t(const char* name) : grib_accessor_class_abstract_vector_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g1end_of_interval_monthly_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int compare(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_g1end_of_interval_monthly_h */ diff --git a/src/accessor/grib_accessor_class_g1fcperiod.h b/src/accessor/grib_accessor_class_g1fcperiod.h index 3c0ff2c49..b2862cb78 100644 --- a/src/accessor/grib_accessor_class_g1fcperiod.h +++ b/src/accessor/grib_accessor_class_g1fcperiod.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g1fcperiod_h #define eccodes_accessor_g1fcperiod_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_g1step_range.h" class grib_accessor_g1fcperiod_t : public grib_accessor_g1step_range_t diff --git a/src/accessor/grib_accessor_class_g1fcperiod.h.bak b/src/accessor/grib_accessor_class_g1fcperiod.h.bak new file mode 100644 index 000000000..3c0ff2c49 --- /dev/null +++ b/src/accessor/grib_accessor_class_g1fcperiod.h.bak @@ -0,0 +1,31 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g1fcperiod_h +#define eccodes_accessor_g1fcperiod_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_g1step_range.h" + +class grib_accessor_g1fcperiod_t : public grib_accessor_g1step_range_t +{ +public: + /* Members defined in g1fcperiod */ +}; + +class grib_accessor_class_g1fcperiod_t : public grib_accessor_class_g1step_range_t +{ +public: + grib_accessor_class_g1fcperiod_t(const char* name) : grib_accessor_class_g1step_range_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g1fcperiod_t{}; } + int unpack_string(grib_accessor*, char*, size_t* len) override; +}; +#endif /* eccodes_accessor_g1fcperiod_h */ diff --git a/src/accessor/grib_accessor_class_g1forecastmonth.h b/src/accessor/grib_accessor_class_g1forecastmonth.h index 6d2b9ee63..3a5fbb89b 100644 --- a/src/accessor/grib_accessor_class_g1forecastmonth.h +++ b/src/accessor/grib_accessor_class_g1forecastmonth.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g1forecastmonth_h #define eccodes_accessor_g1forecastmonth_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_g1forecastmonth_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_g1forecastmonth.h.bak b/src/accessor/grib_accessor_class_g1forecastmonth.h.bak new file mode 100644 index 000000000..6d2b9ee63 --- /dev/null +++ b/src/accessor/grib_accessor_class_g1forecastmonth.h.bak @@ -0,0 +1,40 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g1forecastmonth_h +#define eccodes_accessor_g1forecastmonth_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_g1forecastmonth_t : public grib_accessor_long_t +{ +public: + /* Members defined in g1forecastmonth */ + const char* verification_yearmonth; + const char* base_date; + const char* day; + const char* hour; + const char* fcmonth; + const char* check; +}; + +class grib_accessor_class_g1forecastmonth_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_g1forecastmonth_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g1forecastmonth_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g1forecastmonth_h */ diff --git a/src/accessor/grib_accessor_class_g1monthlydate.h b/src/accessor/grib_accessor_class_g1monthlydate.h index 8efa9cf16..b279e56c3 100644 --- a/src/accessor/grib_accessor_class_g1monthlydate.h +++ b/src/accessor/grib_accessor_class_g1monthlydate.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g1monthlydate_h #define eccodes_accessor_g1monthlydate_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_g1monthlydate_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_g1monthlydate.h.bak b/src/accessor/grib_accessor_class_g1monthlydate.h.bak new file mode 100644 index 000000000..8efa9cf16 --- /dev/null +++ b/src/accessor/grib_accessor_class_g1monthlydate.h.bak @@ -0,0 +1,33 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g1monthlydate_h +#define eccodes_accessor_g1monthlydate_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_g1monthlydate_t : public grib_accessor_long_t +{ +public: + /* Members defined in g1monthlydate */ + const char* date; +}; + +class grib_accessor_class_g1monthlydate_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_g1monthlydate_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g1monthlydate_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g1monthlydate_h */ diff --git a/src/accessor/grib_accessor_class_g1number_of_coded_values_sh_complex.h b/src/accessor/grib_accessor_class_g1number_of_coded_values_sh_complex.h index 764bfa04d..75b21875b 100644 --- a/src/accessor/grib_accessor_class_g1number_of_coded_values_sh_complex.h +++ b/src/accessor/grib_accessor_class_g1number_of_coded_values_sh_complex.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g1number_of_coded_values_sh_complex_h #define eccodes_accessor_g1number_of_coded_values_sh_complex_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_g1number_of_coded_values_sh_complex_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_g1number_of_coded_values_sh_complex.h.bak b/src/accessor/grib_accessor_class_g1number_of_coded_values_sh_complex.h.bak new file mode 100644 index 000000000..764bfa04d --- /dev/null +++ b/src/accessor/grib_accessor_class_g1number_of_coded_values_sh_complex.h.bak @@ -0,0 +1,40 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g1number_of_coded_values_sh_complex_h +#define eccodes_accessor_g1number_of_coded_values_sh_complex_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_g1number_of_coded_values_sh_complex_t : public grib_accessor_long_t +{ +public: + /* Members defined in g1number_of_coded_values_sh_complex */ + const char* numberOfValues; + const char* bitsPerValue; + const char* offsetBeforeData; + const char* offsetAfterData; + const char* unusedBits; + const char* JS; + const char* KS; + const char* MS; +}; + +class grib_accessor_class_g1number_of_coded_values_sh_complex_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_g1number_of_coded_values_sh_complex_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g1number_of_coded_values_sh_complex_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g1number_of_coded_values_sh_complex_h */ diff --git a/src/accessor/grib_accessor_class_g1number_of_coded_values_sh_simple.h b/src/accessor/grib_accessor_class_g1number_of_coded_values_sh_simple.h index fb5ab298d..d59e4999c 100644 --- a/src/accessor/grib_accessor_class_g1number_of_coded_values_sh_simple.h +++ b/src/accessor/grib_accessor_class_g1number_of_coded_values_sh_simple.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g1number_of_coded_values_sh_simple_h #define eccodes_accessor_g1number_of_coded_values_sh_simple_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_g1number_of_coded_values_sh_simple_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_g1number_of_coded_values_sh_simple.h.bak b/src/accessor/grib_accessor_class_g1number_of_coded_values_sh_simple.h.bak new file mode 100644 index 000000000..fb5ab298d --- /dev/null +++ b/src/accessor/grib_accessor_class_g1number_of_coded_values_sh_simple.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g1number_of_coded_values_sh_simple_h +#define eccodes_accessor_g1number_of_coded_values_sh_simple_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_g1number_of_coded_values_sh_simple_t : public grib_accessor_long_t +{ +public: + /* Members defined in g1number_of_coded_values_sh_simple */ + const char* numberOfValues; + const char* bitsPerValue; + const char* offsetBeforeData; + const char* offsetAfterData; + const char* unusedBits; +}; + +class grib_accessor_class_g1number_of_coded_values_sh_simple_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_g1number_of_coded_values_sh_simple_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g1number_of_coded_values_sh_simple_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g1number_of_coded_values_sh_simple_h */ diff --git a/src/accessor/grib_accessor_class_g1step_range.h b/src/accessor/grib_accessor_class_g1step_range.h index c9c3dd911..26d7116e8 100644 --- a/src/accessor/grib_accessor_class_g1step_range.h +++ b/src/accessor/grib_accessor_class_g1step_range.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g1step_range_h #define eccodes_accessor_g1step_range_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_abstract_long_vector.h" class grib_accessor_g1step_range_t : public grib_accessor_abstract_long_vector_t diff --git a/src/accessor/grib_accessor_class_g1step_range.h.bak b/src/accessor/grib_accessor_class_g1step_range.h.bak new file mode 100644 index 000000000..c9c3dd911 --- /dev/null +++ b/src/accessor/grib_accessor_class_g1step_range.h.bak @@ -0,0 +1,48 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g1step_range_h +#define eccodes_accessor_g1step_range_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_abstract_long_vector.h" + +class grib_accessor_g1step_range_t : public grib_accessor_abstract_long_vector_t +{ +public: + /* Members defined in g1step_range */ + const char* p1; + const char* p2; + const char* timeRangeIndicator; + const char *unit; + const char *step_unit; + const char *stepType; + const char *patch_fp_precip; + int error_on_units; +}; + +class grib_accessor_class_g1step_range_t : public grib_accessor_class_abstract_long_vector_t +{ +public: + grib_accessor_class_g1step_range_t(const char* name) : grib_accessor_class_abstract_long_vector_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g1step_range_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g1step_range_h */ diff --git a/src/accessor/grib_accessor_class_g1verificationdate.h b/src/accessor/grib_accessor_class_g1verificationdate.h index 198801aba..70edcf7d8 100644 --- a/src/accessor/grib_accessor_class_g1verificationdate.h +++ b/src/accessor/grib_accessor_class_g1verificationdate.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g1verificationdate_h #define eccodes_accessor_g1verificationdate_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_g1verificationdate_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_g1verificationdate.h.bak b/src/accessor/grib_accessor_class_g1verificationdate.h.bak new file mode 100644 index 000000000..198801aba --- /dev/null +++ b/src/accessor/grib_accessor_class_g1verificationdate.h.bak @@ -0,0 +1,35 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g1verificationdate_h +#define eccodes_accessor_g1verificationdate_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_g1verificationdate_t : public grib_accessor_long_t +{ +public: + /* Members defined in g1verificationdate */ + const char* date; + const char* time; + const char* step; +}; + +class grib_accessor_class_g1verificationdate_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_g1verificationdate_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g1verificationdate_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g1verificationdate_h */ diff --git a/src/accessor/grib_accessor_class_g2_aerosol.h b/src/accessor/grib_accessor_class_g2_aerosol.h index fb29a9561..f9feaa5e8 100644 --- a/src/accessor/grib_accessor_class_g2_aerosol.h +++ b/src/accessor/grib_accessor_class_g2_aerosol.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g2_aerosol_h #define eccodes_accessor_g2_aerosol_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_unsigned.h" class grib_accessor_g2_aerosol_t : public grib_accessor_unsigned_t diff --git a/src/accessor/grib_accessor_class_g2_aerosol.h.bak b/src/accessor/grib_accessor_class_g2_aerosol.h.bak new file mode 100644 index 000000000..fb29a9561 --- /dev/null +++ b/src/accessor/grib_accessor_class_g2_aerosol.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g2_aerosol_h +#define eccodes_accessor_g2_aerosol_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_unsigned.h" + +class grib_accessor_g2_aerosol_t : public grib_accessor_unsigned_t +{ +public: + /* Members defined in g2_aerosol */ + const char* productDefinitionTemplateNumber; + const char* stepType; + int optical; +}; + +class grib_accessor_class_g2_aerosol_t : public grib_accessor_class_unsigned_t +{ +public: + grib_accessor_class_g2_aerosol_t(const char* name) : grib_accessor_class_unsigned_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g2_aerosol_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g2_aerosol_h */ diff --git a/src/accessor/grib_accessor_class_g2_chemical.h b/src/accessor/grib_accessor_class_g2_chemical.h index 9cfe4f8bc..01a159008 100644 --- a/src/accessor/grib_accessor_class_g2_chemical.h +++ b/src/accessor/grib_accessor_class_g2_chemical.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g2_chemical_h #define eccodes_accessor_g2_chemical_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_unsigned.h" class grib_accessor_g2_chemical_t : public grib_accessor_unsigned_t diff --git a/src/accessor/grib_accessor_class_g2_chemical.h.bak b/src/accessor/grib_accessor_class_g2_chemical.h.bak new file mode 100644 index 000000000..9cfe4f8bc --- /dev/null +++ b/src/accessor/grib_accessor_class_g2_chemical.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g2_chemical_h +#define eccodes_accessor_g2_chemical_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_unsigned.h" + +class grib_accessor_g2_chemical_t : public grib_accessor_unsigned_t +{ +public: + /* Members defined in g2_chemical */ + const char* productDefinitionTemplateNumber; + const char* stepType; + int chemical_type; +}; + +class grib_accessor_class_g2_chemical_t : public grib_accessor_class_unsigned_t +{ +public: + grib_accessor_class_g2_chemical_t(const char* name) : grib_accessor_class_unsigned_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g2_chemical_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g2_chemical_h */ diff --git a/src/accessor/grib_accessor_class_g2_eps.h b/src/accessor/grib_accessor_class_g2_eps.h index 7c39dd580..a29e975ea 100644 --- a/src/accessor/grib_accessor_class_g2_eps.h +++ b/src/accessor/grib_accessor_class_g2_eps.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g2_eps_h #define eccodes_accessor_g2_eps_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_unsigned.h" class grib_accessor_g2_eps_t : public grib_accessor_unsigned_t diff --git a/src/accessor/grib_accessor_class_g2_eps.h.bak b/src/accessor/grib_accessor_class_g2_eps.h.bak new file mode 100644 index 000000000..7c39dd580 --- /dev/null +++ b/src/accessor/grib_accessor_class_g2_eps.h.bak @@ -0,0 +1,39 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g2_eps_h +#define eccodes_accessor_g2_eps_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_unsigned.h" + +class grib_accessor_g2_eps_t : public grib_accessor_unsigned_t +{ +public: + /* Members defined in g2_eps */ + const char* productDefinitionTemplateNumber; + const char* stream; + const char* type; + const char* stepType; + const char* derivedForecast; +}; + +class grib_accessor_class_g2_eps_t : public grib_accessor_class_unsigned_t +{ +public: + grib_accessor_class_g2_eps_t(const char* name) : grib_accessor_class_unsigned_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g2_eps_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g2_eps_h */ diff --git a/src/accessor/grib_accessor_class_g2_mars_labeling.h b/src/accessor/grib_accessor_class_g2_mars_labeling.h index 0a678174f..a73962542 100644 --- a/src/accessor/grib_accessor_class_g2_mars_labeling.h +++ b/src/accessor/grib_accessor_class_g2_mars_labeling.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g2_mars_labeling_h #define eccodes_accessor_g2_mars_labeling_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_g2_mars_labeling_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_g2_mars_labeling.h.bak b/src/accessor/grib_accessor_class_g2_mars_labeling.h.bak new file mode 100644 index 000000000..0a678174f --- /dev/null +++ b/src/accessor/grib_accessor_class_g2_mars_labeling.h.bak @@ -0,0 +1,47 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g2_mars_labeling_h +#define eccodes_accessor_g2_mars_labeling_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_g2_mars_labeling_t : public grib_accessor_gen_t +{ +public: + /* Members defined in g2_mars_labeling */ + int index; + const char* the_class; + const char* stream; + const char* type; + const char* expver; + const char* typeOfProcessedData; + const char* productDefinitionTemplateNumber; + const char* stepType; + const char* derivedForecast; + const char* typeOfGeneratingProcess; +}; + +class grib_accessor_class_g2_mars_labeling_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_g2_mars_labeling_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g2_mars_labeling_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g2_mars_labeling_h */ diff --git a/src/accessor/grib_accessor_class_g2bitmap.h b/src/accessor/grib_accessor_class_g2bitmap.h index 9af7a3b27..3f1b85d23 100644 --- a/src/accessor/grib_accessor_class_g2bitmap.h +++ b/src/accessor/grib_accessor_class_g2bitmap.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g2bitmap_h #define eccodes_accessor_g2bitmap_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_bitmap.h" class grib_accessor_g2bitmap_t : public grib_accessor_bitmap_t diff --git a/src/accessor/grib_accessor_class_g2bitmap.h.bak b/src/accessor/grib_accessor_class_g2bitmap.h.bak new file mode 100644 index 000000000..9af7a3b27 --- /dev/null +++ b/src/accessor/grib_accessor_class_g2bitmap.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g2bitmap_h +#define eccodes_accessor_g2bitmap_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_bitmap.h" + +class grib_accessor_g2bitmap_t : public grib_accessor_bitmap_t +{ +public: + /* Members defined in g2bitmap */ + const char* numberOfValues; +}; + +class grib_accessor_class_g2bitmap_t : public grib_accessor_class_bitmap_t +{ +public: + grib_accessor_class_g2bitmap_t(const char* name) : grib_accessor_class_bitmap_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g2bitmap_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g2bitmap_h */ diff --git a/src/accessor/grib_accessor_class_g2bitmap_present.h b/src/accessor/grib_accessor_class_g2bitmap_present.h index 7b5cd3f66..18c7ac3f7 100644 --- a/src/accessor/grib_accessor_class_g2bitmap_present.h +++ b/src/accessor/grib_accessor_class_g2bitmap_present.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g2bitmap_present_h #define eccodes_accessor_g2bitmap_present_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_g2bitmap_present_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_g2bitmap_present.h.bak b/src/accessor/grib_accessor_class_g2bitmap_present.h.bak new file mode 100644 index 000000000..7b5cd3f66 --- /dev/null +++ b/src/accessor/grib_accessor_class_g2bitmap_present.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g2bitmap_present_h +#define eccodes_accessor_g2bitmap_present_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_g2bitmap_present_t : public grib_accessor_long_t +{ +public: + /* Members defined in g2bitmap_present */ + const char* bitmapIndicator; +}; + +class grib_accessor_class_g2bitmap_present_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_g2bitmap_present_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g2bitmap_present_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g2bitmap_present_h */ diff --git a/src/accessor/grib_accessor_class_g2date.h b/src/accessor/grib_accessor_class_g2date.h index 20276c6fe..1c7a8a02d 100644 --- a/src/accessor/grib_accessor_class_g2date.h +++ b/src/accessor/grib_accessor_class_g2date.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g2date_h #define eccodes_accessor_g2date_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_g2date_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_g2date.h.bak b/src/accessor/grib_accessor_class_g2date.h.bak new file mode 100644 index 000000000..20276c6fe --- /dev/null +++ b/src/accessor/grib_accessor_class_g2date.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g2date_h +#define eccodes_accessor_g2date_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_g2date_t : public grib_accessor_long_t +{ +public: + /* Members defined in g2date */ + const char* century; + const char* year; + const char* month; + const char* day; +}; + +class grib_accessor_class_g2date_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_g2date_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g2date_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g2date_h */ diff --git a/src/accessor/grib_accessor_class_g2end_step.h b/src/accessor/grib_accessor_class_g2end_step.h index 7a2d8ab21..b408681a0 100644 --- a/src/accessor/grib_accessor_class_g2end_step.h +++ b/src/accessor/grib_accessor_class_g2end_step.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g2end_step_h #define eccodes_accessor_g2end_step_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_g2end_step_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_g2end_step.h.bak b/src/accessor/grib_accessor_class_g2end_step.h.bak new file mode 100644 index 000000000..7a2d8ab21 --- /dev/null +++ b/src/accessor/grib_accessor_class_g2end_step.h.bak @@ -0,0 +1,56 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g2end_step_h +#define eccodes_accessor_g2end_step_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_g2end_step_t : public grib_accessor_long_t +{ +public: + /* Members defined in g2end_step */ + const char* start_step_value; + const char* step_units; + const char* year; + const char* month; + const char* day; + const char* hour; + const char* minute; + const char* second; + const char* year_of_end_of_interval; + const char* month_of_end_of_interval; + const char* day_of_end_of_interval; + const char* hour_of_end_of_interval; + const char* minute_of_end_of_interval; + const char* second_of_end_of_interval; + const char* time_range_unit; + const char* time_range_value; + const char* typeOfTimeIncrement; + const char* numberOfTimeRange; +}; + +class grib_accessor_class_g2end_step_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_g2end_step_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g2end_step_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g2end_step_h */ diff --git a/src/accessor/grib_accessor_class_g2grid.h b/src/accessor/grib_accessor_class_g2grid.h index 0cd177ce5..25a527b69 100644 --- a/src/accessor/grib_accessor_class_g2grid.h +++ b/src/accessor/grib_accessor_class_g2grid.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g2grid_h #define eccodes_accessor_g2grid_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_g2grid_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_g2grid.h.bak b/src/accessor/grib_accessor_class_g2grid.h.bak new file mode 100644 index 000000000..0cd177ce5 --- /dev/null +++ b/src/accessor/grib_accessor_class_g2grid.h.bak @@ -0,0 +1,42 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g2grid_h +#define eccodes_accessor_g2grid_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_g2grid_t : public grib_accessor_double_t +{ +public: + /* Members defined in g2grid */ + const char* latitude_first; + const char* longitude_first; + const char* latitude_last; + const char* longitude_last; + const char* i_increment; + const char* j_increment; + const char* basic_angle; + const char* sub_division; +}; + +class grib_accessor_class_g2grid_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_g2grid_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g2grid_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g2grid_h */ diff --git a/src/accessor/grib_accessor_class_g2latlon.h b/src/accessor/grib_accessor_class_g2latlon.h index f16e2623e..c179bdd60 100644 --- a/src/accessor/grib_accessor_class_g2latlon.h +++ b/src/accessor/grib_accessor_class_g2latlon.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g2latlon_h #define eccodes_accessor_g2latlon_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_g2latlon_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_g2latlon.h.bak b/src/accessor/grib_accessor_class_g2latlon.h.bak new file mode 100644 index 000000000..f16e2623e --- /dev/null +++ b/src/accessor/grib_accessor_class_g2latlon.h.bak @@ -0,0 +1,38 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g2latlon_h +#define eccodes_accessor_g2latlon_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_g2latlon_t : public grib_accessor_double_t +{ +public: + /* Members defined in g2latlon */ + const char* grid; + int index; + const char* given; +}; + +class grib_accessor_class_g2latlon_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_g2latlon_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g2latlon_t{}; } + int pack_missing(grib_accessor*) override; + int is_missing(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g2latlon_h */ diff --git a/src/accessor/grib_accessor_class_g2level.h b/src/accessor/grib_accessor_class_g2level.h index 567b8c1b4..a0163be8b 100644 --- a/src/accessor/grib_accessor_class_g2level.h +++ b/src/accessor/grib_accessor_class_g2level.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g2level_h #define eccodes_accessor_g2level_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_g2level_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_g2level.h.bak b/src/accessor/grib_accessor_class_g2level.h.bak new file mode 100644 index 000000000..567b8c1b4 --- /dev/null +++ b/src/accessor/grib_accessor_class_g2level.h.bak @@ -0,0 +1,40 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g2level_h +#define eccodes_accessor_g2level_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_g2level_t : public grib_accessor_long_t +{ +public: + /* Members defined in g2level */ + const char* type_first; + const char* scale_first; + const char* value_first; + const char* pressure_units; +}; + +class grib_accessor_class_g2level_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_g2level_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g2level_t{}; } + int is_missing(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g2level_h */ diff --git a/src/accessor/grib_accessor_class_g2lon.h b/src/accessor/grib_accessor_class_g2lon.h index d17a68c14..dd631adf4 100644 --- a/src/accessor/grib_accessor_class_g2lon.h +++ b/src/accessor/grib_accessor_class_g2lon.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g2lon_h #define eccodes_accessor_g2lon_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_g2lon_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_g2lon.h.bak b/src/accessor/grib_accessor_class_g2lon.h.bak new file mode 100644 index 000000000..d17a68c14 --- /dev/null +++ b/src/accessor/grib_accessor_class_g2lon.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g2lon_h +#define eccodes_accessor_g2lon_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_g2lon_t : public grib_accessor_double_t +{ +public: + /* Members defined in g2lon */ + const char* longitude; +}; + +class grib_accessor_class_g2lon_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_g2lon_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g2lon_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g2lon_h */ diff --git a/src/accessor/grib_accessor_class_g2step_range.cc b/src/accessor/grib_accessor_class_g2step_range.cc index ae2b9976d..28019a783 100644 --- a/src/accessor/grib_accessor_class_g2step_range.cc +++ b/src/accessor/grib_accessor_class_g2step_range.cc @@ -11,8 +11,8 @@ #include "grib_api_internal.h" #include "grib_accessor_class_g2step_range.h" -#include "../step.h" -#include "../step_utilities.h" +#include "step.h" +#include "step_utilities.h" #include #include #include diff --git a/src/accessor/grib_accessor_class_g2step_range.h b/src/accessor/grib_accessor_class_g2step_range.h index c5a007806..45b50690c 100644 --- a/src/accessor/grib_accessor_class_g2step_range.h +++ b/src/accessor/grib_accessor_class_g2step_range.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_g2step_range_h #define eccodes_accessor_g2step_range_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_g2step_range_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_g2step_range.h.bak b/src/accessor/grib_accessor_class_g2step_range.h.bak new file mode 100644 index 000000000..c5a007806 --- /dev/null +++ b/src/accessor/grib_accessor_class_g2step_range.h.bak @@ -0,0 +1,41 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_g2step_range_h +#define eccodes_accessor_g2step_range_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_g2step_range_t : public grib_accessor_gen_t +{ +public: + /* Members defined in g2step_range */ + const char* start_step; + const char* end_step; +}; + +class grib_accessor_class_g2step_range_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_g2step_range_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_g2step_range_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_g2step_range_h */ diff --git a/src/accessor/grib_accessor_class_gaussian_grid_name.h b/src/accessor/grib_accessor_class_gaussian_grid_name.h index 1c12bfacd..a6be9dc33 100644 --- a/src/accessor/grib_accessor_class_gaussian_grid_name.h +++ b/src/accessor/grib_accessor_class_gaussian_grid_name.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_gaussian_grid_name_h #define eccodes_accessor_gaussian_grid_name_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_gaussian_grid_name_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_gaussian_grid_name.h.bak b/src/accessor/grib_accessor_class_gaussian_grid_name.h.bak new file mode 100644 index 000000000..1c12bfacd --- /dev/null +++ b/src/accessor/grib_accessor_class_gaussian_grid_name.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_gaussian_grid_name_h +#define eccodes_accessor_gaussian_grid_name_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_gaussian_grid_name_t : public grib_accessor_gen_t +{ +public: + /* Members defined in gaussian_grid_name */ + const char* N; + const char* Ni; + const char* isOctahedral; +}; + +class grib_accessor_class_gaussian_grid_name_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_gaussian_grid_name_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_gaussian_grid_name_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_gaussian_grid_name_h */ diff --git a/src/accessor/grib_accessor_class_gds_is_present.h b/src/accessor/grib_accessor_class_gds_is_present.h index fa1c5ca55..8dad7dd21 100644 --- a/src/accessor/grib_accessor_class_gds_is_present.h +++ b/src/accessor/grib_accessor_class_gds_is_present.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_gds_is_present_h #define eccodes_accessor_gds_is_present_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_gds_is_present_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_gds_is_present.h.bak b/src/accessor/grib_accessor_class_gds_is_present.h.bak new file mode 100644 index 000000000..fa1c5ca55 --- /dev/null +++ b/src/accessor/grib_accessor_class_gds_is_present.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_gds_is_present_h +#define eccodes_accessor_gds_is_present_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_gds_is_present_t : public grib_accessor_long_t +{ +public: + /* Members defined in gds_is_present */ + const char* gds_present; + const char* grid_definition; + const char* bitmap_present; + const char* values; +}; + +class grib_accessor_class_gds_is_present_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_gds_is_present_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_gds_is_present_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_gds_is_present_h */ diff --git a/src/accessor/grib_accessor_class_gds_not_present_bitmap.h b/src/accessor/grib_accessor_class_gds_not_present_bitmap.h index 68641a8e2..377fac8b4 100644 --- a/src/accessor/grib_accessor_class_gds_not_present_bitmap.h +++ b/src/accessor/grib_accessor_class_gds_not_present_bitmap.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_gds_not_present_bitmap_h #define eccodes_accessor_gds_not_present_bitmap_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_gds_not_present_bitmap_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_gds_not_present_bitmap.h.bak b/src/accessor/grib_accessor_class_gds_not_present_bitmap.h.bak new file mode 100644 index 000000000..68641a8e2 --- /dev/null +++ b/src/accessor/grib_accessor_class_gds_not_present_bitmap.h.bak @@ -0,0 +1,40 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_gds_not_present_bitmap_h +#define eccodes_accessor_gds_not_present_bitmap_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_gds_not_present_bitmap_t : public grib_accessor_gen_t +{ +public: + /* Members defined in gds_not_present_bitmap */ + const char* missing_value; + const char* number_of_values; + const char* number_of_points; + const char* latitude_of_first_point; + const char* ni; +}; + +class grib_accessor_class_gds_not_present_bitmap_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_gds_not_present_bitmap_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_gds_not_present_bitmap_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_gds_not_present_bitmap_h */ diff --git a/src/accessor/grib_accessor_class_gen.h b/src/accessor/grib_accessor_class_gen.h index 2d76361ae..9baf3e2dd 100644 --- a/src/accessor/grib_accessor_class_gen.h +++ b/src/accessor/grib_accessor_class_gen.h @@ -1,6 +1,6 @@ #pragma once -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor.h" #include diff --git a/src/accessor/grib_accessor_class_gen.h.bak b/src/accessor/grib_accessor_class_gen.h.bak new file mode 100644 index 000000000..2d76361ae --- /dev/null +++ b/src/accessor/grib_accessor_class_gen.h.bak @@ -0,0 +1,158 @@ +#pragma once + +#include "../grib_api_internal.h" +#include "grib_accessor.h" +#include + +class grib_accessor_gen_t : public grib_accessor { + void init_accessor(const long, grib_arguments*) override; + void dump(grib_dumper* f) override; + int pack_missing() override; + //int grib_pack_zero(grib_accessor* a) override; + int is_missing_internal() override; + int pack_double(const double* v, size_t* len) override; + int pack_float(const float* v, size_t* len) override; + int pack_expression(grib_expression* e) override; + int pack_string(const char* v, size_t* len) override; + int pack_string_array(const char** v, size_t* len) override; + int pack_long(const long* v, size_t* len) override; + int pack_bytes(const unsigned char* v, size_t* len) override; + int unpack_bytes(unsigned char* v, size_t* len) override; + int unpack_double_subarray(double* v, size_t start, size_t len) override; + int unpack_double(double* v, size_t* len) override; + int unpack_float(float* v, size_t* len) override; + int unpack_double_element(size_t i, double* v) override; + int unpack_float_element(size_t i, float* v) override; + int unpack_double_element_set(const size_t* index_array, size_t len, double* val_array) override; + int unpack_float_element_set(const size_t* index_array, size_t len, float* val_array) override; + int unpack_string(char* v, size_t* len) override; + int unpack_string_array(char** v, size_t* len) override; + int unpack_long(long* v, size_t* len) override; + long get_native_type() override; + long get_next_position_offset() override; + long string_length() override; + long byte_offset() override; + long byte_count() override; + int value_count(long* count) override; + int notify_change(grib_accessor* changed) override; + grib_accessor* clone(grib_section* s, int* err) override; + void update_size(size_t len) override; + int nearest_smaller_value(double val, double* nearest) override; + size_t preferred_size(int from_handle) override; + grib_accessor* next_accessor() override; + void resize(size_t new_size) override; + void destroy(grib_context* ct) override; +}; + +class grib_accessor_class_gen_t : public grib_accessor_class +{ +public: + grib_accessor_class_gen_t(const char* name) : grib_accessor_class{name} {} + ~grib_accessor_class_gen_t(); + + grib_accessor* create_empty_accessor() override{ return new grib_accessor_gen_t(); } + grib_section* sub_section(grib_accessor* a) override; + int get_native_type(grib_accessor*) override; + int pack_missing(grib_accessor*) override; + int is_missing(grib_accessor*) override; + int pack_bytes(grib_accessor*, const unsigned char*, size_t* len) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_float(grib_accessor*, const float* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int pack_string_array(grib_accessor*, const char**, size_t* len) override; + int pack_expression(grib_accessor*, grib_expression*) override; + int unpack_bytes(grib_accessor*, unsigned char*, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + int unpack_string_array(grib_accessor*, char**, size_t* len) override; + size_t string_length(grib_accessor*) override; + long byte_count(grib_accessor*) override; + long byte_offset(grib_accessor*) override; + long next_offset(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void post_init(grib_accessor*) override; + int notify_change(grib_accessor*, grib_accessor*) override; + void update_size(grib_accessor*, size_t) override; + size_t preferred_size(grib_accessor*, int) override; + void resize(grib_accessor*, size_t) override; + int nearest_smaller_value(grib_accessor*, double, double*) override; + grib_accessor* next(grib_accessor*, int) override; + int compare(grib_accessor*, grib_accessor*) override; + int unpack_double_element(grib_accessor*, size_t i, double* val) override; + int unpack_float_element(grib_accessor*, size_t i, float* val) override; + int unpack_double_element_set(grib_accessor*, const size_t* index_array, size_t len, double* val_array) override; + int unpack_float_element_set(grib_accessor*, const size_t* index_array, size_t len, float* val_array) override; + int unpack_double_subarray(grib_accessor*, double* val, size_t start, size_t len) override; + int clear(grib_accessor*) override; + grib_accessor* make_clone(grib_accessor*, grib_section*, int*) override; + + template + int unpack_helper(grib_accessor* a, T* v, size_t* len); + +private: + enum { + PACK_DOUBLE, + PACK_FLOAT, + PACK_LONG, + PACK_STRING, + UNPACK_DOUBLE, + UNPACK_FLOAT, + UNPACK_LONG, + UNPACK_STRING, + }; + std::bitset<8> is_overridden_ = 0b11111111; +}; + + +template +int grib_accessor_class_gen_t::unpack_helper(grib_accessor* a, T* v, size_t* len) +{ + static_assert(std::is_floating_point::value, "Requires floating point numbers"); + int type = GRIB_TYPE_UNDEFINED; + const char* Tname = type_to_string(*v); + + if constexpr (std::is_same_v) { + is_overridden_[UNPACK_FLOAT] = 0; + } + else if constexpr (std::is_same_v) { + is_overridden_[UNPACK_DOUBLE] = 0; + } + + if (is_overridden_[UNPACK_LONG]) { + long val = 0; + size_t l = 1; + a->unpack_long(&val, &l); + if (is_overridden_[UNPACK_LONG]) { + *v = val; + grib_context_log(a->context, GRIB_LOG_DEBUG, "Casting long %s to %s", a->name, Tname); + return GRIB_SUCCESS; + } + } + + if (is_overridden_[UNPACK_STRING]) { + char val[1024]; + size_t l = sizeof(val); + char* last = NULL; + a->unpack_string(val, &l); + if (is_overridden_[UNPACK_STRING]) { + *v = strtod(val, &last); + if (*last == 0) { /* conversion of string to double worked */ + grib_context_log(a->context, GRIB_LOG_DEBUG, "Casting string %s to %s", a->name, Tname); + return GRIB_SUCCESS; + } + } + } + + grib_context_log(a->context, GRIB_LOG_ERROR, "Cannot unpack key '%s' as %s", a->name, Tname); + if (grib_get_native_type(grib_handle_of_accessor(a), a->name, &type) == GRIB_SUCCESS) { + grib_context_log(a->context, GRIB_LOG_ERROR, "Hint: Try unpacking as %s", grib_get_type_name(type)); + } + + return GRIB_NOT_IMPLEMENTED; +} diff --git a/src/accessor/grib_accessor_class_getenv.h.bak b/src/accessor/grib_accessor_class_getenv.h.bak new file mode 100644 index 000000000..5068dad2c --- /dev/null +++ b/src/accessor/grib_accessor_class_getenv.h.bak @@ -0,0 +1,36 @@ +/* + * (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. + */ + +#ifndef eccodes_accessor_getenv_h +#define eccodes_accessor_getenv_h + +#include "grib_accessor_class_ascii.h" + +class grib_accessor_getenv_t : public grib_accessor_ascii_t +{ +public: + const char* name; + char* value; + const char* default_value; +}; + +class grib_accessor_class_getenv_t : public grib_accessor_class_ascii_t +{ +public: + grib_accessor_class_getenv_t(const char* name) : grib_accessor_class_ascii_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_getenv_t{}; } + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; + +#endif /* eccodes_accessor_getenv_h */ diff --git a/src/accessor/grib_accessor_class_global_gaussian.h b/src/accessor/grib_accessor_class_global_gaussian.h index f1e8bf53b..5bd73dd8f 100644 --- a/src/accessor/grib_accessor_class_global_gaussian.h +++ b/src/accessor/grib_accessor_class_global_gaussian.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_global_gaussian_h #define eccodes_accessor_global_gaussian_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_global_gaussian_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_global_gaussian.h.bak b/src/accessor/grib_accessor_class_global_gaussian.h.bak new file mode 100644 index 000000000..f1e8bf53b --- /dev/null +++ b/src/accessor/grib_accessor_class_global_gaussian.h.bak @@ -0,0 +1,44 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_global_gaussian_h +#define eccodes_accessor_global_gaussian_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_global_gaussian_t : public grib_accessor_long_t +{ +public: + /* Members defined in global_gaussian */ + const char* N; + const char* Ni; + const char* di; + const char* latfirst; + const char* lonfirst; + const char* latlast; + const char* lonlast; + const char* plpresent; + const char* pl; + const char* basic_angle; + const char* subdivision; +}; + +class grib_accessor_class_global_gaussian_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_global_gaussian_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_global_gaussian_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_global_gaussian_h */ diff --git a/src/accessor/grib_accessor_class_group.h b/src/accessor/grib_accessor_class_group.h index 085b91a8a..ab56f174e 100644 --- a/src/accessor/grib_accessor_class_group.h +++ b/src/accessor/grib_accessor_class_group.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_group_h #define eccodes_accessor_group_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_group_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_group.h.bak b/src/accessor/grib_accessor_class_group.h.bak new file mode 100644 index 000000000..085b91a8a --- /dev/null +++ b/src/accessor/grib_accessor_class_group.h.bak @@ -0,0 +1,41 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_group_h +#define eccodes_accessor_group_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_group_t : public grib_accessor_gen_t +{ +public: + /* Members defined in group */ + char endCharacter; +}; + +class grib_accessor_class_group_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_group_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_group_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + long next_offset(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int compare(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_group_h */ diff --git a/src/accessor/grib_accessor_class_gts_header.h b/src/accessor/grib_accessor_class_gts_header.h index c164a9df9..15f2bfd9e 100644 --- a/src/accessor/grib_accessor_class_gts_header.h +++ b/src/accessor/grib_accessor_class_gts_header.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_gts_header_h #define eccodes_accessor_gts_header_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_ascii.h" class grib_accessor_gts_header_t : public grib_accessor_ascii_t diff --git a/src/accessor/grib_accessor_class_gts_header.h.bak b/src/accessor/grib_accessor_class_gts_header.h.bak new file mode 100644 index 000000000..c164a9df9 --- /dev/null +++ b/src/accessor/grib_accessor_class_gts_header.h.bak @@ -0,0 +1,36 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_gts_header_h +#define eccodes_accessor_gts_header_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_ascii.h" + +class grib_accessor_gts_header_t : public grib_accessor_ascii_t +{ +public: + /* Members defined in gts_header */ + int gts_offset; + int gts_length; +}; + +class grib_accessor_class_gts_header_t : public grib_accessor_class_ascii_t +{ +public: + grib_accessor_class_gts_header_t(const char* name) : grib_accessor_class_ascii_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_gts_header_t{}; } + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_gts_header_h */ diff --git a/src/accessor/grib_accessor_class_hash_array.h b/src/accessor/grib_accessor_class_hash_array.h index 78856c7e7..7ebd98929 100644 --- a/src/accessor/grib_accessor_class_hash_array.h +++ b/src/accessor/grib_accessor_class_hash_array.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_hash_array_h #define eccodes_accessor_hash_array_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_hash_array_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_hash_array.h.bak b/src/accessor/grib_accessor_class_hash_array.h.bak new file mode 100644 index 000000000..78856c7e7 --- /dev/null +++ b/src/accessor/grib_accessor_class_hash_array.h.bak @@ -0,0 +1,45 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_hash_array_h +#define eccodes_accessor_hash_array_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_hash_array_t : public grib_accessor_gen_t +{ +public: + /* Members defined in hash_array */ + char* key; + grib_hash_array_value* ha; +}; + +class grib_accessor_class_hash_array_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_hash_array_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_hash_array_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int compare(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_hash_array_h */ diff --git a/src/accessor/grib_accessor_class_headers_only.h b/src/accessor/grib_accessor_class_headers_only.h index 29d7e8bf5..d5743cf90 100644 --- a/src/accessor/grib_accessor_class_headers_only.h +++ b/src/accessor/grib_accessor_class_headers_only.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_headers_only_h #define eccodes_accessor_headers_only_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_headers_only_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_headers_only.h.bak b/src/accessor/grib_accessor_class_headers_only.h.bak new file mode 100644 index 000000000..29d7e8bf5 --- /dev/null +++ b/src/accessor/grib_accessor_class_headers_only.h.bak @@ -0,0 +1,33 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_headers_only_h +#define eccodes_accessor_headers_only_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_headers_only_t : public grib_accessor_gen_t +{ +public: + /* Members defined in headers_only */ +}; + +class grib_accessor_class_headers_only_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_headers_only_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_headers_only_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_headers_only_h */ diff --git a/src/accessor/grib_accessor_class_ibmfloat.h b/src/accessor/grib_accessor_class_ibmfloat.h index d98864516..9291d30a3 100644 --- a/src/accessor/grib_accessor_class_ibmfloat.h +++ b/src/accessor/grib_accessor_class_ibmfloat.h @@ -11,7 +11,7 @@ #ifndef eccodes_accessor_ibmfloat_h #define eccodes_accessor_ibmfloat_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_ibmfloat_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_ibmfloat.h.bak b/src/accessor/grib_accessor_class_ibmfloat.h.bak new file mode 100644 index 000000000..d98864516 --- /dev/null +++ b/src/accessor/grib_accessor_class_ibmfloat.h.bak @@ -0,0 +1,71 @@ +/* + * (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. + */ + +#ifndef eccodes_accessor_ibmfloat_h +#define eccodes_accessor_ibmfloat_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_ibmfloat_t : public grib_accessor_double_t +{ +public: + /* Members defined in ibmfloat */ + grib_arguments* arg; +}; + +class grib_accessor_class_ibmfloat_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_ibmfloat_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_ibmfloat_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + long byte_count(grib_accessor*) override; + long byte_offset(grib_accessor*) override; + long next_offset(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void update_size(grib_accessor*, size_t) override; + int nearest_smaller_value(grib_accessor*, double, double*) override; +private: + template int unpack(grib_accessor*, T*, size_t*); +}; + + +template +int grib_accessor_class_ibmfloat_t::unpack(grib_accessor* a, T* val, size_t* len){ + static_assert(std::is_floating_point::value, "Requires floating point numbers"); + unsigned long rlen = 0; + long count = 0; + int err = 0; + unsigned long i = 0; + long bitp = a->offset * 8; + grib_handle* hand = grib_handle_of_accessor(a); + + err = a->value_count(&count); if (err) + return err; + rlen = count; + + if (*len < rlen) { + grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size (%zu) for %s, it contains %lu values", *len, a->name, rlen); + *len = 0; + return GRIB_ARRAY_TOO_SMALL; + } + + for (i = 0; i < rlen; i++) + val[i] = (T)grib_long_to_ibm(grib_decode_unsigned_long(hand->buffer->data, &bitp, 32)); + + *len = rlen; + return GRIB_SUCCESS; +} + +#endif /* eccodes_accessor_ibmfloat_h */ diff --git a/src/accessor/grib_accessor_class_ieeefloat.h.bak b/src/accessor/grib_accessor_class_ieeefloat.h.bak new file mode 100644 index 000000000..100b2ad6a --- /dev/null +++ b/src/accessor/grib_accessor_class_ieeefloat.h.bak @@ -0,0 +1,66 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_ieeefloat_h +#define eccodes_accessor_ieeefloat_h + +#include "grib_accessor_class_double.h" + +class grib_accessor_ieeefloat_t : public grib_accessor_double_t +{ +public: + grib_arguments* arg; +}; + +class grib_accessor_class_ieeefloat_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_ieeefloat_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_ieeefloat_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void update_size(grib_accessor*, size_t) override; + int nearest_smaller_value(grib_accessor* a, double val, double* nearest) override; + +private: + template int unpack(grib_accessor*, T*, size_t*); +}; + + +template +int grib_accessor_class_ieeefloat_t::unpack(grib_accessor* a, T* val, size_t* len){ + static_assert(std::is_floating_point::value, "Requires floating point numbers"); + long rlen = 0; + int err = 0; + long i = 0; + long bitp = a->offset * 8; + grib_handle* hand = grib_handle_of_accessor(a); + + err = a->value_count(&rlen); if (err) + return err; + + if (*len < (size_t)rlen) { + grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size (%zu) for %s, it contains %ld values", *len, a->name, rlen); + *len = 0; + return GRIB_ARRAY_TOO_SMALL; + } + + for (i = 0; i < rlen; i++) + val[i] = (T)grib_long_to_ieee(grib_decode_unsigned_long(hand->buffer->data, &bitp, 32)); + + *len = rlen; + return GRIB_SUCCESS; +} + +#endif /* eccodes_accessor_ieeefloat_h */ diff --git a/src/accessor/grib_accessor_class_ifs_param.h b/src/accessor/grib_accessor_class_ifs_param.h index d41da1723..b9fe2bd33 100644 --- a/src/accessor/grib_accessor_class_ifs_param.h +++ b/src/accessor/grib_accessor_class_ifs_param.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_ifs_param_h #define eccodes_accessor_ifs_param_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_ifs_param_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_ifs_param.h.bak b/src/accessor/grib_accessor_class_ifs_param.h.bak new file mode 100644 index 000000000..d41da1723 --- /dev/null +++ b/src/accessor/grib_accessor_class_ifs_param.h.bak @@ -0,0 +1,36 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_ifs_param_h +#define eccodes_accessor_ifs_param_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_ifs_param_t : public grib_accessor_gen_t +{ +public: + /* Members defined in ifs_param */ + const char* paramId; + const char* type; +}; + +class grib_accessor_class_ifs_param_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_ifs_param_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_ifs_param_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_ifs_param_h */ diff --git a/src/accessor/grib_accessor_class_iterator.h b/src/accessor/grib_accessor_class_iterator.h index 7288fa205..5f809c90e 100644 --- a/src/accessor/grib_accessor_class_iterator.h +++ b/src/accessor/grib_accessor_class_iterator.h @@ -14,7 +14,7 @@ #pragma once -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_iterator_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_iterator.h.bak b/src/accessor/grib_accessor_class_iterator.h.bak new file mode 100644 index 000000000..7288fa205 --- /dev/null +++ b/src/accessor/grib_accessor_class_iterator.h.bak @@ -0,0 +1,36 @@ +/* + * (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. + */ + +/*************************** + * Enrico Fucile + *************************/ + +#pragma once + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_iterator_t : public grib_accessor_gen_t +{ +public: + grib_arguments* args; +}; + +class grib_accessor_class_iterator_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_iterator_t(const char* name) : grib_accessor_class_gen_t(name) {}; + grib_accessor* create_empty_accessor() override { return new grib_accessor_iterator_t{}; } + void init(grib_accessor* a, const long l, grib_arguments* args) override; + void dump(grib_accessor* a, grib_dumper* dumper) override; +}; + + +//grib_iterator* grib_iterator_new(const grib_handle* ch, unsigned long flags, int* error) diff --git a/src/accessor/grib_accessor_class_julian_date.h b/src/accessor/grib_accessor_class_julian_date.h index 68008fec6..944e85996 100644 --- a/src/accessor/grib_accessor_class_julian_date.h +++ b/src/accessor/grib_accessor_class_julian_date.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_julian_date_h #define eccodes_accessor_julian_date_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_julian_date_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_julian_date.h.bak b/src/accessor/grib_accessor_class_julian_date.h.bak new file mode 100644 index 000000000..68008fec6 --- /dev/null +++ b/src/accessor/grib_accessor_class_julian_date.h.bak @@ -0,0 +1,48 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_julian_date_h +#define eccodes_accessor_julian_date_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_julian_date_t : public grib_accessor_double_t +{ +public: + /* Members defined in julian_date */ + const char *year; + const char *month; + const char *day; + const char *hour; + const char *minute; + const char *second; + const char *ymd; + const char *hms; + char sep[5]; +}; + +class grib_accessor_class_julian_date_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_julian_date_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_julian_date_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int pack_expression(grib_accessor*, grib_expression*) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_julian_date_h */ diff --git a/src/accessor/grib_accessor_class_julian_day.h b/src/accessor/grib_accessor_class_julian_day.h index 1d21fb920..b31f3b0dd 100644 --- a/src/accessor/grib_accessor_class_julian_day.h +++ b/src/accessor/grib_accessor_class_julian_day.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_julian_day_h #define eccodes_accessor_julian_day_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_julian_day_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_julian_day.h.bak b/src/accessor/grib_accessor_class_julian_day.h.bak new file mode 100644 index 000000000..1d21fb920 --- /dev/null +++ b/src/accessor/grib_accessor_class_julian_day.h.bak @@ -0,0 +1,40 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_julian_day_h +#define eccodes_accessor_julian_day_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_julian_day_t : public grib_accessor_double_t +{ +public: + /* Members defined in julian_day */ + const char *date; + const char *hour; + const char *minute; + const char *second; +}; + +class grib_accessor_class_julian_day_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_julian_day_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_julian_day_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_julian_day_h */ diff --git a/src/accessor/grib_accessor_class_ksec1expver.h b/src/accessor/grib_accessor_class_ksec1expver.h index 3884a7709..ca0a18695 100644 --- a/src/accessor/grib_accessor_class_ksec1expver.h +++ b/src/accessor/grib_accessor_class_ksec1expver.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_ksec1expver_h #define eccodes_accessor_ksec1expver_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_ascii.h" class grib_accessor_ksec1expver_t : public grib_accessor_ascii_t diff --git a/src/accessor/grib_accessor_class_ksec1expver.h.bak b/src/accessor/grib_accessor_class_ksec1expver.h.bak new file mode 100644 index 000000000..3884a7709 --- /dev/null +++ b/src/accessor/grib_accessor_class_ksec1expver.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_ksec1expver_h +#define eccodes_accessor_ksec1expver_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_ascii.h" + +class grib_accessor_ksec1expver_t : public grib_accessor_ascii_t +{ +public: + /* Members defined in ksec1expver */ +}; + +class grib_accessor_class_ksec1expver_t : public grib_accessor_class_ascii_t +{ +public: + grib_accessor_class_ksec1expver_t(const char* name) : grib_accessor_class_ascii_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_ksec1expver_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_ksec1expver_h */ diff --git a/src/accessor/grib_accessor_class_label.h b/src/accessor/grib_accessor_class_label.h index c4e64b322..01b7ac392 100644 --- a/src/accessor/grib_accessor_class_label.h +++ b/src/accessor/grib_accessor_class_label.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_label_h #define eccodes_accessor_label_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_label_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_label.h.bak b/src/accessor/grib_accessor_class_label.h.bak new file mode 100644 index 000000000..c4e64b322 --- /dev/null +++ b/src/accessor/grib_accessor_class_label.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_label_h +#define eccodes_accessor_label_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_label_t : public grib_accessor_gen_t +{ +public: + /* Members defined in label */ +}; + +class grib_accessor_class_label_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_label_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_label_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_label_h */ diff --git a/src/accessor/grib_accessor_class_latitudes.h b/src/accessor/grib_accessor_class_latitudes.h index 10344c7cb..e89db49e4 100644 --- a/src/accessor/grib_accessor_class_latitudes.h +++ b/src/accessor/grib_accessor_class_latitudes.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_latitudes_h #define eccodes_accessor_latitudes_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_latitudes_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_latitudes.h.bak b/src/accessor/grib_accessor_class_latitudes.h.bak new file mode 100644 index 000000000..10344c7cb --- /dev/null +++ b/src/accessor/grib_accessor_class_latitudes.h.bak @@ -0,0 +1,38 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_latitudes_h +#define eccodes_accessor_latitudes_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_latitudes_t : public grib_accessor_double_t +{ +public: + /* Members defined in latitudes */ + const char* values; + long distinct; + double* lats; + long size; + int save; +}; + +class grib_accessor_class_latitudes_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_latitudes_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_latitudes_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_latitudes_h */ diff --git a/src/accessor/grib_accessor_class_latlon_increment.h b/src/accessor/grib_accessor_class_latlon_increment.h index 4f5402e6a..e85d1ec91 100644 --- a/src/accessor/grib_accessor_class_latlon_increment.h +++ b/src/accessor/grib_accessor_class_latlon_increment.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_latlon_increment_h #define eccodes_accessor_latlon_increment_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_latlon_increment_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_latlon_increment.h.bak b/src/accessor/grib_accessor_class_latlon_increment.h.bak new file mode 100644 index 000000000..4f5402e6a --- /dev/null +++ b/src/accessor/grib_accessor_class_latlon_increment.h.bak @@ -0,0 +1,43 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_latlon_increment_h +#define eccodes_accessor_latlon_increment_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_latlon_increment_t : public grib_accessor_double_t +{ +public: + /* Members defined in latlon_increment */ + const char* directionIncrementGiven; + const char* directionIncrement; + const char* scansPositively; + const char* first; + const char* last; + const char* numberOfPoints; + const char* angleMultiplier; + const char* angleDivisor; + long isLongitude; +}; + +class grib_accessor_class_latlon_increment_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_latlon_increment_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_latlon_increment_t{}; } + int is_missing(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_latlon_increment_h */ diff --git a/src/accessor/grib_accessor_class_latlonvalues.h b/src/accessor/grib_accessor_class_latlonvalues.h index ed040f543..56faec4d9 100644 --- a/src/accessor/grib_accessor_class_latlonvalues.h +++ b/src/accessor/grib_accessor_class_latlonvalues.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_latlonvalues_h #define eccodes_accessor_latlonvalues_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_latlonvalues_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_latlonvalues.h.bak b/src/accessor/grib_accessor_class_latlonvalues.h.bak new file mode 100644 index 000000000..ed040f543 --- /dev/null +++ b/src/accessor/grib_accessor_class_latlonvalues.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_latlonvalues_h +#define eccodes_accessor_latlonvalues_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_latlonvalues_t : public grib_accessor_double_t +{ +public: + /* Members defined in latlonvalues */ + const char* values; +}; + +class grib_accessor_class_latlonvalues_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_latlonvalues_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_latlonvalues_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_latlonvalues_h */ diff --git a/src/accessor/grib_accessor_class_library_version.h b/src/accessor/grib_accessor_class_library_version.h index 28de10364..66099c2c0 100644 --- a/src/accessor/grib_accessor_class_library_version.h +++ b/src/accessor/grib_accessor_class_library_version.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_library_version_h #define eccodes_accessor_library_version_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_ascii.h" class grib_accessor_library_version_t : public grib_accessor_ascii_t diff --git a/src/accessor/grib_accessor_class_library_version.h.bak b/src/accessor/grib_accessor_class_library_version.h.bak new file mode 100644 index 000000000..28de10364 --- /dev/null +++ b/src/accessor/grib_accessor_class_library_version.h.bak @@ -0,0 +1,33 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_library_version_h +#define eccodes_accessor_library_version_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_ascii.h" + +class grib_accessor_library_version_t : public grib_accessor_ascii_t +{ +public: + /* Members defined in library_version */ +}; + +class grib_accessor_class_library_version_t : public grib_accessor_class_ascii_t +{ +public: + grib_accessor_class_library_version_t(const char* name) : grib_accessor_class_ascii_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_library_version_t{}; } + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; +}; +#endif /* eccodes_accessor_library_version_h */ diff --git a/src/accessor/grib_accessor_class_local_definition.h b/src/accessor/grib_accessor_class_local_definition.h index 296bab69d..9be7d7e9a 100644 --- a/src/accessor/grib_accessor_class_local_definition.h +++ b/src/accessor/grib_accessor_class_local_definition.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_local_definition_h #define eccodes_accessor_local_definition_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_unsigned.h" class grib_accessor_local_definition_t : public grib_accessor_unsigned_t diff --git a/src/accessor/grib_accessor_class_local_definition.h.bak b/src/accessor/grib_accessor_class_local_definition.h.bak new file mode 100644 index 000000000..296bab69d --- /dev/null +++ b/src/accessor/grib_accessor_class_local_definition.h.bak @@ -0,0 +1,43 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_local_definition_h +#define eccodes_accessor_local_definition_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_unsigned.h" + +class grib_accessor_local_definition_t : public grib_accessor_unsigned_t +{ +public: + /* Members defined in local_definition */ + const char* productDefinitionTemplateNumber; + const char* productDefinitionTemplateNumberInternal; + const char* grib2LocalSectionNumber; + const char* type; + const char* stream; + const char* the_class; + const char* eps; + const char* stepType; + const char* derivedForecast; +}; + +class grib_accessor_class_local_definition_t : public grib_accessor_class_unsigned_t +{ +public: + grib_accessor_class_local_definition_t(const char* name) : grib_accessor_class_unsigned_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_local_definition_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_local_definition_h */ diff --git a/src/accessor/grib_accessor_class_long.h b/src/accessor/grib_accessor_class_long.h index a0b01f9ae..acabf2612 100644 --- a/src/accessor/grib_accessor_class_long.h +++ b/src/accessor/grib_accessor_class_long.h @@ -1,6 +1,6 @@ #pragma once -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_long_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_long.h.bak b/src/accessor/grib_accessor_class_long.h.bak new file mode 100644 index 000000000..a0b01f9ae --- /dev/null +++ b/src/accessor/grib_accessor_class_long.h.bak @@ -0,0 +1,22 @@ +#pragma once + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_long_t : public grib_accessor_gen_t +{}; + +class grib_accessor_class_long_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_long_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_long_t{}; } + void init(grib_accessor* a, const long len, grib_arguments* arg) override; + int get_native_type(grib_accessor* a) override; + int pack_missing(grib_accessor* a) override; + int pack_string(grib_accessor* a, const char*, size_t* len) override; + int unpack_double(grib_accessor* a, double* val, size_t* len) override; + int unpack_string(grib_accessor* a, char*, size_t* len) override; + void dump(grib_accessor* a, grib_dumper*) override; + int compare(grib_accessor* a, grib_accessor*) override; +}; diff --git a/src/accessor/grib_accessor_class_long_vector.h b/src/accessor/grib_accessor_class_long_vector.h index 66fab29e6..b2d3a4a67 100644 --- a/src/accessor/grib_accessor_class_long_vector.h +++ b/src/accessor/grib_accessor_class_long_vector.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_long_vector_h #define eccodes_accessor_long_vector_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_abstract_long_vector.h" class grib_accessor_long_vector_t : public grib_accessor_abstract_long_vector_t diff --git a/src/accessor/grib_accessor_class_long_vector.h.bak b/src/accessor/grib_accessor_class_long_vector.h.bak new file mode 100644 index 000000000..66fab29e6 --- /dev/null +++ b/src/accessor/grib_accessor_class_long_vector.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_long_vector_h +#define eccodes_accessor_long_vector_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_abstract_long_vector.h" + +class grib_accessor_long_vector_t : public grib_accessor_abstract_long_vector_t +{ +public: + /* Members defined in long_vector */ + const char* vector; + int index; +}; + +class grib_accessor_class_long_vector_t : public grib_accessor_class_abstract_long_vector_t +{ +public: + grib_accessor_class_long_vector_t(const char* name) : grib_accessor_class_abstract_long_vector_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_long_vector_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_long_vector_h */ diff --git a/src/accessor/grib_accessor_class_longitudes.h b/src/accessor/grib_accessor_class_longitudes.h index 782b4d764..0825f5a90 100644 --- a/src/accessor/grib_accessor_class_longitudes.h +++ b/src/accessor/grib_accessor_class_longitudes.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_longitudes_h #define eccodes_accessor_longitudes_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_longitudes_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_longitudes.h.bak b/src/accessor/grib_accessor_class_longitudes.h.bak new file mode 100644 index 000000000..782b4d764 --- /dev/null +++ b/src/accessor/grib_accessor_class_longitudes.h.bak @@ -0,0 +1,38 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_longitudes_h +#define eccodes_accessor_longitudes_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_longitudes_t : public grib_accessor_double_t +{ +public: + /* Members defined in longitudes */ + const char* values; + long distinct; + double* lons; + long size; + int save; +}; + +class grib_accessor_class_longitudes_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_longitudes_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_longitudes_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_longitudes_h */ diff --git a/src/accessor/grib_accessor_class_lookup.h.bak b/src/accessor/grib_accessor_class_lookup.h.bak new file mode 100644 index 000000000..1fba42fe5 --- /dev/null +++ b/src/accessor/grib_accessor_class_lookup.h.bak @@ -0,0 +1,40 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_lookup_h +#define eccodes_accessor_lookup_h + +#include "grib_accessor_class_long.h" + +class grib_accessor_lookup_t : public grib_accessor_long_t +{ +public: + long llength; + long loffset; + grib_expression* real_name; +}; + +class grib_accessor_class_lookup_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_lookup_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_lookup_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + long byte_count(grib_accessor*) override; + long byte_offset(grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void post_init(grib_accessor*) override; + int notify_change(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_lookup_h */ diff --git a/src/accessor/grib_accessor_class_mars_param.h b/src/accessor/grib_accessor_class_mars_param.h index 87bcaad41..87400a5f7 100644 --- a/src/accessor/grib_accessor_class_mars_param.h +++ b/src/accessor/grib_accessor_class_mars_param.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_mars_param_h #define eccodes_accessor_mars_param_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_ascii.h" class grib_accessor_mars_param_t : public grib_accessor_ascii_t diff --git a/src/accessor/grib_accessor_class_mars_param.h.bak b/src/accessor/grib_accessor_class_mars_param.h.bak new file mode 100644 index 000000000..87bcaad41 --- /dev/null +++ b/src/accessor/grib_accessor_class_mars_param.h.bak @@ -0,0 +1,36 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_mars_param_h +#define eccodes_accessor_mars_param_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_ascii.h" + +class grib_accessor_mars_param_t : public grib_accessor_ascii_t +{ +public: + /* Members defined in mars_param */ + const char* paramId; + const char* table; + const char* param; +}; + +class grib_accessor_class_mars_param_t : public grib_accessor_class_ascii_t +{ +public: + grib_accessor_class_mars_param_t(const char* name) : grib_accessor_class_ascii_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_mars_param_t{}; } + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_mars_param_h */ diff --git a/src/accessor/grib_accessor_class_mars_step.h b/src/accessor/grib_accessor_class_mars_step.h index db3042648..67d95ef9a 100644 --- a/src/accessor/grib_accessor_class_mars_step.h +++ b/src/accessor/grib_accessor_class_mars_step.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_mars_step_h #define eccodes_accessor_mars_step_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_ascii.h" class grib_accessor_mars_step_t : public grib_accessor_ascii_t diff --git a/src/accessor/grib_accessor_class_mars_step.h.bak b/src/accessor/grib_accessor_class_mars_step.h.bak new file mode 100644 index 000000000..db3042648 --- /dev/null +++ b/src/accessor/grib_accessor_class_mars_step.h.bak @@ -0,0 +1,40 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_mars_step_h +#define eccodes_accessor_mars_step_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_ascii.h" + +class grib_accessor_mars_step_t : public grib_accessor_ascii_t +{ +public: + /* Members defined in mars_step */ + const char* stepRange; + const char* stepType; +}; + +class grib_accessor_class_mars_step_t : public grib_accessor_class_ascii_t +{ +public: + grib_accessor_class_mars_step_t(const char* name) : grib_accessor_class_ascii_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_mars_step_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_mars_step_h */ diff --git a/src/accessor/grib_accessor_class_md5.h b/src/accessor/grib_accessor_class_md5.h index 8d819cc9d..7b265f797 100644 --- a/src/accessor/grib_accessor_class_md5.h +++ b/src/accessor/grib_accessor_class_md5.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_md5_h #define eccodes_accessor_md5_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_md5_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_md5.h.bak b/src/accessor/grib_accessor_class_md5.h.bak new file mode 100644 index 000000000..8d819cc9d --- /dev/null +++ b/src/accessor/grib_accessor_class_md5.h.bak @@ -0,0 +1,39 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_md5_h +#define eccodes_accessor_md5_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_md5_t : public grib_accessor_gen_t +{ +public: + /* Members defined in md5 */ + const char* offset; + grib_expression* length; + grib_string_list* blocklist; +}; + +class grib_accessor_class_md5_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_md5_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_md5_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int compare(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_md5_h */ diff --git a/src/accessor/grib_accessor_class_message.h b/src/accessor/grib_accessor_class_message.h index 912e8be4b..c81e23750 100644 --- a/src/accessor/grib_accessor_class_message.h +++ b/src/accessor/grib_accessor_class_message.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_message_h #define eccodes_accessor_message_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_bytes.h" class grib_accessor_message_t : public grib_accessor_bytes_t diff --git a/src/accessor/grib_accessor_class_message.h.bak b/src/accessor/grib_accessor_class_message.h.bak new file mode 100644 index 000000000..912e8be4b --- /dev/null +++ b/src/accessor/grib_accessor_class_message.h.bak @@ -0,0 +1,36 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_message_h +#define eccodes_accessor_message_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_bytes.h" + +class grib_accessor_message_t : public grib_accessor_bytes_t +{ +public: + /* Members defined in message */ +}; + +class grib_accessor_class_message_t : public grib_accessor_class_bytes_t +{ +public: + grib_accessor_class_message_t(const char* name) : grib_accessor_class_bytes_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_message_t{}; } + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void update_size(grib_accessor*, size_t) override; + void resize(grib_accessor*,size_t) override; +}; +#endif /* eccodes_accessor_message_h */ diff --git a/src/accessor/grib_accessor_class_message_copy.h b/src/accessor/grib_accessor_class_message_copy.h index 37072c685..53002c968 100644 --- a/src/accessor/grib_accessor_class_message_copy.h +++ b/src/accessor/grib_accessor_class_message_copy.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_message_copy_h #define eccodes_accessor_message_copy_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_message_copy_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_message_copy.h.bak b/src/accessor/grib_accessor_class_message_copy.h.bak new file mode 100644 index 000000000..37072c685 --- /dev/null +++ b/src/accessor/grib_accessor_class_message_copy.h.bak @@ -0,0 +1,36 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_message_copy_h +#define eccodes_accessor_message_copy_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_message_copy_t : public grib_accessor_gen_t +{ +public: + /* Members defined in message_copy */ +}; + +class grib_accessor_class_message_copy_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_message_copy_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_message_copy_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + long byte_count(grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_message_copy_h */ diff --git a/src/accessor/grib_accessor_class_multdouble.h b/src/accessor/grib_accessor_class_multdouble.h index 9d6d76285..c9847dde1 100644 --- a/src/accessor/grib_accessor_class_multdouble.h +++ b/src/accessor/grib_accessor_class_multdouble.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_multdouble_h #define eccodes_accessor_multdouble_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_multdouble_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_multdouble.h.bak b/src/accessor/grib_accessor_class_multdouble.h.bak new file mode 100644 index 000000000..9d6d76285 --- /dev/null +++ b/src/accessor/grib_accessor_class_multdouble.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_multdouble_h +#define eccodes_accessor_multdouble_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_multdouble_t : public grib_accessor_double_t +{ +public: + /* Members defined in multdouble */ + const char* val; + double multiplier; +}; + +class grib_accessor_class_multdouble_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_multdouble_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_multdouble_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_multdouble_h */ diff --git a/src/accessor/grib_accessor_class_nearest.h b/src/accessor/grib_accessor_class_nearest.h index 831afea60..098eb69a8 100644 --- a/src/accessor/grib_accessor_class_nearest.h +++ b/src/accessor/grib_accessor_class_nearest.h @@ -10,7 +10,7 @@ #pragma once -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_nearest_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_nearest.h.bak b/src/accessor/grib_accessor_class_nearest.h.bak new file mode 100644 index 000000000..831afea60 --- /dev/null +++ b/src/accessor/grib_accessor_class_nearest.h.bak @@ -0,0 +1,33 @@ +/* + * (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. + */ + +#pragma once + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_nearest_t : public grib_accessor_gen_t +{ +public: + grib_arguments* args; +}; + + +class grib_accessor_class_nearest_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_nearest_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_nearest_t{}; } + void init(grib_accessor* a, const long l, grib_arguments* args) override; + void dump(grib_accessor* a, grib_dumper* dumper) override; +}; + + +//grib_nearest* grib_nearest_new(const grib_handle* ch, int* error); diff --git a/src/accessor/grib_accessor_class_non_alpha.h b/src/accessor/grib_accessor_class_non_alpha.h index 1b1b9d830..e9f910723 100644 --- a/src/accessor/grib_accessor_class_non_alpha.h +++ b/src/accessor/grib_accessor_class_non_alpha.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_non_alpha_h #define eccodes_accessor_non_alpha_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_non_alpha_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_non_alpha.h.bak b/src/accessor/grib_accessor_class_non_alpha.h.bak new file mode 100644 index 000000000..1b1b9d830 --- /dev/null +++ b/src/accessor/grib_accessor_class_non_alpha.h.bak @@ -0,0 +1,39 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_non_alpha_h +#define eccodes_accessor_non_alpha_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_non_alpha_t : public grib_accessor_gen_t +{ +public: + /* Members defined in non_alpha */ +}; + +class grib_accessor_class_non_alpha_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_non_alpha_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_non_alpha_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + long next_offset(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_non_alpha_h */ diff --git a/src/accessor/grib_accessor_class_number_of_coded_values.h b/src/accessor/grib_accessor_class_number_of_coded_values.h index de5e3b76b..7cb74d1c2 100644 --- a/src/accessor/grib_accessor_class_number_of_coded_values.h +++ b/src/accessor/grib_accessor_class_number_of_coded_values.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_number_of_coded_values_h #define eccodes_accessor_number_of_coded_values_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_number_of_coded_values_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_number_of_coded_values.h.bak b/src/accessor/grib_accessor_class_number_of_coded_values.h.bak new file mode 100644 index 000000000..de5e3b76b --- /dev/null +++ b/src/accessor/grib_accessor_class_number_of_coded_values.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_number_of_coded_values_h +#define eccodes_accessor_number_of_coded_values_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_number_of_coded_values_t : public grib_accessor_long_t +{ +public: + /* Members defined in number_of_coded_values */ + const char* numberOfValues; + const char* bitsPerValue; + const char* offsetBeforeData; + const char* offsetAfterData; + const char* unusedBits; +}; + +class grib_accessor_class_number_of_coded_values_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_number_of_coded_values_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_number_of_coded_values_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_number_of_coded_values_h */ diff --git a/src/accessor/grib_accessor_class_number_of_points.h b/src/accessor/grib_accessor_class_number_of_points.h index db3521c05..3ca18b6e9 100644 --- a/src/accessor/grib_accessor_class_number_of_points.h +++ b/src/accessor/grib_accessor_class_number_of_points.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_number_of_points_h #define eccodes_accessor_number_of_points_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_number_of_points_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_number_of_points.h.bak b/src/accessor/grib_accessor_class_number_of_points.h.bak new file mode 100644 index 000000000..db3521c05 --- /dev/null +++ b/src/accessor/grib_accessor_class_number_of_points.h.bak @@ -0,0 +1,36 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_number_of_points_h +#define eccodes_accessor_number_of_points_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_number_of_points_t : public grib_accessor_long_t +{ +public: + /* Members defined in number_of_points */ + const char* ni; + const char* nj; + const char* plpresent; + const char* pl; +}; + +class grib_accessor_class_number_of_points_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_number_of_points_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_number_of_points_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_number_of_points_h */ diff --git a/src/accessor/grib_accessor_class_number_of_points_gaussian.h b/src/accessor/grib_accessor_class_number_of_points_gaussian.h index f01224f17..70ba3d6d4 100644 --- a/src/accessor/grib_accessor_class_number_of_points_gaussian.h +++ b/src/accessor/grib_accessor_class_number_of_points_gaussian.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_number_of_points_gaussian_h #define eccodes_accessor_number_of_points_gaussian_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_number_of_points_gaussian_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_number_of_points_gaussian.h.bak b/src/accessor/grib_accessor_class_number_of_points_gaussian.h.bak new file mode 100644 index 000000000..f01224f17 --- /dev/null +++ b/src/accessor/grib_accessor_class_number_of_points_gaussian.h.bak @@ -0,0 +1,42 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_number_of_points_gaussian_h +#define eccodes_accessor_number_of_points_gaussian_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_number_of_points_gaussian_t : public grib_accessor_long_t +{ +public: + /* Members defined in number_of_points_gaussian */ + const char* ni; + const char* nj; + const char* plpresent; + const char* pl; + const char* order; + const char* lat_first; + const char* lon_first; + const char* lat_last; + const char* lon_last; + const char* support_legacy; +}; + +class grib_accessor_class_number_of_points_gaussian_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_number_of_points_gaussian_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_number_of_points_gaussian_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_number_of_points_gaussian_h */ diff --git a/src/accessor/grib_accessor_class_number_of_values.h b/src/accessor/grib_accessor_class_number_of_values.h index 88b18cd6f..246c29cbd 100644 --- a/src/accessor/grib_accessor_class_number_of_values.h +++ b/src/accessor/grib_accessor_class_number_of_values.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_number_of_values_h #define eccodes_accessor_number_of_values_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_number_of_values_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_number_of_values.h.bak b/src/accessor/grib_accessor_class_number_of_values.h.bak new file mode 100644 index 000000000..88b18cd6f --- /dev/null +++ b/src/accessor/grib_accessor_class_number_of_values.h.bak @@ -0,0 +1,38 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_number_of_values_h +#define eccodes_accessor_number_of_values_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_number_of_values_t : public grib_accessor_long_t +{ +public: + /* Members defined in number_of_values */ + const char* values; + const char* bitsPerValue; + const char* numberOfPoints; + const char* bitmapPresent; + const char* bitmap; + const char* numberOfCodedValues; +}; + +class grib_accessor_class_number_of_values_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_number_of_values_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_number_of_values_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_number_of_values_h */ diff --git a/src/accessor/grib_accessor_class_number_of_values_data_raw_packing.h b/src/accessor/grib_accessor_class_number_of_values_data_raw_packing.h index c0a6e9fcb..ff57531d2 100644 --- a/src/accessor/grib_accessor_class_number_of_values_data_raw_packing.h +++ b/src/accessor/grib_accessor_class_number_of_values_data_raw_packing.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_number_of_values_data_raw_packing_h #define eccodes_accessor_number_of_values_data_raw_packing_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_number_of_values_data_raw_packing_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_number_of_values_data_raw_packing.h.bak b/src/accessor/grib_accessor_class_number_of_values_data_raw_packing.h.bak new file mode 100644 index 000000000..c0a6e9fcb --- /dev/null +++ b/src/accessor/grib_accessor_class_number_of_values_data_raw_packing.h.bak @@ -0,0 +1,35 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_number_of_values_data_raw_packing_h +#define eccodes_accessor_number_of_values_data_raw_packing_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_number_of_values_data_raw_packing_t : public grib_accessor_gen_t +{ +public: + /* Members defined in number_of_values_data_raw_packing */ + const char* values; + const char* precision; +}; + +class grib_accessor_class_number_of_values_data_raw_packing_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_number_of_values_data_raw_packing_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_number_of_values_data_raw_packing_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_number_of_values_data_raw_packing_h */ diff --git a/src/accessor/grib_accessor_class_octahedral_gaussian.h b/src/accessor/grib_accessor_class_octahedral_gaussian.h index 31784d000..f9aee3d78 100644 --- a/src/accessor/grib_accessor_class_octahedral_gaussian.h +++ b/src/accessor/grib_accessor_class_octahedral_gaussian.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_octahedral_gaussian_h #define eccodes_accessor_octahedral_gaussian_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_octahedral_gaussian_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_octahedral_gaussian.h.bak b/src/accessor/grib_accessor_class_octahedral_gaussian.h.bak new file mode 100644 index 000000000..31784d000 --- /dev/null +++ b/src/accessor/grib_accessor_class_octahedral_gaussian.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_octahedral_gaussian_h +#define eccodes_accessor_octahedral_gaussian_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_octahedral_gaussian_t : public grib_accessor_long_t +{ +public: + /* Members defined in octahedral_gaussian */ + const char* N; + const char* Ni; + const char* plpresent; + const char* pl; +}; + +class grib_accessor_class_octahedral_gaussian_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_octahedral_gaussian_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_octahedral_gaussian_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_octahedral_gaussian_h */ diff --git a/src/accessor/grib_accessor_class_octet_number.h b/src/accessor/grib_accessor_class_octet_number.h index 4d6145742..6be9134af 100644 --- a/src/accessor/grib_accessor_class_octet_number.h +++ b/src/accessor/grib_accessor_class_octet_number.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_octet_number_h #define eccodes_accessor_octet_number_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_octet_number_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_octet_number.h.bak b/src/accessor/grib_accessor_class_octet_number.h.bak new file mode 100644 index 000000000..4d6145742 --- /dev/null +++ b/src/accessor/grib_accessor_class_octet_number.h.bak @@ -0,0 +1,35 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_octet_number_h +#define eccodes_accessor_octet_number_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_octet_number_t : public grib_accessor_long_t +{ +public: + /* Members defined in octet_number */ + const char* left; + long right; +}; + +class grib_accessor_class_octet_number_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_octet_number_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_octet_number_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_octet_number_h */ diff --git a/src/accessor/grib_accessor_class_offset_file.h b/src/accessor/grib_accessor_class_offset_file.h index 34243b5a4..8806590f7 100644 --- a/src/accessor/grib_accessor_class_offset_file.h +++ b/src/accessor/grib_accessor_class_offset_file.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_offset_file_h #define eccodes_accessor_offset_file_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_offset_file_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_offset_file.h.bak b/src/accessor/grib_accessor_class_offset_file.h.bak new file mode 100644 index 000000000..34243b5a4 --- /dev/null +++ b/src/accessor/grib_accessor_class_offset_file.h.bak @@ -0,0 +1,33 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_offset_file_h +#define eccodes_accessor_offset_file_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_offset_file_t : public grib_accessor_double_t +{ +public: + /* Members defined in offset_file */ +}; + +class grib_accessor_class_offset_file_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_offset_file_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_offset_file_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_offset_file_h */ diff --git a/src/accessor/grib_accessor_class_offset_values.h b/src/accessor/grib_accessor_class_offset_values.h index 51e0f0f16..17d31a91a 100644 --- a/src/accessor/grib_accessor_class_offset_values.h +++ b/src/accessor/grib_accessor_class_offset_values.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_offset_values_h #define eccodes_accessor_offset_values_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_offset_values_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_offset_values.h.bak b/src/accessor/grib_accessor_class_offset_values.h.bak new file mode 100644 index 000000000..51e0f0f16 --- /dev/null +++ b/src/accessor/grib_accessor_class_offset_values.h.bak @@ -0,0 +1,35 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_offset_values_h +#define eccodes_accessor_offset_values_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_offset_values_t : public grib_accessor_double_t +{ +public: + /* Members defined in offset_values */ + const char* values; + const char* missingValue; +}; + +class grib_accessor_class_offset_values_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_offset_values_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_offset_values_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_offset_values_h */ diff --git a/src/accessor/grib_accessor_class_optimal_step_units.h b/src/accessor/grib_accessor_class_optimal_step_units.h index 96383b291..5ab2249ae 100644 --- a/src/accessor/grib_accessor_class_optimal_step_units.h +++ b/src/accessor/grib_accessor_class_optimal_step_units.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_optimal_step_units_h #define eccodes_accessor_optimal_step_units_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_optimal_step_units_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_optimal_step_units.h.bak b/src/accessor/grib_accessor_class_optimal_step_units.h.bak new file mode 100644 index 000000000..96383b291 --- /dev/null +++ b/src/accessor/grib_accessor_class_optimal_step_units.h.bak @@ -0,0 +1,44 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_optimal_step_units_h +#define eccodes_accessor_optimal_step_units_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_optimal_step_units_t : public grib_accessor_gen_t +{ +public: + /* Members defined in optimal_step_units */ + const char* forecast_time_value; + const char* forecast_time_unit; + const char* time_range_value; + const char* time_range_unit; +}; + +class grib_accessor_class_optimal_step_units_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_optimal_step_units_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_optimal_step_units_t{}; } + int get_native_type(grib_accessor*) override; + int is_missing(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int pack_expression(grib_accessor*, grib_expression*) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_optimal_step_units_h */ diff --git a/src/accessor/grib_accessor_class_pack_bufr_values.h b/src/accessor/grib_accessor_class_pack_bufr_values.h index b4bdaf43c..feef9ef37 100644 --- a/src/accessor/grib_accessor_class_pack_bufr_values.h +++ b/src/accessor/grib_accessor_class_pack_bufr_values.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_pack_bufr_values_h #define eccodes_accessor_pack_bufr_values_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_pack_bufr_values_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_pack_bufr_values.h.bak b/src/accessor/grib_accessor_class_pack_bufr_values.h.bak new file mode 100644 index 000000000..b4bdaf43c --- /dev/null +++ b/src/accessor/grib_accessor_class_pack_bufr_values.h.bak @@ -0,0 +1,42 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_pack_bufr_values_h +#define eccodes_accessor_pack_bufr_values_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_pack_bufr_values_t : public grib_accessor_gen_t +{ +public: + /* Members defined in pack_bufr_values */ + grib_accessor* data_accessor; +}; + +class grib_accessor_class_pack_bufr_values_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_pack_bufr_values_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_pack_bufr_values_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + int unpack_string_array(grib_accessor*, char**, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_pack_bufr_values_h */ diff --git a/src/accessor/grib_accessor_class_packing_type.h b/src/accessor/grib_accessor_class_packing_type.h index 3451db189..69c52f866 100644 --- a/src/accessor/grib_accessor_class_packing_type.h +++ b/src/accessor/grib_accessor_class_packing_type.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_packing_type_h #define eccodes_accessor_packing_type_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_packing_type_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_packing_type.h.bak b/src/accessor/grib_accessor_class_packing_type.h.bak new file mode 100644 index 000000000..3451db189 --- /dev/null +++ b/src/accessor/grib_accessor_class_packing_type.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_packing_type_h +#define eccodes_accessor_packing_type_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_packing_type_t : public grib_accessor_gen_t +{ +public: + /* Members defined in packing_type */ + const char* values; + const char* packing_type; +}; + +class grib_accessor_class_packing_type_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_packing_type_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_packing_type_t{}; } + int get_native_type(grib_accessor*) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_packing_type_h */ diff --git a/src/accessor/grib_accessor_class_pad.h b/src/accessor/grib_accessor_class_pad.h index 8ca8bb09b..28fefc891 100644 --- a/src/accessor/grib_accessor_class_pad.h +++ b/src/accessor/grib_accessor_class_pad.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_pad_h #define eccodes_accessor_pad_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_padding.h" class grib_accessor_pad_t : public grib_accessor_padding_t diff --git a/src/accessor/grib_accessor_class_pad.h.bak b/src/accessor/grib_accessor_class_pad.h.bak new file mode 100644 index 000000000..8ca8bb09b --- /dev/null +++ b/src/accessor/grib_accessor_class_pad.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_pad_h +#define eccodes_accessor_pad_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_padding.h" + +class grib_accessor_pad_t : public grib_accessor_padding_t +{ +public: + /* Members defined in padding */ + /* Members defined in pad */ + grib_expression* expression; +}; + +class grib_accessor_class_pad_t : public grib_accessor_class_padding_t +{ +public: + grib_accessor_class_pad_t(const char* name) : grib_accessor_class_padding_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_pad_t{}; } + void init(grib_accessor*, const long, grib_arguments*) override; + size_t preferred_size(grib_accessor*, int) override; +}; +#endif /* eccodes_accessor_pad_h */ diff --git a/src/accessor/grib_accessor_class_padding.h b/src/accessor/grib_accessor_class_padding.h index 65a416c4c..2d53ed7c8 100644 --- a/src/accessor/grib_accessor_class_padding.h +++ b/src/accessor/grib_accessor_class_padding.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_padding_h #define eccodes_accessor_padding_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_bytes.h" class grib_accessor_padding_t : public grib_accessor_bytes_t diff --git a/src/accessor/grib_accessor_class_padding.h.bak b/src/accessor/grib_accessor_class_padding.h.bak new file mode 100644 index 000000000..65a416c4c --- /dev/null +++ b/src/accessor/grib_accessor_class_padding.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_padding_h +#define eccodes_accessor_padding_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_bytes.h" + +class grib_accessor_padding_t : public grib_accessor_bytes_t +{ +public: + /* Members defined in padding */ +}; + +class grib_accessor_class_padding_t : public grib_accessor_class_bytes_t +{ +public: + grib_accessor_class_padding_t(const char* name) : grib_accessor_class_bytes_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_padding_t{}; } + size_t string_length(grib_accessor*) override; + long byte_count(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void update_size(grib_accessor*, size_t) override; + void resize(grib_accessor*,size_t) override; + int compare(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_padding_h */ diff --git a/src/accessor/grib_accessor_class_padto.h b/src/accessor/grib_accessor_class_padto.h index f7203b2cb..5b7867019 100644 --- a/src/accessor/grib_accessor_class_padto.h +++ b/src/accessor/grib_accessor_class_padto.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_padto_h #define eccodes_accessor_padto_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_padding.h" class grib_accessor_padto_t : public grib_accessor_padding_t diff --git a/src/accessor/grib_accessor_class_padto.h.bak b/src/accessor/grib_accessor_class_padto.h.bak new file mode 100644 index 000000000..f7203b2cb --- /dev/null +++ b/src/accessor/grib_accessor_class_padto.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_padto_h +#define eccodes_accessor_padto_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_padding.h" + +class grib_accessor_padto_t : public grib_accessor_padding_t +{ +public: + /* Members defined in padto */ + grib_expression* expression; +}; + +class grib_accessor_class_padto_t : public grib_accessor_class_padding_t +{ +public: + grib_accessor_class_padto_t(const char* name) : grib_accessor_class_padding_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_padto_t{}; } + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + size_t preferred_size(grib_accessor*, int) override; +}; +#endif /* eccodes_accessor_padto_h */ diff --git a/src/accessor/grib_accessor_class_padtoeven.h b/src/accessor/grib_accessor_class_padtoeven.h index 08f8fc072..2f9ccc1ff 100644 --- a/src/accessor/grib_accessor_class_padtoeven.h +++ b/src/accessor/grib_accessor_class_padtoeven.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_padtoeven_h #define eccodes_accessor_padtoeven_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_padding.h" class grib_accessor_padtoeven_t : public grib_accessor_padding_t diff --git a/src/accessor/grib_accessor_class_padtoeven.h.bak b/src/accessor/grib_accessor_class_padtoeven.h.bak new file mode 100644 index 000000000..08f8fc072 --- /dev/null +++ b/src/accessor/grib_accessor_class_padtoeven.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_padtoeven_h +#define eccodes_accessor_padtoeven_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_padding.h" + +class grib_accessor_padtoeven_t : public grib_accessor_padding_t +{ +public: + /* Members defined in padtoeven */ + const char* section_offset; + const char* section_length; +}; + +class grib_accessor_class_padtoeven_t : public grib_accessor_class_padding_t +{ +public: + grib_accessor_class_padtoeven_t(const char* name) : grib_accessor_class_padding_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_padtoeven_t{}; } + void init(grib_accessor*, const long, grib_arguments*) override; + size_t preferred_size(grib_accessor*, int) override; +}; +#endif /* eccodes_accessor_padtoeven_h */ diff --git a/src/accessor/grib_accessor_class_padtomultiple.h b/src/accessor/grib_accessor_class_padtomultiple.h index f57afad37..f391fbe58 100644 --- a/src/accessor/grib_accessor_class_padtomultiple.h +++ b/src/accessor/grib_accessor_class_padtomultiple.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_padtomultiple_h #define eccodes_accessor_padtomultiple_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_padding.h" class grib_accessor_padtomultiple_t : public grib_accessor_padding_t diff --git a/src/accessor/grib_accessor_class_padtomultiple.h.bak b/src/accessor/grib_accessor_class_padtomultiple.h.bak new file mode 100644 index 000000000..f57afad37 --- /dev/null +++ b/src/accessor/grib_accessor_class_padtomultiple.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_padtomultiple_h +#define eccodes_accessor_padtomultiple_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_padding.h" + +class grib_accessor_padtomultiple_t : public grib_accessor_padding_t +{ +public: + /* Members defined in padtomultiple */ + grib_expression* begin; + grib_expression* multiple; +}; + +class grib_accessor_class_padtomultiple_t : public grib_accessor_class_padding_t +{ +public: + grib_accessor_class_padtomultiple_t(const char* name) : grib_accessor_class_padding_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_padtomultiple_t{}; } + void init(grib_accessor*, const long, grib_arguments*) override; + size_t preferred_size(grib_accessor*, int) override; +}; +#endif /* eccodes_accessor_padtomultiple_h */ diff --git a/src/accessor/grib_accessor_class_position.h b/src/accessor/grib_accessor_class_position.h index 40d690694..05564e503 100644 --- a/src/accessor/grib_accessor_class_position.h +++ b/src/accessor/grib_accessor_class_position.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_position_h #define eccodes_accessor_position_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_position_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_position.h.bak b/src/accessor/grib_accessor_class_position.h.bak new file mode 100644 index 000000000..40d690694 --- /dev/null +++ b/src/accessor/grib_accessor_class_position.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_position_h +#define eccodes_accessor_position_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_position_t : public grib_accessor_gen_t +{ +public: + /* Members defined in position */ +}; + +class grib_accessor_class_position_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_position_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_position_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_position_h */ diff --git a/src/accessor/grib_accessor_class_proj_string.h b/src/accessor/grib_accessor_class_proj_string.h index c49c0f868..bb4fa76a7 100644 --- a/src/accessor/grib_accessor_class_proj_string.h +++ b/src/accessor/grib_accessor_class_proj_string.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_proj_string_h #define eccodes_accessor_proj_string_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_proj_string_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_proj_string.h.bak b/src/accessor/grib_accessor_class_proj_string.h.bak new file mode 100644 index 000000000..c49c0f868 --- /dev/null +++ b/src/accessor/grib_accessor_class_proj_string.h.bak @@ -0,0 +1,35 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_proj_string_h +#define eccodes_accessor_proj_string_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_proj_string_t : public grib_accessor_gen_t +{ +public: + /* Members defined in proj_string */ + const char* grid_type; + int endpoint; +}; + +class grib_accessor_class_proj_string_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_proj_string_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_proj_string_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_proj_string_h */ diff --git a/src/accessor/grib_accessor_class_raw.h b/src/accessor/grib_accessor_class_raw.h index 30a2603e7..d754deb63 100644 --- a/src/accessor/grib_accessor_class_raw.h +++ b/src/accessor/grib_accessor_class_raw.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_raw_h #define eccodes_accessor_raw_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_raw_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_raw.h.bak b/src/accessor/grib_accessor_class_raw.h.bak new file mode 100644 index 000000000..30a2603e7 --- /dev/null +++ b/src/accessor/grib_accessor_class_raw.h.bak @@ -0,0 +1,41 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_raw_h +#define eccodes_accessor_raw_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_raw_t : public grib_accessor_gen_t +{ +public: + /* Members defined in raw */ + const char* totalLength; + const char* sectionLength; + long relativeOffset; +}; + +class grib_accessor_class_raw_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_raw_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_raw_t{}; } + int get_native_type(grib_accessor*) override; + int pack_bytes(grib_accessor*, const unsigned char*, size_t* len) override; + int unpack_bytes(grib_accessor*, unsigned char*, size_t* len) override; + long byte_count(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void update_size(grib_accessor*, size_t) override; + int compare(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_raw_h */ diff --git a/src/accessor/grib_accessor_class_rdbtime_guess_date.h b/src/accessor/grib_accessor_class_rdbtime_guess_date.h index e9ef0b4d3..1c75f1556 100644 --- a/src/accessor/grib_accessor_class_rdbtime_guess_date.h +++ b/src/accessor/grib_accessor_class_rdbtime_guess_date.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_rdbtime_guess_date_h #define eccodes_accessor_rdbtime_guess_date_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_rdbtime_guess_date_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_rdbtime_guess_date.h.bak b/src/accessor/grib_accessor_class_rdbtime_guess_date.h.bak new file mode 100644 index 000000000..e9ef0b4d3 --- /dev/null +++ b/src/accessor/grib_accessor_class_rdbtime_guess_date.h.bak @@ -0,0 +1,38 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_rdbtime_guess_date_h +#define eccodes_accessor_rdbtime_guess_date_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_rdbtime_guess_date_t : public grib_accessor_long_t +{ +public: + /* Members defined in rdbtime_guess_date */ + const char* typicalYear; + const char* typicalMonth; + const char* typicalDay; + const char* rdbDay; + long yearOrMonth; +}; + +class grib_accessor_class_rdbtime_guess_date_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_rdbtime_guess_date_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_rdbtime_guess_date_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_rdbtime_guess_date_h */ diff --git a/src/accessor/grib_accessor_class_reference_value_error.h b/src/accessor/grib_accessor_class_reference_value_error.h index e0b948e97..aea5e95e5 100644 --- a/src/accessor/grib_accessor_class_reference_value_error.h +++ b/src/accessor/grib_accessor_class_reference_value_error.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_reference_value_error_h #define eccodes_accessor_reference_value_error_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_reference_value_error_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_reference_value_error.h.bak b/src/accessor/grib_accessor_class_reference_value_error.h.bak new file mode 100644 index 000000000..e0b948e97 --- /dev/null +++ b/src/accessor/grib_accessor_class_reference_value_error.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_reference_value_error_h +#define eccodes_accessor_reference_value_error_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_reference_value_error_t : public grib_accessor_double_t +{ +public: + /* Members defined in reference_value_error */ + const char* referenceValue; + const char* floatType; +}; + +class grib_accessor_class_reference_value_error_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_reference_value_error_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_reference_value_error_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_reference_value_error_h */ diff --git a/src/accessor/grib_accessor_class_round.h b/src/accessor/grib_accessor_class_round.h index c38d7b6e8..ed94f9804 100644 --- a/src/accessor/grib_accessor_class_round.h +++ b/src/accessor/grib_accessor_class_round.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_round_h #define eccodes_accessor_round_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_evaluate.h" class grib_accessor_round_t : public grib_accessor_evaluate_t diff --git a/src/accessor/grib_accessor_class_round.h.bak b/src/accessor/grib_accessor_class_round.h.bak new file mode 100644 index 000000000..c38d7b6e8 --- /dev/null +++ b/src/accessor/grib_accessor_class_round.h.bak @@ -0,0 +1,32 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_round_h +#define eccodes_accessor_round_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_evaluate.h" + +class grib_accessor_round_t : public grib_accessor_evaluate_t +{ +public: + /* Members defined in round */ +}; + +class grib_accessor_class_round_t : public grib_accessor_class_evaluate_t +{ +public: + grib_accessor_class_round_t(const char* name) : grib_accessor_class_evaluate_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_round_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; +}; +#endif /* eccodes_accessor_round_h */ diff --git a/src/accessor/grib_accessor_class_scale.h b/src/accessor/grib_accessor_class_scale.h index 7e1f0d80d..5a44f8013 100644 --- a/src/accessor/grib_accessor_class_scale.h +++ b/src/accessor/grib_accessor_class_scale.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_scale_h #define eccodes_accessor_scale_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_scale_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_scale.h.bak b/src/accessor/grib_accessor_class_scale.h.bak new file mode 100644 index 000000000..7e1f0d80d --- /dev/null +++ b/src/accessor/grib_accessor_class_scale.h.bak @@ -0,0 +1,39 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_scale_h +#define eccodes_accessor_scale_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_scale_t : public grib_accessor_double_t +{ +public: + /* Members defined in scale */ + const char* value; + const char* multiplier; + const char* divisor; + const char* truncating; +}; + +class grib_accessor_class_scale_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_scale_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_scale_t{}; } + int is_missing(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_scale_h */ diff --git a/src/accessor/grib_accessor_class_scale_values.h b/src/accessor/grib_accessor_class_scale_values.h index cb94e16b8..ab644956b 100644 --- a/src/accessor/grib_accessor_class_scale_values.h +++ b/src/accessor/grib_accessor_class_scale_values.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_scale_values_h #define eccodes_accessor_scale_values_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_scale_values_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_scale_values.h.bak b/src/accessor/grib_accessor_class_scale_values.h.bak new file mode 100644 index 000000000..cb94e16b8 --- /dev/null +++ b/src/accessor/grib_accessor_class_scale_values.h.bak @@ -0,0 +1,35 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_scale_values_h +#define eccodes_accessor_scale_values_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_scale_values_t : public grib_accessor_double_t +{ +public: + /* Members defined in scale_values */ + const char* values; + const char* missingValue; +}; + +class grib_accessor_class_scale_values_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_scale_values_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_scale_values_t{}; } + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_scale_values_h */ diff --git a/src/accessor/grib_accessor_class_second_order_bits_per_value.h b/src/accessor/grib_accessor_class_second_order_bits_per_value.h index 370b364dd..5c30e9e19 100644 --- a/src/accessor/grib_accessor_class_second_order_bits_per_value.h +++ b/src/accessor/grib_accessor_class_second_order_bits_per_value.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_second_order_bits_per_value_h #define eccodes_accessor_second_order_bits_per_value_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_second_order_bits_per_value_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_second_order_bits_per_value.h.bak b/src/accessor/grib_accessor_class_second_order_bits_per_value.h.bak new file mode 100644 index 000000000..370b364dd --- /dev/null +++ b/src/accessor/grib_accessor_class_second_order_bits_per_value.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_second_order_bits_per_value_h +#define eccodes_accessor_second_order_bits_per_value_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_second_order_bits_per_value_t : public grib_accessor_long_t +{ +public: + /* Members defined in second_order_bits_per_value */ + const char* values; + const char* binaryScaleFactor; + const char* decimalScaleFactor; + long bitsPerValue; +}; + +class grib_accessor_class_second_order_bits_per_value_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_second_order_bits_per_value_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_second_order_bits_per_value_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_second_order_bits_per_value_h */ diff --git a/src/accessor/grib_accessor_class_section.h.bak b/src/accessor/grib_accessor_class_section.h.bak new file mode 100644 index 000000000..b1905b182 --- /dev/null +++ b/src/accessor/grib_accessor_class_section.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_section_h +#define eccodes_accessor_section_h + +#include "grib_accessor_class_gen.h" + +class grib_accessor_section_t : public grib_accessor_gen_t {}; + +class grib_accessor_class_section_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_section_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_section_t{}; } + int get_native_type(grib_accessor*) override; + long byte_count(grib_accessor*) override; + long next_offset(grib_accessor*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void update_size(grib_accessor*, size_t) override; + grib_section* sub_section(grib_accessor*) override; + grib_accessor* next(grib_accessor*, int) override; +}; +#endif /* eccodes_accessor_section_h */ diff --git a/src/accessor/grib_accessor_class_section_length.h b/src/accessor/grib_accessor_class_section_length.h index 09490bebd..5c9b810d0 100644 --- a/src/accessor/grib_accessor_class_section_length.h +++ b/src/accessor/grib_accessor_class_section_length.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_section_length_h #define eccodes_accessor_section_length_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_unsigned.h" class grib_accessor_section_length_t : public grib_accessor_unsigned_t diff --git a/src/accessor/grib_accessor_class_section_length.h.bak b/src/accessor/grib_accessor_class_section_length.h.bak new file mode 100644 index 000000000..09490bebd --- /dev/null +++ b/src/accessor/grib_accessor_class_section_length.h.bak @@ -0,0 +1,33 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_section_length_h +#define eccodes_accessor_section_length_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_unsigned.h" + +class grib_accessor_section_length_t : public grib_accessor_unsigned_t +{ +public: + /* Members defined in section_length */ +}; + +class grib_accessor_class_section_length_t : public grib_accessor_class_unsigned_t +{ +public: + grib_accessor_class_section_length_t(const char* name) : grib_accessor_class_unsigned_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_section_length_t{}; } + int value_count(grib_accessor*, long*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_section_length_h */ diff --git a/src/accessor/grib_accessor_class_section_padding.h b/src/accessor/grib_accessor_class_section_padding.h index b6fce7f34..b039ed838 100644 --- a/src/accessor/grib_accessor_class_section_padding.h +++ b/src/accessor/grib_accessor_class_section_padding.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_section_padding_h #define eccodes_accessor_section_padding_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_padding.h" class grib_accessor_section_padding_t : public grib_accessor_padding_t diff --git a/src/accessor/grib_accessor_class_section_padding.h.bak b/src/accessor/grib_accessor_class_section_padding.h.bak new file mode 100644 index 000000000..b6fce7f34 --- /dev/null +++ b/src/accessor/grib_accessor_class_section_padding.h.bak @@ -0,0 +1,33 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_section_padding_h +#define eccodes_accessor_section_padding_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_padding.h" + +class grib_accessor_section_padding_t : public grib_accessor_padding_t +{ +public: + /* Members defined in section_padding */ + int preserve; +}; + +class grib_accessor_class_section_padding_t : public grib_accessor_class_padding_t +{ +public: + grib_accessor_class_section_padding_t(const char* name) : grib_accessor_class_padding_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_section_padding_t{}; } + void init(grib_accessor*, const long, grib_arguments*) override; + size_t preferred_size(grib_accessor*, int) override; +}; +#endif /* eccodes_accessor_section_padding_h */ diff --git a/src/accessor/grib_accessor_class_section_pointer.h b/src/accessor/grib_accessor_class_section_pointer.h index 45e77fbb9..0f92439a4 100644 --- a/src/accessor/grib_accessor_class_section_pointer.h +++ b/src/accessor/grib_accessor_class_section_pointer.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_section_pointer_h #define eccodes_accessor_section_pointer_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_section_pointer_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_section_pointer.h.bak b/src/accessor/grib_accessor_class_section_pointer.h.bak new file mode 100644 index 000000000..45e77fbb9 --- /dev/null +++ b/src/accessor/grib_accessor_class_section_pointer.h.bak @@ -0,0 +1,38 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_section_pointer_h +#define eccodes_accessor_section_pointer_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_section_pointer_t : public grib_accessor_gen_t +{ +public: + /* Members defined in section_pointer */ + const char* sectionOffset; + const char* sectionLength; + long sectionNumber; +}; + +class grib_accessor_class_section_pointer_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_section_pointer_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_section_pointer_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + long byte_count(grib_accessor*) override; + long byte_offset(grib_accessor*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_section_pointer_h */ diff --git a/src/accessor/grib_accessor_class_select_step_template.h b/src/accessor/grib_accessor_class_select_step_template.h index a83d3ddfd..ad6548aa4 100644 --- a/src/accessor/grib_accessor_class_select_step_template.h +++ b/src/accessor/grib_accessor_class_select_step_template.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_select_step_template_h #define eccodes_accessor_select_step_template_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_unsigned.h" class grib_accessor_select_step_template_t : public grib_accessor_unsigned_t diff --git a/src/accessor/grib_accessor_class_select_step_template.h.bak b/src/accessor/grib_accessor_class_select_step_template.h.bak new file mode 100644 index 000000000..a83d3ddfd --- /dev/null +++ b/src/accessor/grib_accessor_class_select_step_template.h.bak @@ -0,0 +1,36 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_select_step_template_h +#define eccodes_accessor_select_step_template_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_unsigned.h" + +class grib_accessor_select_step_template_t : public grib_accessor_unsigned_t +{ +public: + /* Members defined in select_step_template */ + const char* productDefinitionTemplateNumber; + int instant; +}; + +class grib_accessor_class_select_step_template_t : public grib_accessor_class_unsigned_t +{ +public: + grib_accessor_class_select_step_template_t(const char* name) : grib_accessor_class_unsigned_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_select_step_template_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_select_step_template_h */ diff --git a/src/accessor/grib_accessor_class_sexagesimal2decimal.h b/src/accessor/grib_accessor_class_sexagesimal2decimal.h index c9009293e..32fa3498d 100644 --- a/src/accessor/grib_accessor_class_sexagesimal2decimal.h +++ b/src/accessor/grib_accessor_class_sexagesimal2decimal.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_sexagesimal2decimal_h #define eccodes_accessor_sexagesimal2decimal_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_to_double.h" class grib_accessor_sexagesimal2decimal_t : public grib_accessor_to_double_t diff --git a/src/accessor/grib_accessor_class_sexagesimal2decimal.h.bak b/src/accessor/grib_accessor_class_sexagesimal2decimal.h.bak new file mode 100644 index 000000000..c9009293e --- /dev/null +++ b/src/accessor/grib_accessor_class_sexagesimal2decimal.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_sexagesimal2decimal_h +#define eccodes_accessor_sexagesimal2decimal_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_to_double.h" + +class grib_accessor_sexagesimal2decimal_t : public grib_accessor_to_double_t +{ +public: + /* Members defined in sexagesimal2decimal */ +}; + +class grib_accessor_class_sexagesimal2decimal_t : public grib_accessor_class_to_double_t +{ +public: + grib_accessor_class_sexagesimal2decimal_t(const char* name) : grib_accessor_class_to_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_sexagesimal2decimal_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_sexagesimal2decimal_h */ diff --git a/src/accessor/grib_accessor_class_signed.h b/src/accessor/grib_accessor_class_signed.h index 23c9829a4..c25fc1752 100644 --- a/src/accessor/grib_accessor_class_signed.h +++ b/src/accessor/grib_accessor_class_signed.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_signed_h #define eccodes_accessor_signed_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_signed_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_signed.h.bak b/src/accessor/grib_accessor_class_signed.h.bak new file mode 100644 index 000000000..23c9829a4 --- /dev/null +++ b/src/accessor/grib_accessor_class_signed.h.bak @@ -0,0 +1,42 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_signed_h +#define eccodes_accessor_signed_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_signed_t : public grib_accessor_long_t +{ +public: + /* Members defined in signed */ + grib_arguments* arg; + int nbytes; +}; + +class grib_accessor_class_signed_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_signed_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_signed_t{}; } + int is_missing(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + long byte_count(grib_accessor*) override; + long byte_offset(grib_accessor*) override; + long next_offset(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void update_size(grib_accessor*, size_t) override; +}; +#endif /* eccodes_accessor_signed_h */ diff --git a/src/accessor/grib_accessor_class_signed_bits.h b/src/accessor/grib_accessor_class_signed_bits.h index 96ba5f592..05cf524aa 100644 --- a/src/accessor/grib_accessor_class_signed_bits.h +++ b/src/accessor/grib_accessor_class_signed_bits.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_signed_bits_h #define eccodes_accessor_signed_bits_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_signed_bits_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_signed_bits.h.bak b/src/accessor/grib_accessor_class_signed_bits.h.bak new file mode 100644 index 000000000..96ba5f592 --- /dev/null +++ b/src/accessor/grib_accessor_class_signed_bits.h.bak @@ -0,0 +1,40 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_signed_bits_h +#define eccodes_accessor_signed_bits_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_signed_bits_t : public grib_accessor_long_t +{ +public: + /* Members defined in signed_bits */ + const char* numberOfBits; + const char* numberOfElements; +}; + +class grib_accessor_class_signed_bits_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_signed_bits_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_signed_bits_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + long byte_count(grib_accessor*) override; + long byte_offset(grib_accessor*) override; + long next_offset(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void update_size(grib_accessor*, size_t) override; +}; +#endif /* eccodes_accessor_signed_bits_h */ diff --git a/src/accessor/grib_accessor_class_simple_packing_error.h b/src/accessor/grib_accessor_class_simple_packing_error.h index 6c90188c5..950716638 100644 --- a/src/accessor/grib_accessor_class_simple_packing_error.h +++ b/src/accessor/grib_accessor_class_simple_packing_error.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_simple_packing_error_h #define eccodes_accessor_simple_packing_error_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_simple_packing_error_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_simple_packing_error.h.bak b/src/accessor/grib_accessor_class_simple_packing_error.h.bak new file mode 100644 index 000000000..6c90188c5 --- /dev/null +++ b/src/accessor/grib_accessor_class_simple_packing_error.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_simple_packing_error_h +#define eccodes_accessor_simple_packing_error_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_simple_packing_error_t : public grib_accessor_double_t +{ +public: + /* Members defined in simple_packing_error */ + const char* binaryScaleFactor; + const char* bitsPerValue; + const char* decimalScaleFactor; + const char* referenceValue; + const char* floatType; +}; + +class grib_accessor_class_simple_packing_error_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_simple_packing_error_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_simple_packing_error_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_simple_packing_error_h */ diff --git a/src/accessor/grib_accessor_class_size.h b/src/accessor/grib_accessor_class_size.h index dbf47f8bd..7cfb325f5 100644 --- a/src/accessor/grib_accessor_class_size.h +++ b/src/accessor/grib_accessor_class_size.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_size_h #define eccodes_accessor_size_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_size_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_size.h.bak b/src/accessor/grib_accessor_class_size.h.bak new file mode 100644 index 000000000..dbf47f8bd --- /dev/null +++ b/src/accessor/grib_accessor_class_size.h.bak @@ -0,0 +1,33 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_size_h +#define eccodes_accessor_size_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_size_t : public grib_accessor_long_t +{ +public: + /* Members defined in size */ + const char* accessor; +}; + +class grib_accessor_class_size_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_size_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_size_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_size_h */ diff --git a/src/accessor/grib_accessor_class_smart_table.h b/src/accessor/grib_accessor_class_smart_table.h index b6146a981..93a6ea682 100644 --- a/src/accessor/grib_accessor_class_smart_table.h +++ b/src/accessor/grib_accessor_class_smart_table.h @@ -15,7 +15,7 @@ #pragma once -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_unsigned.h" #include diff --git a/src/accessor/grib_accessor_class_smart_table.h.bak b/src/accessor/grib_accessor_class_smart_table.h.bak new file mode 100644 index 000000000..b6146a981 --- /dev/null +++ b/src/accessor/grib_accessor_class_smart_table.h.bak @@ -0,0 +1,52 @@ +/* + * (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. + */ + +/***************************************** + * Enrico Fucile + ****************************************/ + + +#pragma once + +#include "../grib_api_internal.h" +#include "grib_accessor_class_unsigned.h" +#include + + +class grib_accessor_smart_table_t : public grib_accessor_unsigned_t +{ +public: + const char* values; + const char* tablename; + const char* masterDir; + const char* localDir; + const char* extraDir; + const char* extraTable; + int widthOfCode; + long* tableCodes; + size_t tableCodesSize; + grib_smart_table* table; + int dirty; +}; + + +class grib_accessor_class_smart_table_t : public grib_accessor_class_unsigned_t +{ +public: + grib_accessor_class_smart_table_t(const char* name) : grib_accessor_class_unsigned_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_smart_table_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; diff --git a/src/accessor/grib_accessor_class_smart_table_column.h.bak b/src/accessor/grib_accessor_class_smart_table_column.h.bak new file mode 100644 index 000000000..f5787f780 --- /dev/null +++ b/src/accessor/grib_accessor_class_smart_table_column.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_smart_table_column_h +#define eccodes_accessor_smart_table_column_h + +#include "grib_accessor_class_gen.h" + +class grib_accessor_smart_table_column_t : public grib_accessor_gen_t +{ +public: + const char* smartTable; + int index; +}; + +class grib_accessor_class_smart_table_column_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_smart_table_column_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_smart_table_column_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string_array(grib_accessor*, char**, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_smart_table_column_h */ diff --git a/src/accessor/grib_accessor_class_spd.h b/src/accessor/grib_accessor_class_spd.h index c35e5c742..3c47458d3 100644 --- a/src/accessor/grib_accessor_class_spd.h +++ b/src/accessor/grib_accessor_class_spd.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_spd_h #define eccodes_accessor_spd_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_spd_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_spd.h.bak b/src/accessor/grib_accessor_class_spd.h.bak new file mode 100644 index 000000000..c35e5c742 --- /dev/null +++ b/src/accessor/grib_accessor_class_spd.h.bak @@ -0,0 +1,40 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_spd_h +#define eccodes_accessor_spd_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_spd_t : public grib_accessor_long_t +{ +public: + /* Members defined in spd */ + const char* numberOfBits; + const char* numberOfElements; +}; + +class grib_accessor_class_spd_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_spd_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_spd_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + long byte_count(grib_accessor*) override; + long byte_offset(grib_accessor*) override; + long next_offset(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void update_size(grib_accessor*, size_t) override; +}; +#endif /* eccodes_accessor_spd_h */ diff --git a/src/accessor/grib_accessor_class_spectral_truncation.h b/src/accessor/grib_accessor_class_spectral_truncation.h index 0ab43b1fd..329c59155 100644 --- a/src/accessor/grib_accessor_class_spectral_truncation.h +++ b/src/accessor/grib_accessor_class_spectral_truncation.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_spectral_truncation_h #define eccodes_accessor_spectral_truncation_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_spectral_truncation_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_spectral_truncation.h.bak b/src/accessor/grib_accessor_class_spectral_truncation.h.bak new file mode 100644 index 000000000..0ab43b1fd --- /dev/null +++ b/src/accessor/grib_accessor_class_spectral_truncation.h.bak @@ -0,0 +1,36 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_spectral_truncation_h +#define eccodes_accessor_spectral_truncation_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_spectral_truncation_t : public grib_accessor_long_t +{ +public: + /* Members defined in spectral_truncation */ + const char* J; + const char* K; + const char* M; + const char* T; +}; + +class grib_accessor_class_spectral_truncation_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_spectral_truncation_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_spectral_truncation_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_spectral_truncation_h */ diff --git a/src/accessor/grib_accessor_class_sprintf.h b/src/accessor/grib_accessor_class_sprintf.h index 9bfb1c83e..360cd3b1b 100644 --- a/src/accessor/grib_accessor_class_sprintf.h +++ b/src/accessor/grib_accessor_class_sprintf.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_sprintf_h #define eccodes_accessor_sprintf_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_ascii.h" class grib_accessor_sprintf_t : public grib_accessor_ascii_t diff --git a/src/accessor/grib_accessor_class_sprintf.h.bak b/src/accessor/grib_accessor_class_sprintf.h.bak new file mode 100644 index 000000000..9bfb1c83e --- /dev/null +++ b/src/accessor/grib_accessor_class_sprintf.h.bak @@ -0,0 +1,35 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_sprintf_h +#define eccodes_accessor_sprintf_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_ascii.h" + +class grib_accessor_sprintf_t : public grib_accessor_ascii_t +{ +public: + /* Members defined in sprintf */ + grib_arguments* args; +}; + +class grib_accessor_class_sprintf_t : public grib_accessor_class_ascii_t +{ +public: + grib_accessor_class_sprintf_t(const char* name) : grib_accessor_class_ascii_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_sprintf_t{}; } + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_sprintf_h */ diff --git a/src/accessor/grib_accessor_class_statistics.h b/src/accessor/grib_accessor_class_statistics.h index 4eea0b546..e4ffed90d 100644 --- a/src/accessor/grib_accessor_class_statistics.h +++ b/src/accessor/grib_accessor_class_statistics.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_statistics_h #define eccodes_accessor_statistics_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_abstract_vector.h" class grib_accessor_statistics_t : public grib_accessor_abstract_vector_t diff --git a/src/accessor/grib_accessor_class_statistics.h.bak b/src/accessor/grib_accessor_class_statistics.h.bak new file mode 100644 index 000000000..4eea0b546 --- /dev/null +++ b/src/accessor/grib_accessor_class_statistics.h.bak @@ -0,0 +1,38 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_statistics_h +#define eccodes_accessor_statistics_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_abstract_vector.h" + +class grib_accessor_statistics_t : public grib_accessor_abstract_vector_t +{ +public: + /* Members defined in statistics */ + const char* values; + const char* missing_value; +}; + +class grib_accessor_class_statistics_t : public grib_accessor_class_abstract_vector_t +{ +public: + grib_accessor_class_statistics_t(const char* name) : grib_accessor_class_abstract_vector_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_statistics_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int compare(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_statistics_h */ diff --git a/src/accessor/grib_accessor_class_statistics_spectral.h b/src/accessor/grib_accessor_class_statistics_spectral.h index 8075ddf31..c47f2385a 100644 --- a/src/accessor/grib_accessor_class_statistics_spectral.h +++ b/src/accessor/grib_accessor_class_statistics_spectral.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_statistics_spectral_h #define eccodes_accessor_statistics_spectral_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_abstract_vector.h" class grib_accessor_statistics_spectral_t : public grib_accessor_abstract_vector_t diff --git a/src/accessor/grib_accessor_class_statistics_spectral.h.bak b/src/accessor/grib_accessor_class_statistics_spectral.h.bak new file mode 100644 index 000000000..8075ddf31 --- /dev/null +++ b/src/accessor/grib_accessor_class_statistics_spectral.h.bak @@ -0,0 +1,40 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_statistics_spectral_h +#define eccodes_accessor_statistics_spectral_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_abstract_vector.h" + +class grib_accessor_statistics_spectral_t : public grib_accessor_abstract_vector_t +{ +public: + /* Members defined in statistics_spectral */ + const char* values; + const char* J; + const char* K; + const char* M; + const char* JS; +}; + +class grib_accessor_class_statistics_spectral_t : public grib_accessor_class_abstract_vector_t +{ +public: + grib_accessor_class_statistics_spectral_t(const char* name) : grib_accessor_class_abstract_vector_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_statistics_spectral_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int compare(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_statistics_spectral_h */ diff --git a/src/accessor/grib_accessor_class_step_human_readable.h b/src/accessor/grib_accessor_class_step_human_readable.h index 793ecb618..9d902f324 100644 --- a/src/accessor/grib_accessor_class_step_human_readable.h +++ b/src/accessor/grib_accessor_class_step_human_readable.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_step_human_readable_h #define eccodes_accessor_step_human_readable_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_step_human_readable_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_step_human_readable.h.bak b/src/accessor/grib_accessor_class_step_human_readable.h.bak new file mode 100644 index 000000000..793ecb618 --- /dev/null +++ b/src/accessor/grib_accessor_class_step_human_readable.h.bak @@ -0,0 +1,35 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_step_human_readable_h +#define eccodes_accessor_step_human_readable_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_step_human_readable_t : public grib_accessor_gen_t +{ +public: + /* Members defined in step_human_readable */ + const char* stepUnits; + const char* step; +}; + +class grib_accessor_class_step_human_readable_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_step_human_readable_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_step_human_readable_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_step_human_readable_h */ diff --git a/src/accessor/grib_accessor_class_step_in_units.h b/src/accessor/grib_accessor_class_step_in_units.h index ba088db79..e6fe8a6f6 100644 --- a/src/accessor/grib_accessor_class_step_in_units.h +++ b/src/accessor/grib_accessor_class_step_in_units.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_step_in_units_h #define eccodes_accessor_step_in_units_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_step_in_units_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_step_in_units.h.bak b/src/accessor/grib_accessor_class_step_in_units.h.bak new file mode 100644 index 000000000..ba088db79 --- /dev/null +++ b/src/accessor/grib_accessor_class_step_in_units.h.bak @@ -0,0 +1,43 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_step_in_units_h +#define eccodes_accessor_step_in_units_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_step_in_units_t : public grib_accessor_long_t +{ +public: + /* Members defined in step_in_units */ + const char* forecast_time_value; + const char* forecast_time_unit; + const char* step_units; + const char* time_range_unit; + const char* time_range_value; +}; + +class grib_accessor_class_step_in_units_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_step_in_units_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_step_in_units_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_step_in_units_h */ diff --git a/src/accessor/grib_accessor_class_sum.h b/src/accessor/grib_accessor_class_sum.h index ceedb788a..c05c7c6d1 100644 --- a/src/accessor/grib_accessor_class_sum.h +++ b/src/accessor/grib_accessor_class_sum.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_sum_h #define eccodes_accessor_sum_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_double.h" class grib_accessor_sum_t : public grib_accessor_double_t diff --git a/src/accessor/grib_accessor_class_sum.h.bak b/src/accessor/grib_accessor_class_sum.h.bak new file mode 100644 index 000000000..ceedb788a --- /dev/null +++ b/src/accessor/grib_accessor_class_sum.h.bak @@ -0,0 +1,35 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_sum_h +#define eccodes_accessor_sum_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_double.h" + +class grib_accessor_sum_t : public grib_accessor_double_t +{ +public: + /* Members defined in sum */ + const char* values; +}; + +class grib_accessor_class_sum_t : public grib_accessor_class_double_t +{ +public: + grib_accessor_class_sum_t(const char* name) : grib_accessor_class_double_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_sum_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_sum_h */ diff --git a/src/accessor/grib_accessor_class_suppressed.h b/src/accessor/grib_accessor_class_suppressed.h index c8a93274e..844c1fb6b 100644 --- a/src/accessor/grib_accessor_class_suppressed.h +++ b/src/accessor/grib_accessor_class_suppressed.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_suppressed_h #define eccodes_accessor_suppressed_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_suppressed_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_suppressed.h.bak b/src/accessor/grib_accessor_class_suppressed.h.bak new file mode 100644 index 000000000..c8a93274e --- /dev/null +++ b/src/accessor/grib_accessor_class_suppressed.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_suppressed_h +#define eccodes_accessor_suppressed_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_suppressed_t : public grib_accessor_long_t +{ +public: + /* Members defined in suppressed */ + grib_arguments* args; +}; + +class grib_accessor_class_suppressed_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_suppressed_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_suppressed_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_suppressed_h */ diff --git a/src/accessor/grib_accessor_class_time.h b/src/accessor/grib_accessor_class_time.h index b1826e1d6..247e4a08d 100644 --- a/src/accessor/grib_accessor_class_time.h +++ b/src/accessor/grib_accessor_class_time.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_time_h #define eccodes_accessor_time_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_time_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_time.h.bak b/src/accessor/grib_accessor_class_time.h.bak new file mode 100644 index 000000000..b1826e1d6 --- /dev/null +++ b/src/accessor/grib_accessor_class_time.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_time_h +#define eccodes_accessor_time_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_time_t : public grib_accessor_long_t +{ +public: + /* Members defined in time */ + const char* hour; + const char* minute; + const char* second; +}; + +class grib_accessor_class_time_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_time_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_time_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_time_h */ diff --git a/src/accessor/grib_accessor_class_to_double.h b/src/accessor/grib_accessor_class_to_double.h index a2010cc1e..639cc98f5 100644 --- a/src/accessor/grib_accessor_class_to_double.h +++ b/src/accessor/grib_accessor_class_to_double.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_to_double_h #define eccodes_accessor_to_double_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_to_double_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_to_double.h.bak b/src/accessor/grib_accessor_class_to_double.h.bak new file mode 100644 index 000000000..a2010cc1e --- /dev/null +++ b/src/accessor/grib_accessor_class_to_double.h.bak @@ -0,0 +1,43 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_to_double_h +#define eccodes_accessor_to_double_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_to_double_t : public grib_accessor_gen_t +{ +public: + /* Members defined in to_double */ + const char* key; + long start; + size_t length; + long scale; +}; + +class grib_accessor_class_to_double_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_to_double_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_to_double_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + long next_offset(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_to_double_h */ diff --git a/src/accessor/grib_accessor_class_to_integer.h b/src/accessor/grib_accessor_class_to_integer.h index 3ee9dd87b..ec3505c75 100644 --- a/src/accessor/grib_accessor_class_to_integer.h +++ b/src/accessor/grib_accessor_class_to_integer.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_to_integer_h #define eccodes_accessor_to_integer_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_to_integer_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_to_integer.h.bak b/src/accessor/grib_accessor_class_to_integer.h.bak new file mode 100644 index 000000000..3ee9dd87b --- /dev/null +++ b/src/accessor/grib_accessor_class_to_integer.h.bak @@ -0,0 +1,45 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_to_integer_h +#define eccodes_accessor_to_integer_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_to_integer_t : public grib_accessor_gen_t +{ +public: + /* Members defined in to_integer */ + const char* key; + long start; + size_t length; +}; + +class grib_accessor_class_to_integer_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_to_integer_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_to_integer_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + long next_offset(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_to_integer_h */ diff --git a/src/accessor/grib_accessor_class_to_string.h b/src/accessor/grib_accessor_class_to_string.h index 0907cb82c..6dd1e4de8 100644 --- a/src/accessor/grib_accessor_class_to_string.h +++ b/src/accessor/grib_accessor_class_to_string.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_to_string_h #define eccodes_accessor_to_string_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_to_string_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_to_string.h.bak b/src/accessor/grib_accessor_class_to_string.h.bak new file mode 100644 index 000000000..0907cb82c --- /dev/null +++ b/src/accessor/grib_accessor_class_to_string.h.bak @@ -0,0 +1,42 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_to_string_h +#define eccodes_accessor_to_string_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_to_string_t : public grib_accessor_gen_t +{ +public: + /* Members defined in to_string */ + const char* key; + long start; + size_t length; +}; + +class grib_accessor_class_to_string_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_to_string_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_to_string_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + long next_offset(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_to_string_h */ diff --git a/src/accessor/grib_accessor_class_transient.h.bak b/src/accessor/grib_accessor_class_transient.h.bak new file mode 100644 index 000000000..e330ad686 --- /dev/null +++ b/src/accessor/grib_accessor_class_transient.h.bak @@ -0,0 +1,25 @@ +/* + * (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. + */ + +#pragma once + +#include "grib_accessor_class_variable.h" + +class grib_accessor_transient_t : public grib_accessor_variable_t { +public: +}; + +class grib_accessor_class_transient_t : public grib_accessor_class_variable_t { +public: + void init(grib_accessor* a, const long l, grib_arguments* args) override; + grib_accessor_class_transient_t(const char* name) : grib_accessor_class_variable_t(name) {}; + grib_accessor* create_empty_accessor() override { return new grib_accessor_transient_t{}; } +}; + diff --git a/src/accessor/grib_accessor_class_transient_darray.h b/src/accessor/grib_accessor_class_transient_darray.h index fe918bd55..6aeff1491 100644 --- a/src/accessor/grib_accessor_class_transient_darray.h +++ b/src/accessor/grib_accessor_class_transient_darray.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_transient_darray_h #define eccodes_accessor_transient_darray_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_transient_darray_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_transient_darray.h.bak b/src/accessor/grib_accessor_class_transient_darray.h.bak new file mode 100644 index 000000000..fe918bd55 --- /dev/null +++ b/src/accessor/grib_accessor_class_transient_darray.h.bak @@ -0,0 +1,41 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_transient_darray_h +#define eccodes_accessor_transient_darray_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_transient_darray_t : public grib_accessor_gen_t +{ +public: + /* Members defined in transient_darray */ + grib_darray* arr; + int type; +}; + +class grib_accessor_class_transient_darray_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_transient_darray_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_transient_darray_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_transient_darray_h */ diff --git a/src/accessor/grib_accessor_class_trim.h b/src/accessor/grib_accessor_class_trim.h index 9fd6b9230..664ccc528 100644 --- a/src/accessor/grib_accessor_class_trim.h +++ b/src/accessor/grib_accessor_class_trim.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_trim_h #define eccodes_accessor_trim_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_ascii.h" class grib_accessor_trim_t : public grib_accessor_ascii_t diff --git a/src/accessor/grib_accessor_class_trim.h.bak b/src/accessor/grib_accessor_class_trim.h.bak new file mode 100644 index 000000000..664ccc528 --- /dev/null +++ b/src/accessor/grib_accessor_class_trim.h.bak @@ -0,0 +1,37 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_trim_h +#define eccodes_accessor_trim_h + +#include "grib_api_internal.h" +#include "grib_accessor_class_ascii.h" + +class grib_accessor_trim_t : public grib_accessor_ascii_t +{ +public: + /* Members defined in trim */ + const char* input; + int trim_left; + int trim_right; +}; + +class grib_accessor_class_trim_t : public grib_accessor_class_ascii_t +{ +public: + grib_accessor_class_trim_t(const char* name) : grib_accessor_class_ascii_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_trim_t{}; } + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_trim_h */ diff --git a/src/accessor/grib_accessor_class_uint16.h b/src/accessor/grib_accessor_class_uint16.h index 0291df85c..0952e2d57 100644 --- a/src/accessor/grib_accessor_class_uint16.h +++ b/src/accessor/grib_accessor_class_uint16.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_uint16_h #define eccodes_accessor_uint16_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_uint16_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_uint16.h.bak b/src/accessor/grib_accessor_class_uint16.h.bak new file mode 100644 index 000000000..0952e2d57 --- /dev/null +++ b/src/accessor/grib_accessor_class_uint16.h.bak @@ -0,0 +1,32 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_uint16_h +#define eccodes_accessor_uint16_h + +#include "grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_uint16_t : public grib_accessor_gen_t +{ +public: + /* Members defined in uint16 */ +}; + +class grib_accessor_class_uint16_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_uint16_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_uint16_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; +}; +#endif /* eccodes_accessor_uint16_h */ diff --git a/src/accessor/grib_accessor_class_uint32.h b/src/accessor/grib_accessor_class_uint32.h index be0457156..0cf8a0bd9 100644 --- a/src/accessor/grib_accessor_class_uint32.h +++ b/src/accessor/grib_accessor_class_uint32.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_uint32_h #define eccodes_accessor_uint32_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_uint32_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_uint32.h.bak b/src/accessor/grib_accessor_class_uint32.h.bak new file mode 100644 index 000000000..0cf8a0bd9 --- /dev/null +++ b/src/accessor/grib_accessor_class_uint32.h.bak @@ -0,0 +1,32 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_uint32_h +#define eccodes_accessor_uint32_h + +#include "grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_uint32_t : public grib_accessor_gen_t +{ +public: + /* Members defined in uint32 */ +}; + +class grib_accessor_class_uint32_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_uint32_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_uint32_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; +}; +#endif /* eccodes_accessor_uint32_h */ diff --git a/src/accessor/grib_accessor_class_uint32_little_endian.h b/src/accessor/grib_accessor_class_uint32_little_endian.h index 4f51d3113..357791081 100644 --- a/src/accessor/grib_accessor_class_uint32_little_endian.h +++ b/src/accessor/grib_accessor_class_uint32_little_endian.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_uint32_little_endian_h #define eccodes_accessor_uint32_little_endian_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_uint32_little_endian_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_uint32_little_endian.h.bak b/src/accessor/grib_accessor_class_uint32_little_endian.h.bak new file mode 100644 index 000000000..357791081 --- /dev/null +++ b/src/accessor/grib_accessor_class_uint32_little_endian.h.bak @@ -0,0 +1,32 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_uint32_little_endian_h +#define eccodes_accessor_uint32_little_endian_h + +#include "grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_uint32_little_endian_t : public grib_accessor_gen_t +{ +public: + /* Members defined in uint32_little_endian */ +}; + +class grib_accessor_class_uint32_little_endian_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_uint32_little_endian_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_uint32_little_endian_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; +}; +#endif /* eccodes_accessor_uint32_little_endian_h */ diff --git a/src/accessor/grib_accessor_class_uint64.h b/src/accessor/grib_accessor_class_uint64.h index 04d96b1b8..55215c77f 100644 --- a/src/accessor/grib_accessor_class_uint64.h +++ b/src/accessor/grib_accessor_class_uint64.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_uint64_h #define eccodes_accessor_uint64_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_uint64_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_uint64.h.bak b/src/accessor/grib_accessor_class_uint64.h.bak new file mode 100644 index 000000000..55215c77f --- /dev/null +++ b/src/accessor/grib_accessor_class_uint64.h.bak @@ -0,0 +1,32 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_uint64_h +#define eccodes_accessor_uint64_h + +#include "grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_uint64_t : public grib_accessor_gen_t +{ +public: + /* Members defined in uint64 */ +}; + +class grib_accessor_class_uint64_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_uint64_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_uint64_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; +}; +#endif /* eccodes_accessor_uint64_h */ diff --git a/src/accessor/grib_accessor_class_uint64_little_endian.h b/src/accessor/grib_accessor_class_uint64_little_endian.h index 5eb0068bb..8c04a5398 100644 --- a/src/accessor/grib_accessor_class_uint64_little_endian.h +++ b/src/accessor/grib_accessor_class_uint64_little_endian.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_uint64_little_endian_h #define eccodes_accessor_uint64_little_endian_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_uint64_little_endian_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_uint64_little_endian.h.bak b/src/accessor/grib_accessor_class_uint64_little_endian.h.bak new file mode 100644 index 000000000..8c04a5398 --- /dev/null +++ b/src/accessor/grib_accessor_class_uint64_little_endian.h.bak @@ -0,0 +1,32 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_uint64_little_endian_h +#define eccodes_accessor_uint64_little_endian_h + +#include "grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_uint64_little_endian_t : public grib_accessor_gen_t +{ +public: + /* Members defined in uint64_little_endian */ +}; + +class grib_accessor_class_uint64_little_endian_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_uint64_little_endian_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_uint64_little_endian_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; +}; +#endif /* eccodes_accessor_uint64_little_endian_h */ diff --git a/src/accessor/grib_accessor_class_uint8.h b/src/accessor/grib_accessor_class_uint8.h index 8a06d0ceb..04dcb1075 100644 --- a/src/accessor/grib_accessor_class_uint8.h +++ b/src/accessor/grib_accessor_class_uint8.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_uint8_h #define eccodes_accessor_uint8_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_uint8_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_uint8.h.bak b/src/accessor/grib_accessor_class_uint8.h.bak new file mode 100644 index 000000000..04dcb1075 --- /dev/null +++ b/src/accessor/grib_accessor_class_uint8.h.bak @@ -0,0 +1,32 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_uint8_h +#define eccodes_accessor_uint8_h + +#include "grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_uint8_t : public grib_accessor_gen_t +{ +public: + /* Members defined in uint8 */ +}; + +class grib_accessor_class_uint8_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_uint8_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_uint8_t{}; } + int get_native_type(grib_accessor*) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; +}; +#endif /* eccodes_accessor_uint8_h */ diff --git a/src/accessor/grib_accessor_class_unexpanded_descriptors.h b/src/accessor/grib_accessor_class_unexpanded_descriptors.h index 12c89f308..2db5b51b3 100644 --- a/src/accessor/grib_accessor_class_unexpanded_descriptors.h +++ b/src/accessor/grib_accessor_class_unexpanded_descriptors.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_unexpanded_descriptors_h #define eccodes_accessor_unexpanded_descriptors_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_unexpanded_descriptors_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_unexpanded_descriptors.h.bak b/src/accessor/grib_accessor_class_unexpanded_descriptors.h.bak new file mode 100644 index 000000000..2db5b51b3 --- /dev/null +++ b/src/accessor/grib_accessor_class_unexpanded_descriptors.h.bak @@ -0,0 +1,39 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_unexpanded_descriptors_h +#define eccodes_accessor_unexpanded_descriptors_h + +#include "grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_unexpanded_descriptors_t : public grib_accessor_long_t +{ +public: + /* Members defined in unexpanded_descriptors */ + grib_accessor* unexpandedDescriptorsEncoded; + const char* createNewData; +}; + +class grib_accessor_class_unexpanded_descriptors_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_unexpanded_descriptors_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_unexpanded_descriptors_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + long byte_offset(grib_accessor*) override; + long next_offset(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void update_size(grib_accessor*, size_t) override; +}; +#endif /* eccodes_accessor_unexpanded_descriptors_h */ diff --git a/src/accessor/grib_accessor_class_unpack_bufr_values.h b/src/accessor/grib_accessor_class_unpack_bufr_values.h index 7890e7bad..0eea70de4 100644 --- a/src/accessor/grib_accessor_class_unpack_bufr_values.h +++ b/src/accessor/grib_accessor_class_unpack_bufr_values.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_unpack_bufr_values_h #define eccodes_accessor_unpack_bufr_values_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_unpack_bufr_values_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_unpack_bufr_values.h.bak b/src/accessor/grib_accessor_class_unpack_bufr_values.h.bak new file mode 100644 index 000000000..0eea70de4 --- /dev/null +++ b/src/accessor/grib_accessor_class_unpack_bufr_values.h.bak @@ -0,0 +1,42 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_unpack_bufr_values_h +#define eccodes_accessor_unpack_bufr_values_h + +#include "grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_unpack_bufr_values_t : public grib_accessor_gen_t +{ +public: + /* Members defined in unpack_bufr_values */ + grib_accessor* data_accessor; +}; + +class grib_accessor_class_unpack_bufr_values_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_unpack_bufr_values_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_unpack_bufr_values_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + int unpack_string_array(grib_accessor*, char**, size_t* len) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_unpack_bufr_values_h */ diff --git a/src/accessor/grib_accessor_class_unsigned.h b/src/accessor/grib_accessor_class_unsigned.h index 99aadb93a..0523974ca 100644 --- a/src/accessor/grib_accessor_class_unsigned.h +++ b/src/accessor/grib_accessor_class_unsigned.h @@ -10,7 +10,7 @@ #pragma once -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_unsigned_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_unsigned.h.bak b/src/accessor/grib_accessor_class_unsigned.h.bak new file mode 100644 index 000000000..0523974ca --- /dev/null +++ b/src/accessor/grib_accessor_class_unsigned.h.bak @@ -0,0 +1,40 @@ +/* + * (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. + */ + +#pragma once + +#include "grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_unsigned_t : public grib_accessor_long_t +{ +public: + long nbytes; + grib_arguments* arg; +}; + + +class grib_accessor_class_unsigned_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_unsigned_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_unsigned_t{}; } + void init(grib_accessor* a, const long len, grib_arguments* arg) override; + void dump(grib_accessor* a, grib_dumper* dumper) override; + int unpack_long(grib_accessor* a, long* val, size_t* len) override; + int pack_long(grib_accessor* a, const long* val, size_t* len) override; + long byte_count(grib_accessor* a) override; + int value_count(grib_accessor* a, long* len) override; + long byte_offset(grib_accessor* a) override; + void update_size(grib_accessor* a, size_t s) override; + long next_offset(grib_accessor* a) override; + int is_missing(grib_accessor* a) override; + void destroy(grib_context* context, grib_accessor* a) override; +}; diff --git a/src/accessor/grib_accessor_class_unsigned_bits.h b/src/accessor/grib_accessor_class_unsigned_bits.h index 62ae48e60..ae20b0a5a 100644 --- a/src/accessor/grib_accessor_class_unsigned_bits.h +++ b/src/accessor/grib_accessor_class_unsigned_bits.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_unsigned_bits_h #define eccodes_accessor_unsigned_bits_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_unsigned_bits_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_unsigned_bits.h.bak b/src/accessor/grib_accessor_class_unsigned_bits.h.bak new file mode 100644 index 000000000..62ae48e60 --- /dev/null +++ b/src/accessor/grib_accessor_class_unsigned_bits.h.bak @@ -0,0 +1,40 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_unsigned_bits_h +#define eccodes_accessor_unsigned_bits_h + +#include "../grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_unsigned_bits_t : public grib_accessor_long_t +{ +public: + /* Members defined in unsigned_bits */ + const char* numberOfBits; + const char* numberOfElements; +}; + +class grib_accessor_class_unsigned_bits_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_unsigned_bits_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_unsigned_bits_t{}; } + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + long byte_count(grib_accessor*) override; + long byte_offset(grib_accessor*) override; + long next_offset(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void update_size(grib_accessor*, size_t) override; +}; +#endif /* eccodes_accessor_unsigned_bits_h */ diff --git a/src/accessor/grib_accessor_class_validity_date.h b/src/accessor/grib_accessor_class_validity_date.h index 7a7eea971..dfd8eb320 100644 --- a/src/accessor/grib_accessor_class_validity_date.h +++ b/src/accessor/grib_accessor_class_validity_date.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_validity_date_h #define eccodes_accessor_validity_date_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_validity_date_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_validity_date.h.bak b/src/accessor/grib_accessor_class_validity_date.h.bak new file mode 100644 index 000000000..dfd8eb320 --- /dev/null +++ b/src/accessor/grib_accessor_class_validity_date.h.bak @@ -0,0 +1,39 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_validity_date_h +#define eccodes_accessor_validity_date_h + +#include "grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_validity_date_t : public grib_accessor_long_t +{ +public: + /* Members defined in validity_date */ + const char* date; + const char* time; + const char* step; + const char* stepUnits; + const char* year; + const char* month; + const char* day; +}; + +class grib_accessor_class_validity_date_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_validity_date_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_validity_date_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_validity_date_h */ diff --git a/src/accessor/grib_accessor_class_validity_time.h b/src/accessor/grib_accessor_class_validity_time.h index 7fe86648a..3f7c27f7b 100644 --- a/src/accessor/grib_accessor_class_validity_time.h +++ b/src/accessor/grib_accessor_class_validity_time.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_validity_time_h #define eccodes_accessor_validity_time_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_long.h" class grib_accessor_validity_time_t : public grib_accessor_long_t diff --git a/src/accessor/grib_accessor_class_validity_time.h.bak b/src/accessor/grib_accessor_class_validity_time.h.bak new file mode 100644 index 000000000..3f7c27f7b --- /dev/null +++ b/src/accessor/grib_accessor_class_validity_time.h.bak @@ -0,0 +1,39 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_validity_time_h +#define eccodes_accessor_validity_time_h + +#include "grib_api_internal.h" +#include "grib_accessor_class_long.h" + +class grib_accessor_validity_time_t : public grib_accessor_long_t +{ +public: + /* Members defined in validity_time */ + const char* date; + const char* time; + const char* step; + const char* stepUnits; + const char* hours; + const char* minutes; +}; + +class grib_accessor_class_validity_time_t : public grib_accessor_class_long_t +{ +public: + grib_accessor_class_validity_time_t(const char* name) : grib_accessor_class_long_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_validity_time_t{}; } + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_validity_time_h */ diff --git a/src/accessor/grib_accessor_class_values.h.bak b/src/accessor/grib_accessor_class_values.h.bak new file mode 100644 index 000000000..c7cbf54e7 --- /dev/null +++ b/src/accessor/grib_accessor_class_values.h.bak @@ -0,0 +1,41 @@ +/* + * (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. + */ + +#ifndef eccodes_accessor_values_h +#define eccodes_accessor_values_h + +#include "grib_accessor_class_gen.h" + +class grib_accessor_values_t : public grib_accessor_gen_t +{ +public: + int carg; + const char* seclen; + const char* offsetdata; + const char* offsetsection; + int dirty; +}; + +class grib_accessor_class_values_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_values_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_values_t{}; } + int get_native_type(grib_accessor*) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + long byte_count(grib_accessor*) override; + long byte_offset(grib_accessor*) override; + long next_offset(grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + void update_size(grib_accessor*, size_t) override; + int compare(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_values_h */ diff --git a/src/accessor/grib_accessor_class_variable.h.bak b/src/accessor/grib_accessor_class_variable.h.bak new file mode 100644 index 000000000..90ff71238 --- /dev/null +++ b/src/accessor/grib_accessor_class_variable.h.bak @@ -0,0 +1,49 @@ +/* + * (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. + */ + +#pragma once + +#include "grib_accessor.h" +#include "grib_accessor_class_gen.h" + + +class grib_accessor_variable_t : public grib_accessor_gen_t +{ +public: + double dval; + float fval; + char* cval; + char* cname; + int type; +}; + +class grib_accessor_class_variable_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_variable_t(const char* name) : grib_accessor_class_gen_t(name) {}; + grib_accessor* create_empty_accessor() override { return new grib_accessor_variable_t{}; } + int get_native_type(grib_accessor*) override; + int pack_double(grib_accessor*, const double* val, size_t* len) override; + int pack_float(grib_accessor*, const float* val, size_t* len) override; + int pack_long(grib_accessor*, const long* val, size_t* len) override; + int pack_string(grib_accessor*, const char*, size_t* len) override; + int unpack_double(grib_accessor*, double* val, size_t* len) override; + int unpack_float(grib_accessor*, float* val, size_t* len) override; + int unpack_long(grib_accessor*, long* val, size_t* len) override; + int unpack_string(grib_accessor*, char*, size_t* len) override; + size_t string_length(grib_accessor*) override; + long byte_count(grib_accessor*) override; + int value_count(grib_accessor*, long*) override; + void destroy(grib_context*, grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int compare(grib_accessor*, grib_accessor*) override; + grib_accessor* make_clone(grib_accessor*, grib_section*, int*) override; +}; diff --git a/src/accessor/grib_accessor_class_vector.h b/src/accessor/grib_accessor_class_vector.h index df12303cd..671441001 100644 --- a/src/accessor/grib_accessor_class_vector.h +++ b/src/accessor/grib_accessor_class_vector.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_vector_h #define eccodes_accessor_vector_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_abstract_vector.h" class grib_accessor_vector_t : public grib_accessor_abstract_vector_t diff --git a/src/accessor/grib_accessor_class_vector.h.bak b/src/accessor/grib_accessor_class_vector.h.bak new file mode 100644 index 000000000..671441001 --- /dev/null +++ b/src/accessor/grib_accessor_class_vector.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_vector_h +#define eccodes_accessor_vector_h + +#include "grib_api_internal.h" +#include "grib_accessor_class_abstract_vector.h" + +class grib_accessor_vector_t : public grib_accessor_abstract_vector_t +{ +public: + /* Members defined in vector */ + const char* vector; + int index; +}; + +class grib_accessor_class_vector_t : public grib_accessor_class_abstract_vector_t +{ +public: + grib_accessor_class_vector_t(const char* name) : grib_accessor_class_abstract_vector_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_vector_t{}; } + int unpack_double(grib_accessor*, double* val, size_t* len) override; + void init(grib_accessor*, const long, grib_arguments*) override; +}; +#endif /* eccodes_accessor_vector_h */ diff --git a/src/accessor/grib_accessor_class_when.h b/src/accessor/grib_accessor_class_when.h index 69f1dffbb..b2ddcc0b0 100644 --- a/src/accessor/grib_accessor_class_when.h +++ b/src/accessor/grib_accessor_class_when.h @@ -12,7 +12,7 @@ #ifndef eccodes_accessor_when_h #define eccodes_accessor_when_h -#include "../grib_api_internal.h" +#include "grib_api_internal.h" #include "grib_accessor_class_gen.h" class grib_accessor_when_t : public grib_accessor_gen_t diff --git a/src/accessor/grib_accessor_class_when.h.bak b/src/accessor/grib_accessor_class_when.h.bak new file mode 100644 index 000000000..b2ddcc0b0 --- /dev/null +++ b/src/accessor/grib_accessor_class_when.h.bak @@ -0,0 +1,34 @@ + +/* + * (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. + */ + +#ifndef eccodes_accessor_when_h +#define eccodes_accessor_when_h + +#include "grib_api_internal.h" +#include "grib_accessor_class_gen.h" + +class grib_accessor_when_t : public grib_accessor_gen_t +{ +public: + /* Members defined in when */ +}; + +class grib_accessor_class_when_t : public grib_accessor_class_gen_t +{ +public: + grib_accessor_class_when_t(const char* name) : grib_accessor_class_gen_t(name) {} + grib_accessor* create_empty_accessor() override { return new grib_accessor_when_t{}; } + int get_native_type(grib_accessor*) override; + void dump(grib_accessor*, grib_dumper*) override; + void init(grib_accessor*, const long, grib_arguments*) override; + int notify_change(grib_accessor*, grib_accessor*) override; +}; +#endif /* eccodes_accessor_when_h */