///////////////////////////////////////////////////////////////////////////////// // // Copyright (C) 2021- Equinor ASA // // ResInsight is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. // // See the GNU General Public License at // for more details. // ///////////////////////////////////////////////////////////////////////////////// #pragma once #include #include class RifEclipseSummaryAddress; class RifSummaryReaderInterface; //================================================================================================== // // //================================================================================================== class RifProjectSummaryDataWriter { public: RifProjectSummaryDataWriter(); // Import start time, time values, and time step count from a source summary case void importFromSourceSummaryReader( const RifSummaryReaderInterface* reader ); // Import all data from project summary file. This file can than be overwritten using writeDataToFile() void importFromProjectSummaryFile( const std::string& projectSummaryFileName ); // Set data for a list of keyword/unit/values. If a keyword exist, the data will be overwritten void setData( const std::vector& keywords, const std::vector& units, const std::vector>& values ); void writeDataToFile( const std::string& fileName ); std::vector errorMessages() const; void clearErrorMessages(); private: int indexForKeyword( const std::string& keyword ) const; private: // Structure used to represent start time defined in the following order // [DAY, MONTH, YEAR, HOUR, MINUTE, SECOND, MILLI_SEC] std::vector m_startTime; std::vector m_keywords; std::vector m_units; std::vector> m_values; size_t m_timeStepCount; std::vector m_errorMessages; };