From e0502a197036ff250de4596942511073952f5c07 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Mon, 16 Dec 2019 14:27:16 +0100 Subject: [PATCH] make Action::ActionX constructible from variables also make it default constructible, add accessors and equality operator --- .../EclipseState/Schedule/Action/ActionX.hpp | 17 ++++++ .../EclipseState/Schedule/Action/ActionX.cpp | 60 +++++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/opm/parser/eclipse/EclipseState/Schedule/Action/ActionX.hpp b/opm/parser/eclipse/EclipseState/Schedule/Action/ActionX.hpp index d7d5d8f3e..c41a97461 100644 --- a/opm/parser/eclipse/EclipseState/Schedule/Action/ActionX.hpp +++ b/opm/parser/eclipse/EclipseState/Schedule/Action/ActionX.hpp @@ -63,9 +63,19 @@ namespace Action { class ActionX { public: + ActionX(); ActionX(const std::string& name, size_t max_run, double max_wait, std::time_t start_time); ActionX(const DeckKeyword& kw, std::time_t start_time); ActionX(const DeckRecord& record, std::time_t start_time); + ActionX(const std::string& nam, + size_t maxRun, + double minWait, + std::time_t startTime, + const std::vector& keyword, + const AST& cond, + const std::vector& conditions, + size_t runCount, + std::time_t lastRun); void addKeyword(const DeckKeyword& kw); bool ready(std::time_t sim_time) const; @@ -84,8 +94,15 @@ public: The conditions() and keyword_strings() methods, and their underlying data members are only present to support writing formatted restart files. */ + const std::vector& getKeywords() const; const std::vector& conditions() const; + const Action::AST& getCondition() const; std::vector keyword_strings() const; + size_t getRunCount() const; + std::time_t getLastRun() const; + + bool operator==(const ActionX& data) const; + private: std::string m_name; size_t m_max_run = 0; diff --git a/src/opm/parser/eclipse/EclipseState/Schedule/Action/ActionX.cpp b/src/opm/parser/eclipse/EclipseState/Schedule/Action/ActionX.cpp index 99ee1f17d..b255c0783 100644 --- a/src/opm/parser/eclipse/EclipseState/Schedule/Action/ActionX.cpp +++ b/src/opm/parser/eclipse/EclipseState/Schedule/Action/ActionX.cpp @@ -36,6 +36,12 @@ bool ActionX::valid_keyword(const std::string& keyword) { } +ActionX::ActionX() : + m_start_time(0) +{ +} + + ActionX::ActionX(const std::string& name, size_t max_run, double min_wait, std::time_t start_time) : m_name(name), m_max_run(max_run), @@ -70,6 +76,29 @@ ActionX::ActionX(const DeckKeyword& kw, std::time_t start_time) : } +ActionX::ActionX(const std::string& nam, + size_t maxRun, + double minWait, + std::time_t startTime, + const std::vector& keyword, + const AST& cond, + const std::vector& conditions, + size_t runCount, + std::time_t lastRun) : + m_name(nam), + m_max_run(maxRun), + m_min_wait(minWait), + m_start_time(startTime), + keywords(keyword), + condition(cond), + m_conditions(conditions), + run_count(runCount), + last_run(lastRun) +{ +} + + + void ActionX::addKeyword(const DeckKeyword& kw) { this->keywords.push_back(kw); } @@ -150,5 +179,36 @@ const std::vector& ActionX::conditions() const { return this->m_conditions; } + +const std::vector& ActionX::getKeywords() const { + return this->keywords; +} + + +size_t ActionX::getRunCount() const { + return run_count; +} + +std::time_t ActionX::getLastRun() const { + return last_run; +} + +const AST& ActionX::getCondition() const { + return condition; +} + + +bool ActionX::operator==(const ActionX& data) const { + return this->name() == data.name() && + this->max_run() == data.max_run() && + this->min_wait() == data.min_wait() && + this->start_time() == data.start_time() && + this->getKeywords() == data.getKeywords() && + this->getCondition() == data.getCondition() && + this->conditions() == data.conditions() && + this->getRunCount() == data.getRunCount() && + this->getLastRun() == data.getLastRun(); +} + } }