Commit Graph

912 Commits

Author SHA1 Message Date
Mark Olesen
173607fd2d PackedList gets functionality akin to DynamicList 2009-01-22 16:24:05 +01:00
Mark Olesen
6d57bb4e7b added PackedBoolList typedef (used everywhere) and improved PackedList
- new members:  capacity(), two-argument resize()/setSize(), const storage()
- new static members: max_value(), packing(), etc.
2009-01-21 11:30:10 +01:00
Mark Olesen
d9096c1e47 cosmetics 2009-01-20 17:14:53 +01:00
Mark Olesen
96751f7e02 Applied Mattijs' DynamicList copy constructor patch 2009-01-19 14:31:31 +01:00
Mark Olesen
f0341171ff renamed 'empty' class to 'nil', added missing empty() member to some containers 2009-01-09 13:10:10 +01:00
Mark Olesen
990a9e7f57 added HashTable::erase(const HashTable&) method 2009-01-09 09:35:53 +01:00
Mark Olesen
0061e9ed03 added Foam::FOAMbuild to Foam::FOAMversion
- avoids problems with finding files based on FOAMversion
  (reported by Mattijs)
2009-01-09 09:11:50 +01:00
Mark Olesen
7ae9a0d0d9 added tiny applications/test/foamVersion/foamVersionString.C 2009-01-08 14:48:48 +01:00
Mark Olesen
3c5852ebfc reworked regExp + wordRe a bit, minor change to keyType
regExp:
- added optional ignoreCase for constructor.
- the compile() methods is now exposed as set(...) method with an optional
  ignoreCase argument.  Not currently much use for the other regex compile
  flags though. The set() method can be used directly instead of the
  operator=() assignment.

keyType + wordRe:
- it's not clear that any particular characters are valid/invalid (compared
  to string or word), so just drop the valid(char) method for now

wordRe:
- a bool doesn't suffice, added enum compOption (compile-option)
- most constructors now have a compOption. In *all* cases it defaults to
  LITERAL - ie, the same behaviour for std::string and Foam::string
- added set(...) methods that do much the same as operator=(...), but the
  compOption can be specified.  In all cases, it defaults to DETECT.

 In Summary
    By default the constructors will generally preserve the argument as
    string literal and the assignment operators will use the wordRe::DETECT
    compOption to scan the string for regular expression meta characters
    and/or invalid word characters and react accordingly.

    The exceptions are when constructing/assigning from another
    Foam::wordRe (preserve the same type) or from a Foam::word (always
    literal).
2009-01-05 17:02:58 +01:00
Mark Olesen
19503c93e1 rename xfer<T> class to Xfer<T>
- The capitalization is consistent with most other template classes, but
  more importantly frees up xfer() for use as method name without needing
  special treatment to avoid ambiguities.

  It seems reasonable to have different names for transfer(...) and xfer()
  methods, since the transfer is occuring in different directions.
  The xfer() method can thus replace the recently introduced zero-parameter
  transfer() methods.
  Other name candidates (eg, yield, release, etc.) were deemed too abstract.
2009-01-05 12:30:19 +01:00
Mark Olesen
461ac4b4cc regExp - separate full match from partial match, add find()
- match() only does a full match
  - find() and search() do partial matches
    search() is similar to the name coming into C++ TR1
2009-01-05 09:37:52 +01:00
Mark Olesen
2717aa5c7d new wordRe class - a word that holds a regExp
- a possible future replacement for keyType, but the immediate use is the
    wordReList for grepping through other lists.
  - note that the argList treatment of '(' ... ')' yields quoted strings,
    which we can use for building a wordReList

minor cleanup of regExp class

  - constructor from std::string, match std::string and
    operator=(std::string&)
    rely on automatic conversion to Foam::string
  - ditch partialMatch with sub-groups, it doesn't make much sense
