diff --git a/applications/test/IStringStream/Test-IStringStream.C b/applications/test/IStringStream/Test-IStringStream.C index cd8ba0e2a6165cba7df6db65c52fb59aa27e2874..b265b15a61f747492bd13552a1bd941cabb0e8df 100644 --- a/applications/test/IStringStream/Test-IStringStream.C +++ b/applications/test/IStringStream/Test-IStringStream.C @@ -36,20 +36,22 @@ using namespace Foam; int main(int argc, char *argv[]) { - IStringStream testStream(Foam::string("1002 sfsd sdfsd")); + IStringStream testStream(Foam::string(" 1002 abcd defg;")); label i(readLabel(testStream)); - Info<< i << endl; + Info<< "label=" << i << nl; - word bla(testStream); - word bla2(testStream); + word w1(testStream); + word w2(testStream); - Info<< bla << tab << bla2 << endl; + Info<< "word=" << w1 << nl; + Info<< "word=" << w2 << nl; - wordList wl(IStringStream("(hello1")()); + testStream.reset("(hello1)"); - Info<< wl << endl; + wordList wl(testStream); + Info<< wl << nl; Info<< "\nEnd\n" << endl; diff --git a/src/OpenFOAM/db/IOstreams/Fstreams/IFstream.C b/src/OpenFOAM/db/IOstreams/Fstreams/IFstream.C index fd3889618ea47660ed761cb72e81277653730c61..f1c97306ed5bbde3abdb9dc21521ddc58f469cff 100644 --- a/src/OpenFOAM/db/IOstreams/Fstreams/IFstream.C +++ b/src/OpenFOAM/db/IOstreams/Fstreams/IFstream.C @@ -167,7 +167,7 @@ const std::istream& Foam::IFstream::stdStream() const } -Foam::Istream& Foam::IFstream::rewind() +void Foam::IFstream::rewind() { lineNumber_ = 1; // Reset line number @@ -195,8 +195,6 @@ Foam::Istream& Foam::IFstream::rewind() { ISstream::rewind(); } - - return *this; } diff --git a/src/OpenFOAM/db/IOstreams/Fstreams/IFstream.H b/src/OpenFOAM/db/IOstreams/Fstreams/IFstream.H index 72f89873c58a92447f7de8320ceac5609d0ee7d5..34f7c7c94838139b7a9e5662b09221d4aeb6549c 100644 --- a/src/OpenFOAM/db/IOstreams/Fstreams/IFstream.H +++ b/src/OpenFOAM/db/IOstreams/Fstreams/IFstream.H @@ -130,7 +130,7 @@ public: virtual const std::istream& stdStream() const; //- Rewind the stream so that it may be read again - virtual Istream& rewind(); + virtual void rewind(); // Print diff --git a/src/OpenFOAM/db/IOstreams/IOstreams/Istream.H b/src/OpenFOAM/db/IOstreams/IOstreams/Istream.H index 77131761969e0ca866f446bbdf277864f912ae3e..24df823bdda34e50b606e0c79a4ead1e8cd270d2 100644 --- a/src/OpenFOAM/db/IOstreams/IOstreams/Istream.H +++ b/src/OpenFOAM/db/IOstreams/IOstreams/Istream.H @@ -131,8 +131,8 @@ public: //- Read binary block virtual Istream& read(char*, std::streamsize) = 0; - //- Rewind and return the stream so that it may be read again - virtual Istream& rewind() = 0; + //- Rewind the stream so that it may be read again + virtual void rewind() = 0; // Read List punctuation tokens diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/UIPstream.C b/src/OpenFOAM/db/IOstreams/Pstreams/UIPstream.C index 333aeca259c72b0a1b8edbc98155725df7aab477..21b412fce39e6779cb8ac03dfeae043a10fdf5c0 100644 --- a/src/OpenFOAM/db/IOstreams/Pstreams/UIPstream.C +++ b/src/OpenFOAM/db/IOstreams/Pstreams/UIPstream.C @@ -329,10 +329,9 @@ Foam::Istream& Foam::UIPstream::read(char* data, std::streamsize count) } -Foam::Istream& Foam::UIPstream::rewind() +void Foam::UIPstream::rewind() { externalBufPosition_ = 0; - return *this; } diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/UIPstream.H b/src/OpenFOAM/db/IOstreams/Pstreams/UIPstream.H index 4913693741f8b24e50f858947f6ec90b5943a3bd..d0c0f86552985eae47197f514059bdb90e900223 100644 --- a/src/OpenFOAM/db/IOstreams/Pstreams/UIPstream.H +++ b/src/OpenFOAM/db/IOstreams/Pstreams/UIPstream.H @@ -171,8 +171,8 @@ public: //- Read binary block with 8-byte alignment. Istream& read(char* data, const std::streamsize count); - //- Rewind and return the stream so that it may be read again - Istream& rewind(); + //- Rewind the stream so that it may be read again + void rewind(); // Edit diff --git a/src/OpenFOAM/db/IOstreams/Sstreams/ISstream.C b/src/OpenFOAM/db/IOstreams/Sstreams/ISstream.C index 40c2d8e5950f39b6bc7d929944eb8d4a33f92c23..15ad568f18f0f50f226745b3c9a6d60499c9b91a 100644 --- a/src/OpenFOAM/db/IOstreams/Sstreams/ISstream.C +++ b/src/OpenFOAM/db/IOstreams/Sstreams/ISstream.C @@ -798,7 +798,7 @@ Foam::Istream& Foam::ISstream::read(char* buf, std::streamsize count) } -Foam::Istream& Foam::ISstream::rewind() +void Foam::ISstream::rewind() { lineNumber_ = 1; // Reset line number @@ -807,8 +807,6 @@ Foam::Istream& Foam::ISstream::rewind() // pubseekpos() rather than seekg() so that it works with gzstream stdStream().rdbuf()->pubseekpos(0, std::ios_base::in); - - return *this; } diff --git a/src/OpenFOAM/db/IOstreams/Sstreams/ISstream.H b/src/OpenFOAM/db/IOstreams/Sstreams/ISstream.H index 18890e208734385fb266bfb9aec79d5039c8ac6e..4a2b510b5b16e0313d48a10c3220490715f569a5 100644 --- a/src/OpenFOAM/db/IOstreams/Sstreams/ISstream.H +++ b/src/OpenFOAM/db/IOstreams/Sstreams/ISstream.H @@ -82,7 +82,7 @@ public: // Constructors - //- Construct as wrapper around istream + //- Construct as wrapper around std::istream inline ISstream ( std::istream& is, @@ -163,8 +163,8 @@ public: //- Read binary block virtual Istream& read(char* buf, std::streamsize count); - //- Rewind and return the stream so that it may be read again - virtual Istream& rewind(); + //- Rewind the stream so that it may be read again + virtual void rewind(); // Stream state functions diff --git a/src/OpenFOAM/db/IOstreams/Sstreams/OSstream.H b/src/OpenFOAM/db/IOstreams/Sstreams/OSstream.H index 158f7123ecefec3075f83c257302279c42e32716..2dd13c50fb2eb67c5dd8f5aa8582298ce4dd7056 100644 --- a/src/OpenFOAM/db/IOstreams/Sstreams/OSstream.H +++ b/src/OpenFOAM/db/IOstreams/Sstreams/OSstream.H @@ -69,7 +69,7 @@ public: // Constructors - //- Construct and set stream status + //- Construct as wrapper around std::ostream and set stream status OSstream ( std::ostream& os, diff --git a/src/OpenFOAM/db/IOstreams/StringStreams/StringStream.H b/src/OpenFOAM/db/IOstreams/StringStreams/StringStream.H index 1bdbad9adb7dbe9c13c4c7ae3258ce7e61ad7bc5..91b1a7ce34ab3249d40499ac3ae661113fd15d90 100644 --- a/src/OpenFOAM/db/IOstreams/StringStreams/StringStream.H +++ b/src/OpenFOAM/db/IOstreams/StringStreams/StringStream.H @@ -171,6 +171,13 @@ public: //- Print description to Ostream void print(Ostream& os) const; + //- Reset the input buffer and rewind the stream + void reset(const std::string& s) + { + this->str(s); + this->rewind(); + } + // Member operators diff --git a/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.C b/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.C index c9dae1229471051a350ac5b68b579104bbf4bbdc..c0890dad9d521caeb0935411f7f99e30cadc5741 100644 --- a/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.C +++ b/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.C @@ -154,7 +154,7 @@ Foam::Istream& Foam::ITstream::read(char*, std::streamsize) } -Foam::Istream& Foam::ITstream::rewind() +void Foam::ITstream::rewind() { tokenIndex_ = 0; @@ -164,8 +164,6 @@ Foam::Istream& Foam::ITstream::rewind() } setGood(); - - return *this; } diff --git a/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.H b/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.H index 26617cb37e6f01edddf7a75c738f1311c21331d7..b8414cc4f23110271be652be7090b583c9a1afed 100644 --- a/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.H +++ b/src/OpenFOAM/db/IOstreams/Tstreams/ITstream.H @@ -188,8 +188,8 @@ public: //- Read binary block virtual Istream& read(char*, std::streamsize); - //- Rewind and return the stream so that it may be read again - virtual Istream& rewind(); + //- Rewind the stream so that it may be read again + virtual void rewind(); // Edit diff --git a/src/OpenFOAM/db/IOstreams/dummyISstream/dummyISstream.H b/src/OpenFOAM/db/IOstreams/dummy/dummyISstream.H similarity index 96% rename from src/OpenFOAM/db/IOstreams/dummyISstream/dummyISstream.H rename to src/OpenFOAM/db/IOstreams/dummy/dummyISstream.H index 9477b087914408dc993a15bb5de59fdda198e995..fa0b441dc2da06f19c48af4b38bfeaaede14cad1 100644 --- a/src/OpenFOAM/db/IOstreams/dummyISstream/dummyISstream.H +++ b/src/OpenFOAM/db/IOstreams/dummy/dummyISstream.H @@ -126,11 +126,10 @@ public: return *this; } - //- Rewind and return the stream so that it may be read again - virtual Istream& rewind() + //- Rewind the stream so that it may be read again + virtual void rewind() { NotImplemented; - return *this; } //- Return flags of stream diff --git a/src/OpenFOAM/db/IOstreams/dummyIstream/dummyIstream.H b/src/OpenFOAM/db/IOstreams/dummy/dummyIstream.H similarity index 97% rename from src/OpenFOAM/db/IOstreams/dummyIstream/dummyIstream.H rename to src/OpenFOAM/db/IOstreams/dummy/dummyIstream.H index 9e8549820db4869fff8b7a11347a90a97614ebd2..b15f892ec21d9955ed41cfc285e26e37d464caa4 100644 --- a/src/OpenFOAM/db/IOstreams/dummyIstream/dummyIstream.H +++ b/src/OpenFOAM/db/IOstreams/dummy/dummyIstream.H @@ -127,8 +127,8 @@ public: return *this; } - //- Rewind and return the stream so that it may be read again - virtual Istream& rewind() + //- Rewind the stream so that it may be read again + virtual void rewind() { NotImplemented; return *this;