Commit Graph

16 Commits

Author SHA1 Message Date
9fd514bbe6 ENH: support OFstream "/dev/null" equivalent directly
- uses ocountstream for the output, which swallows all output.
  Improves portability

ENH: improved efficiency in countstreambuf

- xsputn() instead of overflow
- more consistent seek* methods
2020-11-17 14:43:00 +01:00
0ff0271392 ENH: stream adjustments
- make stream constructors explicit

- remove "using std::ifstream", "using std::iofstream" statements
  for a cleaner namespace.

* copy/move assignments for ITstream

* IStringStream: default construct and construct from std::string
  instead of Foam::string

- reduce some overhead in masterOFstream

- simplify Pstream handling of string variants (#1525)
2020-01-23 16:34:43 +01:00
77a5e574af COMP: fully qualify IListStream parameter (fixes #1521)
- stops clang-9 error of List being constrained by private inheritance
2019-12-15 12:53:28 +01:00
fdf8d10ab4 Merge commit 'e9219558d7' into develop-v1906 2019-12-05 11:47:19 +00:00
e9219558d7 GIT: Header file updates 2019-10-31 14:48:44 +00:00
6f8da834a9 ENH: add OListStream::swap(DynamicList<char>&)
- allows full recovery of allocated space, not just addressable range.

  This can be particularly useful for code patterns that repeatedly
  reuse the same buffer space. For example,

      DynamicList<char> buf(1024);

      // some loop
      {
          OListStream os(std::move(buf));
          os << ...

          os.swap(buf);
      }

   Can read back from this buffer as a second operation:

      {
          UIListStream is(buf);
          is >> ...
      }
2019-07-31 11:31:40 +02:00
907dd6d49f STYLE: consistent indentation and template parameters for FixedList 2019-01-08 21:50:12 +01:00
c0766ce8ea STYLE: consistent '// End namespace' markers 2018-04-27 09:51:35 +02:00
53ae09ad04 STYLE: relocate stream allocators to Detail namespace 2018-04-13 10:24:22 +02:00
3d608bf06a ENH: remove reliance on the Xfer class (issue #639)
This class is largely a pre-C++11 holdover. It is now possible to
simply use move construct/assignment directly.

In a few rare cases (eg, polyMesh::resetPrimitives) it has been
replaced by an autoPtr.
2018-03-05 13:28:53 +01:00
03b287ed24 COMP: adjust tests to compile with current code base 2018-02-20 17:24:08 +01:00
23c9dd716d ENH: coding cleanup for memory streams
- simplify structure.
- protect against nullptr when resetting memory streams
- make UIListStream swappable
- add uiliststream as an example of using a plain std::istream
2018-01-22 09:42:06 +01:00
dd838766be STYLE: make memorybuf naming more consistent with std iostreams 2017-11-04 14:30:14 +01:00
2bd2f83f6e ENH: cleanup and rationalize memory-backed streams
- 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.
2017-10-26 12:09:47 +02:00
88bb403fe0 ENH: new stream output: OListStream
- an output stream to a DynamicList
2017-10-24 11:59:11 +02:00
7e8217fd17 ENH: include memory streams
- 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.
2017-10-23 12:06:59 +02:00