2009-01-04 00:33:27 +01:00
Mark Olesen
1d866d7fe8 reworked IOstreams
- Istream and Ostream now retain backslashes when reading/writing strings.
  The previous implementation simply discarded them, except when used to
  escape a double-quote or a newline. It is now vitally important to retain
  them, eg for quoting regular expression meta-characters.

  The backslash continues to be used as an escape character for double-quote
  and newline, but otherwise get passed through "as-is" without any other
  special meaning (ie, they are *NOT* C-style strings). This helps avoid
  'backslash hell'!
  For example,
     string:   "match real dots \.+, question mark \? or any char .*"
     C-style:  "match real dots \\.+, question mark \\? or any char .*"

- combined subfiles in db/IOstreams, some had more copyright info than code
- OPstreamI.H contained only private methods, moved into OPstream.C

Are these really correct?
   IOstreams/Istream.H:#   include "HashTable.C"
   token/token.H:#define NoHashTableC
2009-01-03 12:52:27 +01:00
Mark Olesen
cf488912bb added xfer<...> transfer() method to various containers
- this should provide a slightly more naturally means to using transfer
  constructors, for example
          labelList list2(list1.transfer());
      vs. labelList list2(xferMove(list1));

- returns a plain list where appropriate (eg, DynamicList, SortableList)
  for example
          labelList list2(dynList1.transfer());
      vs. labelList list2(xferMoveTo<labelList>(dynList1));
2009-01-02 15:54:51 +01:00
Mark Olesen
5e90a0ddc9 dictionary gets xfer constructor and transfer() method(s) 2009-01-02 15:50:32 +01:00
Mark Olesen
a010121427 HashTable / StaticHashTable changes
StaticHashTable:
- erase(iterator&) now actually alters the iterator and iterator++() handles
  it properly
- clear() also sets count to zero
- operator=(const StaticHashTable&) doesn't crash after a previous transfer
- operator(), operator==() and operator!=() added

HashTable:
- operator=(const HashTable&) gets tableSize if required, eg, after a
  previous transfer)

HashSet / Map
- add xfer<...> constructor for underlying HashTable
2009-01-02 13:24:30 +01:00
Mark Olesen
28b200bcd9 update copyrights for 2009 2008-12-31 19:01:56 +01:00
Mark Olesen
79e9a90c0e reworked functionObjectList to use PtrList
- This was originally plan 'B', but it is actually probably more efficient
  than using PtrDictionary anyhow.
- straightened out the return value logic, but it wasn't being used anywhere
  anyhow.
- new 'updated_' data member avoids inadvertent execution in the read()
  method when execution is turned off.
2008-12-19 09:29:58 +01:00
Mark Olesen
61187dfedb updated DictionaryTest to test transfer() and remove()
- PtrDictionary and remove(const word&) does not seem to work
2008-12-18 16:54:35 +01:00
Mark Olesen
94a6462058 update/remove some tests from applications/test 2008-12-18 10:00:03 +01:00
Mark Olesen
a43b7a916e handle NULL pointer in regExp 2008-12-18 09:30:06 +01:00
Mark Olesen
239c31f30f DictionaryBase gets transfer() method 2008-12-17 12:36:55 +01:00
Mark Olesen
0571f5393e rename Foam::dotFoam() -> Foam::findEtcFile() with an optional 'mandatory' argument
- if mandatory is true, findEtcFile() will abort with a message (via cerr).
  This allows a non-existent file to be caught at the lowest level and avoid
  error handling in IFstream, which might not be initialized at that stage.
2008-12-12 19:16:32 +01:00
Mark Olesen
7473adc89c writeKeyword spacing for keyType, misc cosmetics changes 2008-12-10 23:00:39 +01:00
Mark Olesen
c6cf2e539a - dropped regularExpression in favour of regExp
- moved findStrings from stringList to new stringListOps
  (helps reduce the influence on dependencies)
- findStrings can also do partial matches
2008-12-10 14:29:19 +01:00
Mark Olesen
4aaa07cc14 cosmetic changes 2008-12-10 13:34:52 +01:00
Mark Olesen
d017697b04 regExp class added - enhanced and with minor bugfixes 2008-12-10 12:44:12 +01:00
Mark Olesen
e2d140fa94 timeSelector: improved functionality
- the improved side-effect of enabling -zeroTimea alters default selection
  behaviour and -latestTime selection behaviour for utilities in which
  accidentally using the 0/ directory can cause damage (eg, reconstructPar)
