#1918 Observed Data : Stripped down SummaryReaderInterface

This commit is contained in:
Magne Sjaastad 2017-09-22 09:41:33 +02:00
parent 30a77e4f68
commit 8f158510f9
6 changed files with 22 additions and 40 deletions

View File

@ -82,6 +82,8 @@ bool RifReaderEclipseSummary::open(const std::string& headerFileName, const std:
m_timeSteps.push_back(sim_time); m_timeSteps.push_back(sim_time);
} }
buildMetaData();
return true; return true;
} }
@ -288,8 +290,6 @@ const std::vector<time_t>& RifReaderEclipseSummary::timeSteps(const RifEclipseSu
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
int RifReaderEclipseSummary::indexFromAddress(const RifEclipseSummaryAddress& resultAddress) int RifReaderEclipseSummary::indexFromAddress(const RifEclipseSummaryAddress& resultAddress)
{ {
this->buildMetaData();
auto it = m_resultAddressToErtNodeIdx.find(resultAddress); auto it = m_resultAddressToErtNodeIdx.find(resultAddress);
if (it != m_resultAddressToErtNodeIdx.end()) if (it != m_resultAddressToErtNodeIdx.end())
{ {
@ -304,7 +304,10 @@ int RifReaderEclipseSummary::indexFromAddress(const RifEclipseSummaryAddress& re
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RifReaderEclipseSummary::buildMetaData() void RifReaderEclipseSummary::buildMetaData()
{ {
if(m_allResultAddresses.size() == 0 && m_ecl_SmSpec) m_allResultAddresses.clear();
m_resultAddressToErtNodeIdx.clear();
if(m_ecl_SmSpec)
{ {
int varCount = ecl_smspec_num_nodes(m_ecl_SmSpec); int varCount = ecl_smspec_num_nodes(m_ecl_SmSpec);
for(int i = 0; i < varCount; i++) for(int i = 0; i < varCount; i++)

View File

@ -36,7 +36,7 @@ public:
RifReaderEclipseSummary(); RifReaderEclipseSummary();
~RifReaderEclipseSummary(); ~RifReaderEclipseSummary();
virtual bool open(const std::string& headerFileName, const std::vector<std::string>& dataFileNames) override; bool open(const std::string& headerFileName, const std::vector<std::string>& dataFileNames);
virtual const std::vector<time_t>& timeSteps(const RifEclipseSummaryAddress& resultAddress) const override; virtual const std::vector<time_t>& timeSteps(const RifEclipseSummaryAddress& resultAddress) const override;
@ -44,10 +44,10 @@ public:
std::string unitName(const RifEclipseSummaryAddress& resultAddress) override; std::string unitName(const RifEclipseSummaryAddress& resultAddress) override;
private: private:
virtual int timeStepCount() const; int timeStepCount() const;
int indexFromAddress(const RifEclipseSummaryAddress& resultAddress); int indexFromAddress(const RifEclipseSummaryAddress& resultAddress);
void buildMetaData();
virtual void buildMetaData() override;
private: private:
// Taken from ecl_sum.h // Taken from ecl_sum.h
typedef struct ecl_sum_struct ecl_sum_type; typedef struct ecl_sum_struct ecl_sum_type;

View File

@ -47,7 +47,7 @@ RifReaderObservedData::~RifReaderObservedData()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
bool RifReaderObservedData::open(const std::string& headerFileName, const std::vector<std::string>& dataFileNames) bool RifReaderObservedData::open(const std::string& headerFileName)
{ {
if (headerFileName.empty()) return false; if (headerFileName.empty()) return false;
@ -83,17 +83,6 @@ const std::vector<time_t>& RifReaderObservedData::timeSteps(const RifEclipseSumm
return m_timeStepsTime_t; return m_timeStepsTime_t;
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RifReaderObservedData::buildMetaData()
{
if (m_allResultAddresses.size() == 0)
{
}
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///

View File

@ -42,7 +42,7 @@ public:
RifReaderObservedData(); RifReaderObservedData();
~RifReaderObservedData(); ~RifReaderObservedData();
virtual bool open(const std::string& headerFileName, const std::vector<std::string>& dataFileNames) override; bool open(const std::string& headerFileName);
virtual const std::vector<time_t>& timeSteps(const RifEclipseSummaryAddress& resultAddress) const override; virtual const std::vector<time_t>& timeSteps(const RifEclipseSummaryAddress& resultAddress) const override;
@ -50,8 +50,6 @@ public:
std::string unitName(const RifEclipseSummaryAddress& resultAddress) override; std::string unitName(const RifEclipseSummaryAddress& resultAddress) override;
private: private:
virtual void buildMetaData() override;
RifEclipseSummaryAddress address(const AsciiData& asciiData, std::string identifierName, RifEclipseSummaryAddress::SummaryVarCategory summaryCategor); RifEclipseSummaryAddress address(const AsciiData& asciiData, std::string identifierName, RifEclipseSummaryAddress::SummaryVarCategory summaryCategor);
private: private:
RifColumnBasedAsciiParser* m_asciiParser; RifColumnBasedAsciiParser* m_asciiParser;

View File

@ -28,8 +28,6 @@
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
const std::vector<RifEclipseSummaryAddress>& RifSummaryReaderInterface::allResultAddresses() const std::vector<RifEclipseSummaryAddress>& RifSummaryReaderInterface::allResultAddresses()
{ {
this->buildMetaData();
return m_allResultAddresses; return m_allResultAddresses;
} }
@ -54,8 +52,6 @@ std::vector<QDateTime> RifSummaryReaderInterface::fromTimeT(const std::vector<ti
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
bool RifSummaryReaderInterface::hasAddress(const RifEclipseSummaryAddress& resultAddress) bool RifSummaryReaderInterface::hasAddress(const RifEclipseSummaryAddress& resultAddress)
{ {
this->buildMetaData();
for (RifEclipseSummaryAddress summaryAddress : m_allResultAddresses) for (RifEclipseSummaryAddress summaryAddress : m_allResultAddresses)
{ {
if (summaryAddress == resultAddress) if (summaryAddress == resultAddress)

View File

@ -37,21 +37,17 @@ class QDateTime;
class RifSummaryReaderInterface : public cvf::Object class RifSummaryReaderInterface : public cvf::Object
{ {
public: public:
virtual bool open(const std::string& headerFileName, const std::vector<std::string>& dataFileNames) = 0;
bool hasAddress(const RifEclipseSummaryAddress& resultAddress); bool hasAddress(const RifEclipseSummaryAddress& resultAddress);
const std::vector<RifEclipseSummaryAddress>& allResultAddresses(); const std::vector<RifEclipseSummaryAddress>& allResultAddresses();
virtual const std::vector<time_t>& timeSteps(const RifEclipseSummaryAddress& resultAddress) const = 0; virtual const std::vector<time_t>& timeSteps(const RifEclipseSummaryAddress& resultAddress) const = 0;
virtual bool values(const RifEclipseSummaryAddress& resultAddress,
std::vector<double>* values) = 0;
virtual bool values(const RifEclipseSummaryAddress& resultAddress, std::vector<double>* values) = 0;
virtual std::string unitName(const RifEclipseSummaryAddress& resultAddress) = 0; virtual std::string unitName(const RifEclipseSummaryAddress& resultAddress) = 0;
// TODO: Move this to a tools class with static members // TODO: Move this to a tools class with static members
static std::vector<QDateTime> fromTimeT(const std::vector<time_t>& timeSteps); static std::vector<QDateTime> fromTimeT(const std::vector<time_t>& timeSteps);
protected:
virtual void buildMetaData() = 0;
protected: protected:
std::vector<RifEclipseSummaryAddress> m_allResultAddresses; std::vector<RifEclipseSummaryAddress> m_allResultAddresses;
}; };