mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Cached result variables in the summary reader
Fixed late field initialization Additional cleanup and rename
This commit is contained in:
parent
286c434d3a
commit
5732b5008f
@ -81,8 +81,8 @@ RiaPreferences::RiaPreferences(void)
|
||||
CAF_PDM_InitField(&loadAndShowSoil, "loadAndShowSoil", true, "Load and show SOIL", "", "", "");
|
||||
loadAndShowSoil.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::HIDDEN);
|
||||
|
||||
readerSettings = new RifReaderSettings;
|
||||
CAF_PDM_InitFieldNoDefault(&readerSettings, "readerSettings", "Reader settings", "", "", "");
|
||||
readerSettings = new RifReaderSettings;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -47,7 +47,10 @@ RifReaderEclipseSummary::~RifReaderEclipseSummary()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RifReaderEclipseSummary::open(const std::string& headerFileName, const std::vector<std::string>& dataFileNames)
|
||||
{
|
||||
assert(ecl_sum == NULL);
|
||||
assert(ecl_sum == NULL);
|
||||
|
||||
if (headerFileName.empty() || dataFileNames.size() == 0) return false;
|
||||
|
||||
assert(!headerFileName.empty());
|
||||
assert(dataFileNames.size() > 0);
|
||||
|
||||
@ -106,17 +109,18 @@ std::vector<std::string> RifReaderEclipseSummary::variableNames() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RifEclipseSummaryAddress> RifReaderEclipseSummary::allResultAddresses() const
|
||||
const std::vector<RifEclipseSummaryAddress>& RifReaderEclipseSummary::allResultAddresses()
|
||||
{
|
||||
std::vector<RifEclipseSummaryAddress> addresses;
|
||||
|
||||
std::vector<std::string> fileVariableNames = variableNames();
|
||||
for (size_t i = 0; i < fileVariableNames.size(); i++)
|
||||
if (m_allResultAddresses.size() == 0)
|
||||
{
|
||||
addresses.push_back(RifEclipseSummaryAddress(fileVariableNames[i]));
|
||||
std::vector<std::string> fileVariableNames = variableNames();
|
||||
for(size_t i = 0; i < fileVariableNames.size(); i++)
|
||||
{
|
||||
m_allResultAddresses.push_back(RifEclipseSummaryAddress(fileVariableNames[i]));
|
||||
}
|
||||
}
|
||||
|
||||
return addresses;
|
||||
return m_allResultAddresses;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -23,20 +23,17 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "cvfObject.h"
|
||||
|
||||
|
||||
class QDateTime;
|
||||
|
||||
// Taken from ecl_sum.h
|
||||
typedef struct ecl_sum_struct ecl_sum_type;
|
||||
|
||||
// Taken from stringlist.h
|
||||
typedef struct stringlist_struct stringlist_type;
|
||||
|
||||
//==================================================================================================
|
||||
//
|
||||
//
|
||||
//==================================================================================================
|
||||
class RifReaderEclipseSummary
|
||||
class RifReaderEclipseSummary : public cvf::Object
|
||||
{
|
||||
public:
|
||||
RifReaderEclipseSummary();
|
||||
@ -46,7 +43,7 @@ public:
|
||||
void close();
|
||||
|
||||
std::vector<std::string> variableNames() const;
|
||||
std::vector<RifEclipseSummaryAddress> allResultAddresses() const;
|
||||
const std::vector<RifEclipseSummaryAddress>& allResultAddresses();
|
||||
|
||||
std::vector<time_t> timeSteps() const;
|
||||
|
||||
@ -61,8 +58,14 @@ private:
|
||||
|
||||
int timeStepCount() const;
|
||||
|
||||
// Taken from stringlist.h
|
||||
typedef struct stringlist_struct stringlist_type;
|
||||
static void populateVectorFromStringList(stringlist_type* stringList, std::vector<std::string>* strings);
|
||||
|
||||
private:
|
||||
// Taken from ecl_sum.h
|
||||
typedef struct ecl_sum_struct ecl_sum_type;
|
||||
ecl_sum_type* ecl_sum;
|
||||
std::vector<RifEclipseSummaryAddress> m_allResultAddresses;
|
||||
};
|
||||
|
||||
|
@ -40,15 +40,13 @@ public:
|
||||
RimCase();
|
||||
virtual ~RimCase();
|
||||
|
||||
caf::PdmField<int> caseId;
|
||||
caf::PdmField<QString> caseUserDescription;
|
||||
|
||||
caf::PdmField<int> caseId;
|
||||
virtual std::vector<RimView*> views() = 0;
|
||||
|
||||
virtual void updateFilePathsFromProjectPath(const QString& projectPath, const QString& oldProjectPath) = 0;
|
||||
|
||||
virtual caf::PdmFieldHandle* userDescriptionField() { return &caseUserDescription; }
|
||||
|
||||
virtual QStringList timeStepStrings() = 0;
|
||||
virtual QString timeStepName(int frameIdx) = 0;
|
||||
|
||||
@ -61,6 +59,7 @@ protected:
|
||||
static QString relocateFile(const QString& fileName, const QString& newProjectPath, const QString& oldProjectPath,
|
||||
bool* foundFile, std::vector<QString>* searchedPaths);
|
||||
private:
|
||||
virtual caf::PdmFieldHandle* userDescriptionField() override { return &caseUserDescription; }
|
||||
};
|
||||
|
||||
|
||||
|
@ -62,16 +62,16 @@ RimSummaryPlotCollection::~RimSummaryPlotCollection()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifReaderEclipseSummary* RimSummaryPlotCollection::getOrCreateSummaryFileReader(const QString& eclipseCase)
|
||||
RifReaderEclipseSummary* RimSummaryPlotCollection::getOrCreateSummaryFileReader(const QString& eclipseCaseFilePathBasename)
|
||||
{
|
||||
auto it = m_summaryFileReaders.find(eclipseCase);
|
||||
auto it = m_summaryFileReaders.find(eclipseCaseFilePathBasename);
|
||||
if (it != m_summaryFileReaders.end())
|
||||
{
|
||||
return it->second;
|
||||
}
|
||||
else
|
||||
{
|
||||
return createSummaryFileReader(eclipseCase);
|
||||
return createSummaryFileReader(eclipseCaseFilePathBasename);
|
||||
}
|
||||
}
|
||||
|
||||
@ -93,15 +93,15 @@ RifReaderEclipseSummary* RimSummaryPlotCollection::getOrCreateSummaryFileReader(
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifReaderEclipseSummary* RimSummaryPlotCollection::createSummaryFileReader(const QString& eclipseCase)
|
||||
RifReaderEclipseSummary* RimSummaryPlotCollection::createSummaryFileReader(const QString& eclipseCaseFilePathBasename)
|
||||
{
|
||||
std::string headerFile;
|
||||
bool isFormatted = false;
|
||||
RifEclipseSummaryTools::findSummaryHeaderFile(eclipseCase.toStdString(), &headerFile, &isFormatted);
|
||||
RifEclipseSummaryTools::findSummaryHeaderFile(eclipseCaseFilePathBasename.toStdString(), &headerFile, &isFormatted);
|
||||
|
||||
if (headerFile.empty()) return nullptr;
|
||||
|
||||
std::vector<std::string> dataFiles = RifEclipseSummaryTools::findSummaryDataFiles(eclipseCase.toStdString());
|
||||
std::vector<std::string> dataFiles = RifEclipseSummaryTools::findSummaryDataFiles(eclipseCaseFilePathBasename.toStdString());
|
||||
|
||||
if (!dataFiles.size()) return nullptr;
|
||||
|
||||
@ -114,7 +114,7 @@ RifReaderEclipseSummary* RimSummaryPlotCollection::createSummaryFileReader(const
|
||||
}
|
||||
else
|
||||
{
|
||||
m_summaryFileReaders.insert(std::make_pair(eclipseCase, reader));
|
||||
m_summaryFileReaders.insert(std::make_pair(eclipseCaseFilePathBasename, reader));
|
||||
return reader;
|
||||
}
|
||||
}
|
||||
|
@ -46,8 +46,8 @@ public:
|
||||
caf::PdmChildArrayField<RimSummaryPlot*> m_summaryPlots;
|
||||
|
||||
private:
|
||||
RifReaderEclipseSummary* createSummaryFileReader(const QString& eclipseCase);
|
||||
RifReaderEclipseSummary* getOrCreateSummaryFileReader(const QString& eclipseCase);
|
||||
RifReaderEclipseSummary* createSummaryFileReader(const QString& eclipseCaseFilePathBasename);
|
||||
RifReaderEclipseSummary* getOrCreateSummaryFileReader(const QString& eclipseCaseFilePathBasename);
|
||||
|
||||
private:
|
||||
// Map from path to case to summary file reader objects
|
||||
|
Loading…
Reference in New Issue
Block a user