- can combine -time ranges and -latestTime
2008-12-10 09:14:00 +01:00
Mark Olesen
9a0a0d051e a few tests targeted to FOAM_APPBIN instead of FOAM_USER_APPBIN 2008-12-09 18:59:48 +01:00
Mark Olesen
d0795abc51 Merge commit 'bundle/home' into olesenm 2008-12-09 09:11:26 +01:00
Mark Olesen
cabb079f56 small changes to dictionaryTest to test regexs 2008-12-08 20:46:56 +01:00
Mark Olesen
a13f97d59d timeSelector - handle cases with missing constant/ or 0/ directories 2008-12-02 15:55:51 +01:00
Mark Olesen
dee34f2775 DynamicList: cosmetics
- using SizeInc to define the granularity in the SizeMult=0 needed?
2008-11-29 13:11:52 +01:00
Mark Olesen
b30a6faf2c Merge commit 'OpenCFD/master' into olesenm 2008-11-28 18:06:40 +01:00
Mark Olesen
7e2a940dfb SortableList + ListOps changes
- dropped setSize() in favour of List::setSize().
  The size of the indices is set in sort() anyhow and undefined before that.
- added reverseSort() method
- added ListOps uniqueOrder() and duplicateOrder()
2008-11-25 11:52:38 +01:00
mattijs
1cff9e5409 merge 2008-11-24 16:42:44 +00:00
Mark Olesen
41bbcb6337 DynamicList changes.
- setSize() adjusts the addressable length only.
  Changed setSize(label) usage to setCapacity(label) or reserve(label)
  throughout. The final name (capacity vs. storageSize() vs. whatever) can
  easily be decided at a later date.
- added setSize(label, const T&), which may still not be really useful, but
  is at least now meaningful
- made shrink() a bit more legible.
- added append(UList<T>&)
- copying from a UList avoids reallocations where possible

The following bits of code continue to use the DynamicList::setSize(), but
appear to be legitimate (or the corresponding code itself needs rethinking).

  src/OpenFOAM/meshes/primitiveMesh/primitiveMeshPointCells.C:167: error: within this context
  src/OpenFOAM/lnInclude/faceTemplates.C:44: error: within this context
  src/surfMesh/surfaceFormats/tri/TRIsurfaceFormatCore.C:178: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:737: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:741: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:745: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:749: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:754: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:935: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:940: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:1041: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:1046: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:2161: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:2162: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:2201: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:2205: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:2261: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:2262: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:2263: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:2264: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:2265: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:3011: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:3076: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:3244: error: within this context
  src/dynamicMesh/polyTopoChange/polyTopoChange/polyTopoChange.C:3371: error: within this context
  src/dynamicMesh/meshCut/cellLooper/topoCellLooper.C:73: error: within this context
  src/dynamicMesh/meshCut/cellLooper/topoCellLooper.C:91: error: within this context
  src/dynamicMesh/meshCut/cellLooper/topoCellLooper.C:73: error: within this context
  src/dynamicMesh/meshCut/cellLooper/topoCellLooper.C:91: error: within this context
2008-11-24 17:22:37 +01:00
Mark Olesen
b7e349a727 Merge commit 'bundle/home' into olesenm 2008-11-24 08:44:47 +01:00
Mark Olesen
a8550cd0ba List - adjusted transfer(DynamicList) and added transfer(SortableList) 2008-11-23 16:08:28 +01:00
henry
870fbd14e7 Added description. 2008-11-23 11:54:54 +00:00
Mark Olesen
129e16f975 DynamicList improvements/disambiguities
* DynamicList::allocSize(label)
  - Adjust the allocated size. The addressed list can be truncated but not
    extended, use setSize() for that.

