mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-24 22:27:55 -05:00
#12631 Refactors RFT readers to use unique_ptr
This commit is contained in:
1 parent
61504636b2
commit
0d0c8f5505
18 files changed
+54
-37
No files matched your search
@@ -64,6 +64,8 @@ public:
|
||||
return RiaDefines::ResultDataType::DOUBLE;
|
||||
case RifEclipseKeywordValueCount::KeywordDataType::INTEGER:
|
||||
return RiaDefines::ResultDataType::INTEGER;
|
||||
case RifEclipseKeywordValueCount::KeywordDataType::UNKNOWN:
|
||||
return RiaDefines::ResultDataType::UNKNOWN;
|
||||
}
|
||||
|
||||
return RiaDefines::ResultDataType::UNKNOWN;
|
||||
|
||||
@@ -155,7 +155,7 @@ std::set<RifEclipseRftAddress> RifReaderEclipseRft::eclipseRftAddresses()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RifReaderEclipseRft::values( const RifEclipseRftAddress& rftAddress, std::vector<double>* values )
|
||||
{
|
||||
CVF_ASSERT( values );
|
||||
if ( !values ) return;
|
||||
|
||||
if ( !m_ecl_rft_file )
|
||||
{
|
||||
|
||||
@@ -24,8 +24,6 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "cvfObject.h"
|
||||
|
||||
#include <QDateTime>
|
||||
|
||||
namespace caf
|
||||
@@ -37,7 +35,7 @@ class VecIjk;
|
||||
//
|
||||
//
|
||||
//==================================================================================================
|
||||
class RifReaderEclipseRft : public RifReaderRftInterface, public cvf::Object
|
||||
class RifReaderEclipseRft : public RifReaderRftInterface
|
||||
{
|
||||
public:
|
||||
RifReaderEclipseRft( const QString& fileName );
|
||||
|
||||
@@ -23,8 +23,6 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "cvfObject.h"
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QDir>
|
||||
|
||||
@@ -32,7 +30,7 @@
|
||||
//
|
||||
//
|
||||
//==================================================================================================
|
||||
class RifReaderFmuRft : public RifReaderRftInterface, public cvf::Object
|
||||
class RifReaderFmuRft : public RifReaderRftInterface
|
||||
{
|
||||
private:
|
||||
struct WellDate
|
||||
|
||||
@@ -55,6 +55,11 @@ RifReaderOpmRft::RifReaderOpmRft( const QString& fileName )
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// This is required to avoid including the OPM library in the header file
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifReaderOpmRft::~RifReaderOpmRft() = default;
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -21,8 +21,6 @@
|
||||
#include "RifReaderEclipseRft.h"
|
||||
#include "RifRftSegment.h"
|
||||
|
||||
#include "cvfObject.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
namespace Opm
|
||||
@@ -33,11 +31,12 @@ namespace EclIO
|
||||
} // namespace EclIO
|
||||
} // namespace Opm
|
||||
|
||||
class RifReaderOpmRft : public RifReaderRftInterface, public cvf::Object
|
||||
class RifReaderOpmRft : public RifReaderRftInterface
|
||||
{
|
||||
public:
|
||||
RifReaderOpmRft( const QString& fileName );
|
||||
RifReaderOpmRft( const QString& fileName, const QString& dataDeckFileName );
|
||||
virtual ~RifReaderOpmRft();
|
||||
|
||||
std::set<RifEclipseRftAddress> eclipseRftAddresses() override;
|
||||
void values( const RifEclipseRftAddress& rftAddress, std::vector<double>* values ) override;
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
//
|
||||
//
|
||||
//==================================================================================================
|
||||
class RifReaderPressureDepthData : public RifReaderRftInterface, public cvf::Object
|
||||
class RifReaderPressureDepthData : public RifReaderRftInterface
|
||||
{
|
||||
public:
|
||||
RifReaderPressureDepthData( const QString& filePath );
|
||||
|
||||
@@ -26,6 +26,11 @@
|
||||
|
||||
#include "cafVecIjk.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifReaderRftInterface::~RifReaderRftInterface() = default;
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -36,6 +36,8 @@ class RigEclipseWellLogExtractor;
|
||||
class RifReaderRftInterface
|
||||
{
|
||||
public:
|
||||
virtual ~RifReaderRftInterface();
|
||||
|
||||
std::set<RifEclipseRftAddress> eclipseRftAddresses( const QString& wellName, const QDateTime& timeStep );
|
||||
virtual std::set<RifEclipseRftAddress> eclipseRftAddresses() = 0;
|
||||
virtual void values( const RifEclipseRftAddress& rftAddress, std::vector<double>* values ) = 0;
|
||||
|
||||
@@ -425,11 +425,11 @@ void RimEclipseResultCase::ensureRftDataIsImported()
|
||||
{
|
||||
if ( m_useOpmRftReader )
|
||||
{
|
||||
m_readerOpmRft = new RifReaderOpmRft( rftFileInfo.filePath() );
|
||||
m_readerOpmRft = std::make_unique<RifReaderOpmRft>( rftFileInfo.filePath() );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_readerEclipseRft = new RifReaderEclipseRft( rftFileInfo.filePath() );
|
||||
m_readerEclipseRft = std::make_unique<RifReaderEclipseRft>( rftFileInfo.filePath() );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -612,9 +612,9 @@ RifReaderRftInterface* RimEclipseResultCase::rftReader()
|
||||
{
|
||||
ensureRftDataIsImported();
|
||||
|
||||
if ( m_useOpmRftReader ) return m_readerOpmRft.p();
|
||||
if ( m_useOpmRftReader ) return m_readerOpmRft.get();
|
||||
|
||||
return m_readerEclipseRft.p();
|
||||
return m_readerEclipseRft.get();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
#include "cafFilePath.h"
|
||||
#include "cafPdmProxyValueField.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
class RifReaderRftInterface;
|
||||
class RifReaderEclipseRft;
|
||||
class RifReaderOpmRft;
|
||||
@@ -94,8 +96,8 @@ private:
|
||||
private:
|
||||
cvf::ref<RigFlowDiagSolverInterface> m_flowDagSolverInterface;
|
||||
|
||||
cvf::ref<RifReaderEclipseRft> m_readerEclipseRft;
|
||||
cvf::ref<RifReaderOpmRft> m_readerOpmRft;
|
||||
std::unique_ptr<RifReaderEclipseRft> m_readerEclipseRft;
|
||||
std::unique_ptr<RifReaderOpmRft> m_readerOpmRft;
|
||||
|
||||
caf::PdmProxyValueField<caf::AppEnum<RiaDefines::EclipseUnitSystem>> m_unitSystem;
|
||||
caf::PdmChildArrayField<RimFlowDiagSolution*> m_flowDiagSolutions;
|
||||
|
||||
@@ -57,7 +57,7 @@ void RimObservedFmuRftData::setDirectoryPath( const QString& path )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimObservedFmuRftData::createRftReaderInterface()
|
||||
{
|
||||
m_fmuRftReader = new RifReaderFmuRft( m_directoryPath().path() );
|
||||
m_fmuRftReader = std::make_unique<RifReaderFmuRft>( m_directoryPath().path() );
|
||||
m_fmuRftReader->importData();
|
||||
}
|
||||
|
||||
@@ -66,12 +66,12 @@ void RimObservedFmuRftData::createRftReaderInterface()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifReaderRftInterface* RimObservedFmuRftData::rftReader()
|
||||
{
|
||||
if ( m_fmuRftReader.isNull() )
|
||||
if ( !m_fmuRftReader )
|
||||
{
|
||||
createRftReaderInterface();
|
||||
}
|
||||
|
||||
return m_fmuRftReader.p();
|
||||
return m_fmuRftReader.get();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -95,9 +95,9 @@ bool RimObservedFmuRftData::hasWell( const QString& wellPathName ) const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<QString> RimObservedFmuRftData::wells() const
|
||||
{
|
||||
if ( m_fmuRftReader.p() )
|
||||
if ( m_fmuRftReader )
|
||||
{
|
||||
std::set<QString> wellNames = const_cast<RifReaderFmuRft*>( m_fmuRftReader.p() )->wellNames();
|
||||
std::set<QString> wellNames = m_fmuRftReader->wellNames();
|
||||
return std::vector<QString>( wellNames.begin(), wellNames.end() );
|
||||
}
|
||||
return std::vector<QString>();
|
||||
@@ -108,9 +108,9 @@ std::vector<QString> RimObservedFmuRftData::wells() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<QString> RimObservedFmuRftData::labels( const RifEclipseRftAddress& rftAddress )
|
||||
{
|
||||
if ( m_fmuRftReader.p() )
|
||||
if ( m_fmuRftReader )
|
||||
{
|
||||
return const_cast<RifReaderFmuRft*>( m_fmuRftReader.p() )->labels( rftAddress );
|
||||
return m_fmuRftReader->labels( rftAddress );
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
@@ -19,12 +19,15 @@
|
||||
#pragma once
|
||||
|
||||
#include "RifReaderFmuRft.h"
|
||||
|
||||
#include "RimNamedObject.h"
|
||||
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmProxyValueField.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
class RimObservedFmuRftData : public RimNamedObject
|
||||
{
|
||||
CAF_PDM_HEADER_INIT;
|
||||
@@ -44,7 +47,7 @@ protected:
|
||||
void initAfterRead() override;
|
||||
|
||||
private:
|
||||
cvf::ref<RifReaderFmuRft> m_fmuRftReader;
|
||||
std::unique_ptr<RifReaderFmuRft> m_fmuRftReader;
|
||||
|
||||
caf::PdmField<caf::FilePath> m_directoryPath;
|
||||
caf::PdmField<QString> m_directoryPath_OBSOLETE;
|
||||
|
||||
@@ -63,7 +63,7 @@ void RimPressureDepthData::setFilePath( const QString& path )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimPressureDepthData::createRftReaderInterface()
|
||||
{
|
||||
m_fmuRftReader = new RifReaderPressureDepthData( m_filePath().path() );
|
||||
m_fmuRftReader = std::make_unique<RifReaderPressureDepthData>( m_filePath().path() );
|
||||
m_fmuRftReader->load();
|
||||
}
|
||||
|
||||
@@ -72,12 +72,12 @@ void RimPressureDepthData::createRftReaderInterface()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifReaderRftInterface* RimPressureDepthData::rftReader()
|
||||
{
|
||||
if ( m_fmuRftReader.isNull() )
|
||||
if ( !m_fmuRftReader )
|
||||
{
|
||||
createRftReaderInterface();
|
||||
}
|
||||
|
||||
return m_fmuRftReader.p();
|
||||
return m_fmuRftReader.get();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -101,9 +101,9 @@ bool RimPressureDepthData::hasWell( const QString& wellPathName ) const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<QString> RimPressureDepthData::wellNames() const
|
||||
{
|
||||
if ( m_fmuRftReader.p() )
|
||||
if ( m_fmuRftReader )
|
||||
{
|
||||
std::set<QString> wellNames = const_cast<RifReaderPressureDepthData*>( m_fmuRftReader.p() )->wellNames();
|
||||
std::set<QString> wellNames = m_fmuRftReader->wellNames();
|
||||
return std::vector<QString>( wellNames.begin(), wellNames.end() );
|
||||
}
|
||||
return {};
|
||||
|
||||
@@ -43,7 +43,7 @@ public:
|
||||
std::vector<QString> wellNames() const;
|
||||
|
||||
private:
|
||||
cvf::ref<RifReaderPressureDepthData> m_fmuRftReader;
|
||||
std::unique_ptr<RifReaderPressureDepthData> m_fmuRftReader;
|
||||
|
||||
caf::PdmField<caf::FilePath> m_filePath;
|
||||
caf::PdmProxyValueField<std::vector<QString>> m_wells;
|
||||
|
||||
@@ -215,13 +215,13 @@ RifSummaryReaderInterface* RimFileSummaryCase::findRelatedFilesAndCreateReader(
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifReaderOpmRft* RimFileSummaryCase::createOpmRftReader( const QString& rftFileName, const QString& dataDeckFileName )
|
||||
std::unique_ptr<RifReaderOpmRft> RimFileSummaryCase::createOpmRftReader( const QString& rftFileName, const QString& dataDeckFileName )
|
||||
{
|
||||
QFileInfo fi( rftFileName );
|
||||
|
||||
if ( fi.exists() )
|
||||
{
|
||||
return new RifReaderOpmRft( rftFileName, dataDeckFileName );
|
||||
return std::make_unique<RifReaderOpmRft>( rftFileName, dataDeckFileName );
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
@@ -293,11 +293,11 @@ RifSummaryReaderInterface* RimFileSummaryCase::summaryReader()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RifReaderRftInterface* RimFileSummaryCase::rftReader()
|
||||
{
|
||||
if ( m_summaryEclipseRftReader.isNull() )
|
||||
if ( !m_summaryEclipseRftReader )
|
||||
{
|
||||
createRftReaderInterface();
|
||||
}
|
||||
return m_summaryEclipseRftReader.p();
|
||||
return m_summaryEclipseRftReader.get();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
#include "cafPdmField.h"
|
||||
#include "cvfObject.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
class RifReaderRftInterface;
|
||||
class RifReaderOpmRft;
|
||||
class RifReaderEclipseSummary;
|
||||
@@ -73,13 +75,13 @@ private:
|
||||
QString additionalSummaryDataFilePath() const;
|
||||
static QString createAdditionalSummaryFileName();
|
||||
|
||||
static RifReaderOpmRft* createOpmRftReader( const QString& rftFileName, const QString& dataDeckFileName );
|
||||
static std::unique_ptr<RifReaderOpmRft> createOpmRftReader( const QString& rftFileName, const QString& dataDeckFileName );
|
||||
|
||||
private:
|
||||
cvf::ref<RifSummaryReaderInterface> m_fileSummaryReader;
|
||||
cvf::ref<RifCalculatedSummaryCurveReader> m_calculatedSummaryReader;
|
||||
cvf::ref<RifMultipleSummaryReaders> m_multiSummaryReader;
|
||||
cvf::ref<RifReaderOpmRft> m_summaryEclipseRftReader;
|
||||
std::unique_ptr<RifReaderOpmRft> m_summaryEclipseRftReader;
|
||||
caf::PdmField<bool> m_includeRestartFiles;
|
||||
|
||||
caf::PdmField<caf::FilePath> m_additionalSummaryFilePath;
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <QDateTime>
|
||||
#include <QString>
|
||||
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
Reference in new issue
Block a user