Commit Graph

39 Commits

Author SHA1 Message Date
Jørgen Kvalsvik
2f0f7201eb Fix warnings in Deck 2016-07-13 23:39:29 +02:00
Jørgen Kvalsvik
44cd4868f8 Syntactic cleanup
Fixup of some messy constructors.
2016-07-05 08:22:13 +02:00
Jørgen Kvalsvik
17464851ad Initializer list constructors for Deck
Initializer list support makes some tests much easier to write (and
read) and enables some nifty features for when small, special-purpose
decks are needed.
2016-07-04 12:40:31 +02:00
Jørgen Kvalsvik
02e9b50df9 Deck::iterator support
Add support for iterators that support mutations, which are useful for
the Deck assembly stage.
2016-05-03 09:15:45 +02:00
Kjell W. Kongsvik
b3b8cebeff Simplified deck filename handling. Only set filename if successfully opened 2016-04-28 15:42:07 +02:00
Kjell W. Kongsvik
5fb3a6fc53 Add dataFile to Deck if loaded from file
If loaded from string keep empty
2016-04-28 13:45:08 +02:00
Liu Ming
59c6569a78 Make mutable MessageContainer member, recover the const qualifier for deck. 2016-04-25 16:25:15 +08:00
Liu Ming
4eb2208e63 remove shared_ptr 2016-04-12 09:01:33 +08:00
Liu Ming
0dcb776940 Add MessageContainer to Deck. 2016-04-11 11:15:39 +08:00
Jørgen Kvalsvik
135f405e93 InitUnitSystem private; constness managed by .get
The const_cast in Deck::get*UnitSystem are potentially undefined
behaviour under a series of (plausible) conditions, and are deprecated
in favour of mutable members. Removes initUnitSystem from the public
interface, as the initialisation is handled on the first getUnitSystem
anyway, cleaning up the Deck interface slightly.

Adds proper constness to the use of unit systems that don't actually
modify the internal state in any way.
2016-04-06 15:09:32 +02:00
Jørgen Kvalsvik
79b1407e23 Default constructed Deck is well-defined
The underlying iterators were default constructed (aka uninitialised)
when a Deck was default constructed, meaning possible invocation of
undefined behaviour.

While the empty Deck typically is only used for testing, this is a
possible bug in production code. This small patch makes sure even
default constructed Decks are well defined.
2016-03-14 16:02:27 +01:00
Atgeirr Flø Rasmussen
c4be826212 Silence shadowing warnings. 2016-02-29 10:25:35 +01:00
Jørgen Kvalsvik
9c577d8645 Deck uses automatic memory
The deck no longer exposes shared_ptrs, but uses automatically managed
memory, meaning ownership of DeckKeywords are now obvious and clear.
shared_ptr in the interface has been replaced by references.
2016-02-18 13:26:56 +01:00
Jørgen Kvalsvik
a0a063e386 Split Deck into RO/RW interfaces
This refactoring reflects the ownership semantics of Deck* classes -
Section and Section-derived classes no longer claim ownership over
partial decks, but rather provide a -view- into an already
established Deck.

The Deck class itself is now unique in the sense that it is the only
supporter of write operations, meaning a DeckView derived instance can
never modify the deck it's viewing.
2016-02-18 13:26:56 +01:00
Jørgen Kvalsvik
4b98943665 Replaces unecessary header includes with fwd decls
Every header is self-contained and includes only what it must to
function, relying on users include what they need in source files,
adopting a pay-what-you-use model (in particular for internal
dependencies).
2016-01-26 13:23:22 +01:00
Jørgen Kvalsvik
f404828d63 Cleans up headers to improve build preformance
This is an effort to improve build performance.  Several includes
scattered across the project are either unused or partially used (i.e.
just used to import a type name, not depending on the actual contents of
the header file).