* DynamicList::reserve(label)
  - Reserve allocation for *at least* this number of elements.
    Never shrinks the allocated size, nor touches the addressed list size.

* DynamicList::setSize(label)
  - proposed behaviour:
    Adjust the addressed list size, allocating extra space if required.
  - The current behaviour is ambiguous about what addressable size will
    actually get set and using it to extend the addressable size (as
    per List) automatically shrinks the allocated space to this size!
2008-11-23 12:17:11 +01:00
mattijs
b352c06f0f Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev 2008-11-21 15:19:25 +00:00
Mark Olesen
110e9989b9 further HashSet improvements
- added global operator|, operator& and operator^
 - can construct from table of contents of another HashTable
2008-11-19 12:37:37 +01:00
Mark Olesen
cf7762c2b2 Merge commit 'bundle/home' into olesenm 2008-11-19 10:33:13 +01:00
Mark Olesen
4645e93f8b SortableList improvements
- now works as expected with transfer() and assignment from other Lists
  - shrink() method : clears indices and returns underlying List
2008-11-19 10:28:21 +01:00
Mark Olesen
1c9102dada HashSet gets additional operators
- operator+=  : add in the listed keys
 - operator-=  : remove the listed keys
 - operator&=  : intersection of keys
 - added xfer constructor (just in case)
 - moved labelHashSet typedef to HashSet.H, for consistency with the
   wordHashSet typedef being there and since it is used so often
2008-11-18 23:11:09 +01:00
mattijs
340fcebaed demonstrate wildcard 2008-11-18 21:08:03 +00:00
Mark Olesen
60d1734564 add xferCopyTo and xferMoveTo functions 2008-10-23 09:56:21 +02:00
Mark Olesen
342b1847c7 added xfer<> constructors for meshShapes 2008-10-22 13:15:25 +02:00
Mark Olesen
20d3c10bb2 DynamicList bugfixes
- transfer(DynamicList&) now preserves the allocated space as-is
  - operator=(const List&) should now avoid spurious allocation/deallocation
2008-10-21 09:58:36 +02:00
Mark Olesen
bb5bc16457 minor changes to test/DynamicListTest.C 2008-10-20 14:32:28 +02:00
Mark Olesen
91cb6d2912 xfer class modifications:
- removed operator* in favour of operator() for consistency with tmp
    class. The previous use of operator() for const casting didn't work
    anyhow due to template confusion.
  - added xferCopy(), xferMove() and xferTmp() template functions instead
  - preliminary changes to IOobjects and Fields for xfer
2008-10-17 18:27:11 +02:00
Mark Olesen
70a38319d6 added xfer::operator->() for easier de-referencing of underlying methods 2008-10-16 14:27:16 +02:00
Mark Olesen
4caaeaef14 added test/xfer with lists 2008-10-09 16:15:38 +02:00
Mark Olesen
7b5f45b459 ListLoop.s deleted 2008-10-09 11:21:16 +02:00
mattijs
ff64d2d0d2 unused options 2008-08-19 13:49:00 +01:00
Mark Olesen
5e5b26edd5 update dictionary headers and FoamFile entry to 1.5 format 2008-07-14 14:50:35 +02:00
Mark Olesen
02cabc3cf2 updated Copyright (C) \d+-2008 OpenCFD Ltd. 2008-06-25 15:01:46 +02:00
Mark Olesen
1e8d4b2a82 dictionary functionEntries cleanup
* added '#remove' function
  * changed insert() method name to more general execute()
  * using #inputMode or #remove within a primitiveEntry now provokes an error
  * adjusted the dictionaryTest accordingly
2008-06-13 10:43:31 +02:00
henry
bb034f8ba6 Further tinkering and additional test of the eigenvaues of symmTensors. 2008-06-11 13:32:42 +01:00
andy
422849b42e added test for dataEntry 2008-05-23 11:24:57 +01:00
OpenFOAM-admin
3170c7c0c9 Creation of OpenFOAM-dev repository 15/04/2008 2008-04-15 18:56:58 +01:00