diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b1c52b6..f1fa76a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,14 +36,14 @@ ecbuild_add_option( FEATURE EXPERIMENTAL ecbuild_add_option( FEATURE GRIB DEFAULT ON DESCRIPTION "Add support for GRIB format" - REQUIRED_PACKAGES "NAME eccodes VERSION 2.27" ) + REQUIRED_PACKAGES "NAME eccodes VERSION 2.46" ) # BUFR support ecbuild_add_option( FEATURE BUFR DEFAULT ON DESCRIPTION "Add support for BUFR format" - REQUIRED_PACKAGES "NAME eccodes VERSION 2.27" ) + REQUIRED_PACKAGES "NAME eccodes VERSION 2.46" ) # netcdf support diff --git a/VERSION b/VERSION index b9a05a6d..84cc5294 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.17.3 +1.18.0 diff --git a/src/metkit/CMakeLists.txt b/src/metkit/CMakeLists.txt index fe61d790..5fb6f064 100644 --- a/src/metkit/CMakeLists.txt +++ b/src/metkit/CMakeLists.txt @@ -25,10 +25,8 @@ list( APPEND metkit_srcs mars/DHSProtocol.h mars/Matcher.cc mars/Matcher.h - mars/MarsExpandContext.h mars/MarsExpansion.cc mars/MarsExpansion.h - mars/MarsExpension.h mars/MarsHandle.cc mars/MarsHandle.h mars/MarsLanguage.cc diff --git a/src/metkit/mars/MarsExpandContext.h b/src/metkit/mars/MarsExpandContext.h index 11f497ae..75554ed4 100644 --- a/src/metkit/mars/MarsExpandContext.h +++ b/src/metkit/mars/MarsExpandContext.h @@ -33,10 +33,4 @@ class MarsExpandContext { //---------------------------------------------------------------------------------------------------------------------- -class [[deprecated]] DummyContext : public MarsExpandContext { - using MarsExpandContext::MarsExpandContext; -}; - -//---------------------------------------------------------------------------------------------------------------------- - } // namespace metkit::mars diff --git a/src/metkit/mars/MarsExpansion.cc b/src/metkit/mars/MarsExpansion.cc index 1f095617..f879d9c4 100644 --- a/src/metkit/mars/MarsExpansion.cc +++ b/src/metkit/mars/MarsExpansion.cc @@ -17,12 +17,6 @@ namespace metkit::mars { //---------------------------------------------------------------------------------------------------------------------- -FlattenCallback::~FlattenCallback() = default; - -ExpandCallback::~ExpandCallback() = default; - -//---------------------------------------------------------------------------------------------------------------------- - MarsExpansion::MarsExpansion(bool inherit, bool strict) : inherit_(inherit), strict_(strict) {} MarsExpansion::~MarsExpansion() { @@ -37,7 +31,6 @@ void MarsExpansion::reset() { } } - MarsLanguage& MarsExpansion::language(const std::string& verb) { auto v = MarsLanguage::expandVerb(verb); @@ -64,28 +57,17 @@ std::vector MarsExpansion::expand(const std::vector #include -#include "metkit/mars/MarsExpandContext.h" #include "metkit/mars/MarsParsedRequest.h" #include "metkit/mars/MarsRequest.h" - namespace metkit::mars { class MarsLanguage; @@ -37,16 +35,21 @@ class MarsLanguage; class FlattenCallback { public: - virtual ~FlattenCallback(); virtual void operator()(const MarsRequest&) = 0; + +protected: + + virtual ~FlattenCallback() = default; }; class ExpandCallback { public: - virtual ~ExpandCallback(); - virtual void operator()(const MarsRequest& request) { this->operator()(DummyContext{}, request); } - virtual void operator()(const MarsExpandContext&, const MarsRequest&) = 0; + virtual void operator()(const MarsRequest&) = 0; + +protected: + + virtual ~ExpandCallback() = default; }; //---------------------------------------------------------------------------------------------------------------------- @@ -63,9 +66,7 @@ class MarsExpansion : public eckit::NonCopyable { std::vector expand(const std::vector&); void expand(const MarsRequest&, ExpandCallback&); - void expand(const MarsExpandContext&, const MarsRequest&, ExpandCallback&); void flatten(const MarsRequest&, FlattenCallback&); - void flatten(const MarsExpandContext&, const MarsRequest&, FlattenCallback&); private: diff --git a/src/metkit/mars/MarsExpension.h b/src/metkit/mars/MarsExpension.h deleted file mode 100644 index b76a7a36..00000000 --- a/src/metkit/mars/MarsExpension.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * (C) Copyright 1996- 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 metkit_MarsExpension_H -#define metkit_MarsExpension_H - -#include "metkit/mars/MarsExpansion.h" - -namespace metkit::mars { - -//---------------------------------------------------------------------------------------------------------------------- - -struct [[deprecated("Use MarsExpansion instead")]] MarsExpension : MarsExpansion { - using MarsExpansion::MarsExpansion; -}; - -//---------------------------------------------------------------------------------------------------------------------- - -} // namespace metkit::mars - -#endif diff --git a/src/metkit/mars/MarsLanguage.cc b/src/metkit/mars/MarsLanguage.cc index a22076de..ce6f2bc5 100644 --- a/src/metkit/mars/MarsLanguage.cc +++ b/src/metkit/mars/MarsLanguage.cc @@ -100,12 +100,12 @@ void MarsLanguage::parseModifier(ModifierType typ, std::shared_ptr ctx, } } -MarsLanguage::MarsLanguage(const std::string& verb) : verb_(verb) { +MarsLanguage::MarsLanguage(const std::string& verb) { pthread_once(&once, init); - eckit::Value lang = languages_[verb]; - eckit::Value params = lang.keys(); - + verb_ = MarsLanguage::expandVerb(verb); + eckit::Value lang = languages_[verb_]; + eckit::Value params = lang.keys(); eckit::Value options = lang["_options"]; for (size_t i = 0; i < params.size(); ++i) { diff --git a/src/metkit/mars/MarsParser.cc b/src/metkit/mars/MarsParser.cc index e715561e..d4145c12 100644 --- a/src/metkit/mars/MarsParser.cc +++ b/src/metkit/mars/MarsParser.cc @@ -15,8 +15,6 @@ #include "metkit/mars/MarsParser.h" -#include "metkit/mars/MarsExpandContext.h" - namespace metkit::mars { //---------------------------------------------------------------------------------------------------------------------- @@ -200,7 +198,7 @@ void MarsParser::parse(MarsParserCallback& cb) { while (peek() != 0) { auto r = parseRequest(); - cb(DummyContext{}, r); + cb(r); } } diff --git a/src/metkit/mars/MarsParser.h b/src/metkit/mars/MarsParser.h index 5d6f2a47..c12cb56e 100644 --- a/src/metkit/mars/MarsParser.h +++ b/src/metkit/mars/MarsParser.h @@ -19,27 +19,22 @@ namespace metkit::mars { -class MarsExpandContext; class MarsRequest; - //---------------------------------------------------------------------------------------------------------------------- - class MarsParserCallback { public: - virtual void operator()(const MarsExpandContext&, const MarsRequest&) = 0; + virtual void operator()(const MarsRequest&) = 0; protected: virtual ~MarsParserCallback() = default; }; - //---------------------------------------------------------------------------------------------------------------------- - class MarsParser : public eckit::StreamParser { public: // methods diff --git a/src/metkit/mars/MarsRequest.cc b/src/metkit/mars/MarsRequest.cc index d1b646d4..83e28361 100644 --- a/src/metkit/mars/MarsRequest.cc +++ b/src/metkit/mars/MarsRequest.cc @@ -30,7 +30,9 @@ namespace mars { MarsRequest::MarsRequest() {} -MarsRequest::MarsRequest(const std::string& s) : verb_(s) {} +MarsRequest::MarsRequest(const std::string& s) : verb_(s) { + ASSERT(s.find(',') == std::string::npos); +} MarsRequest::MarsRequest(const std::string& s, const std::map& values) : verb_(s) { for (auto j = values.begin(); j != values.end(); ++j) { diff --git a/src/metkit/mars/Type.cc b/src/metkit/mars/Type.cc index eec42e4c..fe309e80 100644 --- a/src/metkit/mars/Type.cc +++ b/src/metkit/mars/Type.cc @@ -269,9 +269,6 @@ bool Type::expand(std::string& value, const MarsRequest&) const { oss << *this << ": expand not implemented (" << value << ")"; throw eckit::SeriousBug(oss.str()); } -bool Type::expand(const MarsExpandContext&, std::string& value, const MarsRequest& request) const { - return expand(value, request); -} void Type::expand(std::vector& values, const MarsRequest& request) const { diff --git a/src/metkit/mars/Type.h b/src/metkit/mars/Type.h index 67f7c5dc..d55c59e1 100644 --- a/src/metkit/mars/Type.h +++ b/src/metkit/mars/Type.h @@ -30,8 +30,6 @@ namespace metkit::mars { -class MarsExpandContext; - //---------------------------------------------------------------------------------------------------------------------- /// @brief abstract class - ContextRule subclasses are used to define a context. A MarsRequest matches a context, if it @@ -192,7 +190,6 @@ class Type : public eckit::Counted { ~Type() noexcept override = default; virtual bool expand(std::string& value, const MarsRequest& request = {}) const; - [[deprecated]] bool expand(const MarsExpandContext& ctx, std::string& value, const MarsRequest& request = {}) const; void expand(std::vector& values, const MarsRequest& request = {}) const; std::string tidy(const std::string& value, const MarsRequest& request = {}) const; diff --git a/src/tools/parse-mars-request.cc b/src/tools/parse-mars-request.cc index 52361e91..a67dc567 100644 --- a/src/tools/parse-mars-request.cc +++ b/src/tools/parse-mars-request.cc @@ -157,17 +157,6 @@ void ParseRequest::process(const eckit::PathName& path) { } } } - - class Print : public FlattenCallback { - virtual void operator()(const MarsRequest& request) { std::cout << request << std::endl; } - }; - - - Print cb; - - // for (std::vector::const_iterator j = v.begin(); j != v.end(); ++j) { - // expand.flatten(*j, cb, filter); - // } } //----------------------------------------------------------------------------------------------------------------------