mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2369 Elm Props: Remove deleted field results from cache
This commit is contained in:
parent
27901f426c
commit
a8039b8569
@ -48,7 +48,7 @@ void RifElementPropertyReader::addFile(const std::string& fileName)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RifElementPropertyReader::removeFile(const std::string& fileName)
|
void RifElementPropertyReader::removeFile(const std::string& fileName)
|
||||||
{
|
{
|
||||||
@ -61,18 +61,18 @@ void RifElementPropertyReader::removeFile(const std::string& fileName)
|
|||||||
tempMetaData[metaData.first] = metaData.second;
|
tempMetaData[metaData.first] = metaData.second;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_fieldsMetaData.swap(tempMetaData);
|
m_fieldsMetaData.swap(tempMetaData);
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
std::map<std::string, std::vector<std::string>> RifElementPropertyReader::scalarElementFields()
|
std::map<std::string, std::vector<std::string>> RifElementPropertyReader::scalarElementFields() const
|
||||||
{
|
{
|
||||||
std::map<std::string, std::vector<std::string>> fields;
|
std::map<std::string, std::vector<std::string>> fields;
|
||||||
|
|
||||||
for (std::map<std::string, RifElementPropertyMetadata>::iterator field = m_fieldsMetaData.begin();
|
for (std::map<std::string, RifElementPropertyMetadata>::const_iterator field = m_fieldsMetaData.begin();
|
||||||
field != m_fieldsMetaData.end(); field++)
|
field != m_fieldsMetaData.end(); field++)
|
||||||
{
|
{
|
||||||
fields[field->first];
|
fields[field->first];
|
||||||
@ -105,8 +105,8 @@ std::map<std::string, std::vector<float>>
|
|||||||
{
|
{
|
||||||
for (size_t i = 0; i < table.data.size(); i++)
|
for (size_t i = 0; i < table.data.size(); i++)
|
||||||
{
|
{
|
||||||
const std::string& currentFieldFromFile = m_fieldsMetaData[fieldName].dataColumns[i].toStdString();
|
const std::string& currentFieldFromFile = m_fieldsMetaData[fieldName].dataColumns[i].toStdString();
|
||||||
fieldAndData[currentFieldFromFile] = table.data[i];
|
fieldAndData[currentFieldFromFile] = table.data[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (elementIdsFromFile.size() > m_elementIdxToId.size() && elementIdsFromFile.size() > m_elementIdToIdx.size())
|
else if (elementIdsFromFile.size() > m_elementIdxToId.size() && elementIdsFromFile.size() > m_elementIdToIdx.size())
|
||||||
@ -156,6 +156,27 @@ std::map<std::string, std::vector<float>>
|
|||||||
return fieldAndData;
|
return fieldAndData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
std::vector<std::string> RifElementPropertyReader::fieldsInFile(const std::string& fileName) const
|
||||||
|
{
|
||||||
|
std::vector<std::string> fields;
|
||||||
|
|
||||||
|
for (std::pair<std::string, RifElementPropertyMetadata> metaData : m_fieldsMetaData)
|
||||||
|
{
|
||||||
|
if (metaData.second.fileName.toStdString() == fileName)
|
||||||
|
{
|
||||||
|
for (const QString& column : metaData.second.dataColumns)
|
||||||
|
{
|
||||||
|
fields.push_back(column.toStdString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -173,7 +194,7 @@ void RifElementPropertyReader::makeElementIdToIdxMap()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RifElementPropertyReader::outputWarningAboutWrongFileData()
|
void RifElementPropertyReader::outputWarningAboutWrongFileData()
|
||||||
{
|
{
|
||||||
|
@ -42,10 +42,12 @@ public:
|
|||||||
void addFile(const std::string& fileName);
|
void addFile(const std::string& fileName);
|
||||||
void removeFile(const std::string& fileName);
|
void removeFile(const std::string& fileName);
|
||||||
|
|
||||||
std::map<std::string, std::vector<std::string>> scalarElementFields();
|
std::map<std::string, std::vector<std::string>> scalarElementFields() const;
|
||||||
|
|
||||||
std::map<std::string, std::vector<float>> readAllElementPropertiesInFileContainingField(const std::string& fieldName);
|
std::map<std::string, std::vector<float>> readAllElementPropertiesInFileContainingField(const std::string& fieldName);
|
||||||
|
|
||||||
|
std::vector<std::string> fieldsInFile(const std::string& fileName) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void makeElementIdToIdxMap();
|
void makeElementIdToIdxMap();
|
||||||
static void outputWarningAboutWrongFileData();
|
static void outputWarningAboutWrongFileData();
|
||||||
|
@ -137,10 +137,24 @@ void RigFemPartResultsCollection::addElementPropertyFiles(const std::vector<QStr
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RigFemPartResultsCollection::removeElementPropertyFiles(const std::vector<QString>& filenames)
|
void RigFemPartResultsCollection::removeElementPropertyFiles(const std::vector<QString>& filenames)
|
||||||
{
|
{
|
||||||
|
std::vector<RigFemResultAddress> addressesToRemove;
|
||||||
|
|
||||||
for (const QString filename : filenames)
|
for (const QString filename : filenames)
|
||||||
{
|
{
|
||||||
|
std::vector<std::string> fields = m_elementPropertyReader->fieldsInFile(filename.toStdString());
|
||||||
|
|
||||||
|
for (std::string field : fields)
|
||||||
|
{
|
||||||
|
addressesToRemove.push_back(RigFemResultAddress(RIG_ELEMENT, field, ""));
|
||||||
|
}
|
||||||
|
|
||||||
m_elementPropertyReader->removeFile(filename.toStdString());
|
m_elementPropertyReader->removeFile(filename.toStdString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (const RigFemResultAddress& address : addressesToRemove)
|
||||||
|
{
|
||||||
|
this->deleteResult(address);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user