1. 12 Apr, 2018 1 commit
    • Mark Olesen's avatar
      STYLE: reorder/refactor stream format options · 4cf932b2
      Mark Olesen authored
      - IOstreamOption class to encapsulate format, compression, version.
        This is ordered to avoid internal padding in the structure, which
        reduces several bytes of memory overhead for stream objects
        and other things using this combination of data.
      
        Byte-sizes:
            old  IOstream:48  PstreamBuffers:88  Time:928
            new  IOstream:24  PstreamBuffers:72  Time:904
      
      ====
      
      STYLE: remove support for deprecated uncompressed/compressed selectors
      
      In older versions, the system/controlDict used these types of
      specifications:
      
          writeCompression uncompressed;
          writeCompression compressed;
      
      As of DEC-2009, these were deprecated in favour of using normal switch
      names:
      
          writeCompression true;
          writeCompression false;
          writeCompression on;
          writeCompression off;
      
      Now removed these deprecated names and treat like any other unknown
      input and issue a warning. Eg,
      
         Unknown compression specifier 'compressed', assuming no compression
      
      ====
      
      STYLE: provide Enum of stream format names (ascii, binary)
      
      ====
      
      COMP: fixed incorrect IFstream construct in FIREMeshReader
      
      - spurious bool argument (presumably meant as uncompressed) was being
        implicitly converted to a versionNumber. Now caught by making
        IOstreamOption::versionNumber constructor explicit.
      
      - bad version specifier in changeDictionary
      4cf932b2
  2. 28 Mar, 2018 1 commit
  3. 03 Apr, 2018 1 commit
  4. 05 Mar, 2018 1 commit
  5. 26 Feb, 2018 1 commit
    • Mark Olesen's avatar
      ENH: cleanup autoPtr class (issue #639) · 660f3e54
      Mark Olesen authored
      Improve alignment of its behaviour with std::unique_ptr
      
        - element_type typedef
        - release() method - identical to ptr() method
        - get() method to get the pointer without checking and without releasing it.
        - operator*() for dereferencing
      
      Method name changes
      
        - renamed rawPtr() to get()
        - renamed rawRef() to ref(), removed unused const version.
      
      Removed methods/operators
      
        - assignment from a raw pointer was deleted (was rarely used).
          Can be convenient, but uncontrolled and potentially unsafe.
          Do allow assignment from a literal nullptr though, since this
          can never leak (and also corresponds to the unique_ptr API).
      
      Additional methods
      
        - clone() method: forwards to the clone() method of the underlying
          data object with argument forwarding.
      
        - reset(autoPtr&&) as an alternative to operator=(autoPtr&&)
      
      STYLE: avoid implicit conversion from autoPtr to object type in many places
      
      - existing implementation has the following:
      
           operator const T&() const { return operator*(); }
      
        which means that the following code works:
      
             autoPtr<mapPolyMesh> map = ...;
             updateMesh(*map);    // OK: explicit dereferencing
             updateMesh(map());   // OK: explicit dereferencing
             updateMesh(map);     // OK: implicit dereferencing
      
        for clarity it may preferable to avoid the implicit dereferencing
      
      - prefer operator* to operator() when deferenced a return value
        so it is clearer that a pointer is involve and not a function call
        etc    Eg,   return *meshPtr_;  vs.  return meshPtr_();
      660f3e54
  6. 20 Feb, 2018 1 commit
  7. 08 Feb, 2018 1 commit
  8. 22 Jan, 2018 1 commit
    • Mark Olesen's avatar
      ENH: coding cleanup for memory streams · 23c9dd71
      Mark Olesen authored
      - simplify structure.
      - protect against nullptr when resetting memory streams
      - make UIListStream swappable
      - add uiliststream as an example of using a plain std::istream
      23c9dd71
  9. 17 Jan, 2018 1 commit
  10. 20 Dec, 2017 1 commit
  11. 13 Nov, 2017 1 commit
    • Mark Olesen's avatar
      ENH: support change of Pstream buffer format via flag modifier · 8f444b71
      Mark Olesen authored
      - allows changing the format of the sending OPstream at an arbitrary
        point in the transmission. The information is passed through the
        buffer and the receiving IPstream changes its format accordingly.
        This allows a temporary toggling of ASCII/BINARY mid-stream.
      8f444b71
  12. 12 Nov, 2017 2 commits
  13. 09 Nov, 2017 2 commits
  14. 05 Nov, 2017 4 commits
  15. 06 Nov, 2017 1 commit
  16. 04 Nov, 2017 2 commits
  17. 27 Oct, 2017 1 commit
  18. 17 Nov, 2017 1 commit
    • Mark Olesen's avatar
      ENH: improve robustness of MPI start/stop · 9c3bef5a
      Mark Olesen authored
      - warn or fatal if Pstream::init or Pstream::exit are called multiple
        times.
      
      - additional Pstream::initNull method as failsafe to initialize MPI
        when the underlying OpenFOAM process is not running in parallel but
        the application still needs MPI.
      
      - Pstream::exit() can now also be called without having used MPI::init(),
        which means it can be used to cleanup serial process or for
        applications that used the special purpose Pstream::initNull()
        mechanism.
      9c3bef5a
  19. 26 Sep, 2017 1 commit
  20. 22 Sep, 2017 1 commit
  21. 10 Aug, 2017 2 commits
  22. 03 Nov, 2017 1 commit
  23. 26 Oct, 2017 1 commit
    • Mark Olesen's avatar
      ENH: cleanup and rationalize memory-backed streams · 2bd2f83f
      Mark Olesen authored
      - more consistent naming:
        * Versions that hold and manage their own memory:
            IListStream, OListStream
      
        * Versions that reference a fixed size external memory:
            UIListStream, UOListStream
      
      - use List storage instead of DynamicList within OListStream.
        Avoids duplicate bookkeeping, more direct handling of resizing.
      2bd2f83f
  24. 24 Oct, 2017 3 commits
  25. 23 Oct, 2017 2 commits
    • Mark Olesen's avatar
      ENH: include memory streams · 7e8217fd
      Mark Olesen authored
      - these provide a similar functionality to string-streams, but operate
        on a externally provided memory buffer which can be used to reduce
        the amount of copying.
      
      - classes were previously staged as part of the ADIOS community
        repository.
      7e8217fd
    • Mark Olesen's avatar
      ENH: add reset() method to IStringStream · af5f8576
      Mark Olesen authored
      - for convenience and symmetry with OStringStream
      
      STYLE: void return value for stream rewind() methods
      
      - this makes it easier to design bidirectional streams
      af5f8576
  26. 20 Oct, 2017 1 commit
    • Mark Olesen's avatar
      ENH: additional low-level raw binary output for Ostream. · 74f667a8
      Mark Olesen authored
      - low-level beginRaw(), writeRaw(), endRaw() methods.
        These can be used to directly add '()' decorators for serial output
        or prepare/cleanup parallel buffers.
        Used, for example, when outputting indirect lists in binary to avoid.
      74f667a8
  27. 09 Aug, 2017 1 commit
  28. 02 Aug, 2017 1 commit
    • Mark Olesen's avatar
      ENH: consolidate, cleanup some string methods · e70fc616
      Mark Olesen authored
      - consolidate word::validated() into word::validate() and also allow
        as short form for string::validate<word>(). Also less confusing than
        having similarly named methods that essentially do the same thing.
      
      - more consistent const access when iterating over strings
      
      - add valid(char) for keyType and wordRe
      e70fc616
  29. 18 Jul, 2017 1 commit
  30. 17 Jul, 2017 1 commit