Replaces a lot of these includes with forward declarations.
2016-01-21 09:22:06 +01:00
Joakim Hove
99cdc94345 Made exception message more useful. 2015-08-07 17:03:41 +02:00
Joakim Hove
f8bc617894 Changed Deck::getKeywordList:
The method will return an empty vector - instead of throwing, if you ask
for a missing keyword.
2015-06-18 08:06:38 +02:00
Joakim Hove
b02e536ad8 Added ability to check index of keyword from Deck. 2015-04-20 14:56:52 +02:00
Joakim Hove
7bd566d6a6 Changed Deck & Section implementation
- Removed the KeywordContainer class; and implemented the behaviour
   directly in the Deck.

 - Added begin() and end() iterators to the Deck.

 - Section class inherits from Deck.
2015-04-20 14:56:52 +02:00
Joakim Hove
b924f6cd02 DeckKeyword is immutable. 2014-12-09 11:56:05 +01:00
Andreas Lauser
ea38a25af4 remove all trailing white space
this is just the result of

```
find -iname "*.[ch]pp" | xargs sed -i "s/ *$//"
find opm/parser/share/keywords -type f |  xargs sed -i "s/ *$//"
```

so if it causes conflicts with other patches, the others should get
priority. The rationale behind this patch is that some people tell
their editor to remove white space which leads to larger than
necessary patches...
2014-12-08 16:34:28 +01:00
Andreas Lauser
ff90fe71c0 replace the deck-internal logging system by ParserLog 2014-10-07 15:39:14 +02:00
Andreas Lauser
ef6e76562b Deck: mark numKeywords() and getKeywordList() as const
this was probably an oversight...
2014-09-19 12:07:05 +02:00
Joakim Hove
d0bfaaece1 Added unitSystems to Deck. 2013-12-14 10:23:56 +01:00
Joakim Hove
55a77c2224 Deck->getKeyword() return modifiable DekcKeyword instance. Required to apply dimensions. 2013-12-14 10:22:55 +01:00
Joakim Hove
24e233a53c Support for parsing keywords with unknown size. 2013-12-05 08:26:29 +01:00
Joakim Hove
803304d5f8 Deck->keywordContainer will set deckIndex of DeckKeyword when inserting: Have relaxed const properties of DeckKeyword 2013-10-22 11:42:15 +02:00
Joakim Hove
2345835233 Added warning capabilities to the Deck 2013-10-08 15:58:46 +02:00
Kristian Flikka
b5dac4b5bd Added function to get keyword from deck based on index. Added looping over all keywords in application. This should have been several commits 2013-08-20 15:51:19 +02:00
Joakim Hove
765ade785a Added Deck::size() 2013-08-13 14:49:58 +02:00
Joakim Hove
5c3de27077 1. Implemented support for inferring size from another kewyord - i.e EQLDIMS + EQUIL.
2. Cleaned up the main parser loop considerably; the RawKeyword instance now itself knows whether it is complete or not.
2013-08-11 12:36:16 +02:00
Joakim Hove
475b607faf Can now parse file with several WCONHIST keywords 2013-08-01 12:50:42 +02:00
Joakim Hove
75954575d5 Changed Deck::getKeyword() to take an additional inde argument 2013-08-01 10:57:25 +02:00
Kristian Flikka
f1660460dc Replaced all instances of KW with Keyword. We can afford it. 2013-06-20 15:30:37 +02:00
Kristian Flikka
fbb468342d Finished up the last pieces for a simple BPR keyword vertical. 2013-06-04 14:32:30 +02:00
Kristian Flikka
b43d95c5a2 Starting to wrap up from the top, added the missing DeckKW, and refactored a bit in some of the Raw classes that returned the internal structure 2013-06-03 15:54:16 +02:00
Joakim Hove
c596b086c8 Started integration testing 2013-05-30 10:11:12 +02:00
Kristian Flikka
6e20bfda09 Added Deck class (empty), and some integration tests. WIP 2013-05-27 14:27:22 +02:00