Merge pull request 2 from joakim-hove/master - Added code to add Keywords to parser class

This commit is contained in:
Kristian Flikka 2013-04-04 14:17:12 +02:00
parent aa8cd7b4ca
commit 0d5ce81809
6 changed files with 36 additions and 11 deletions

View File

@ -1,4 +1,5 @@
add_library(Parser RawDeck/RawDeck.cpp RawDeck/RawKeyword.cpp RawDeck/RawRecord.cpp RawDeck/RawParserKWs.cpp Parser/Parser.cpp Parser/ParserRecordSize.cpp Parser/ParserKW.cpp)
add_library(Parser RawDeck/RawDeck.cpp RawDeck/RawKeyword.cpp RawDeck/RawRecord.cpp RawDeck/RawParserKWs.cpp Parser/ParserRecordSize.cpp Parser/ParserKW.cpp Parser/Parser.cpp)
add_library(Logger Logger.cpp)
include_directories(${CMAKE_CURRENT_SOURCE_DIR})

View File

@ -16,8 +16,9 @@
You should have received a copy of the GNU General Public License
along with OPM. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Parser.hpp"
#include "RawDeck/RawParserKWs.hpp"
#include "opm/parser/eclipse/Parser/Parser.hpp"
#include "opm/parser/eclipse/Parser/ParserKW.hpp"
#include "opm/parser/eclipse/RawDeck/RawParserKWs.hpp"
namespace Opm {
@ -34,8 +35,12 @@ namespace Opm {
return rawDeck;
}
Parser::~Parser() {
}
void Parser::addKW(ParserKWConstPtr parserKW) {
keywords.insert(std::make_pair(parserKW->getName(), parserKW));
}
} // namespace Opm

View File

@ -26,7 +26,7 @@
#include <opm/parser/eclipse/Logger.hpp>
#include <opm/parser/eclipse/RawDeck/RawKeyword.hpp>
#include <opm/parser/eclipse/RawDeck/RawDeck.hpp>
#include <opm/parser/eclipse/Parser/ParserKW.hpp>
namespace Opm {
@ -34,8 +34,12 @@ namespace Opm {
public:
Parser();
RawDeckPtr parse(const std::string &path);
virtual ~Parser();
virtual ~Parser();
void addKW(ParserKWConstPtr parserKW);
private:
std::map<std::string,ParserKWConstPtr> keywords;
};
typedef boost::shared_ptr<Parser> ParserPtr;

View File

@ -50,7 +50,7 @@ namespace Opm {
//-----------------------------------------------------------------//
const std::string& ParserKW::getName() {
const std::string& ParserKW::getName() const {
return m_name;
}

View File

@ -20,6 +20,8 @@
#define PARSER_KW_H
#include <string>
#include <boost/shared_ptr.hpp>
#include <opm/parser/eclipse/Parser/ParserRecordSize.hpp>
namespace Opm {
@ -31,12 +33,14 @@ namespace Opm {
ParserKW(const std::string& name , ParserRecordSizeConstPtr recordSize);
~ParserKW();
const std::string& getName();
const std::string& getName() const;
private:
std::string m_name;
ParserRecordSizeConstPtr recordSize;
};
typedef boost::shared_ptr<ParserKW> ParserKWPtr;
typedef boost::shared_ptr<const ParserKW> ParserKWConstPtr;
}
#endif

View File

@ -26,7 +26,10 @@
#define BOOST_TEST_MODULE ParserTests
#include <boost/test/unit_test.hpp>
#include "opm/parser/eclipse/Parser/Parser.hpp"
#include "opm/parser/eclipse/Parser/ParserKW.hpp"
#include "opm/parser/eclipse/Parser/ParserRecordSize.hpp"
#include "opm/parser/eclipse/RawDeck/RawDeck.hpp"
using namespace Opm;
@ -167,4 +170,12 @@ BOOST_AUTO_TEST_CASE(ParseFullTestFile) {
}
BOOST_AUTO_TEST_CASE(ParserAddKW) {
Parser parser;
{
ParserRecordSizePtr recordSize(new ParserRecordSize(9));
ParserKWPtr equilKW(new ParserKW("EQUIL" , recordSize) );
parser.addKW( equilKW );
}
}