Expose STL std streams in a consistent manner for serial streams.

Previously Fstreams had stdStream() as a public member and the other
streams had stream() as a protected member.

All serial streams now have public method stdStream() and the stream()
method has been eliminated. This is not only more consistent, but also
avoids confusion (for the programmer, not the compiler) with the
ITstream::stream() method.
This commit is contained in:
Mark Olesen
2009-12-21 10:24:35 +01:00
parent 438a83fc81
commit 2792624996
11 changed files with 124 additions and 94 deletions

View File

@ -78,17 +78,6 @@ Foam::IFstreamAllocator::~IFstreamAllocator()
}
std::istream& Foam::IFstreamAllocator::stdStream()
{
if (!ifPtr_)
{
FatalErrorIn("IFstreamAllocator::stdStream()")
<< "No stream allocated" << abort(FatalError);
}
return *ifPtr_;
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::IFstream::IFstream
@ -143,6 +132,28 @@ Foam::IFstream::~IFstream()
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
std::istream& Foam::IFstream::stdStream()
{
if (!ifPtr_)
{
FatalErrorIn("IFstream::stdStream()")
<< "No stream allocated" << abort(FatalError);
}
return *ifPtr_;
}
const std::istream& Foam::IFstream::stdStream() const
{
if (!ifPtr_)
{
FatalErrorIn("IFstream::stdStream() const")
<< "No stream allocated" << abort(FatalError);
}
return *ifPtr_;
}
void Foam::IFstream::print(Ostream& os) const
{
// Print File data

View File

@ -74,14 +74,6 @@ class IFstreamAllocator
// Destructor
~IFstreamAllocator();
public:
// Member functions
//- Access to underlying std::istream (for e.g. lexer)
istream& stdStream();
};
@ -136,6 +128,16 @@ public:
return pathname_;
}
// STL stream
//- Access to underlying std::istream
virtual istream& stdStream();
//- Const access to underlying std::istream
virtual const istream& stdStream() const;
// Print
//- Print description of IOstream to Ostream

View File

@ -81,17 +81,6 @@ Foam::OFstreamAllocator::~OFstreamAllocator()
}
std::ostream& Foam::OFstreamAllocator::stdStream()
{
if (!ofPtr_)
{
FatalErrorIn("OFstreamAllocator::stdStream()")
<< "No stream allocated." << abort(FatalError);
}
return *ofPtr_;
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::OFstream::OFstream
@ -131,7 +120,7 @@ Foam::OFstream::OFstream
}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::OFstream::~OFstream()
{}
@ -139,6 +128,28 @@ Foam::OFstream::~OFstream()
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
std::ostream& Foam::OFstream::stdStream()
{
if (!ofPtr_)
{
FatalErrorIn("OFstream::stdStream()")
<< "No stream allocated." << abort(FatalError);
}
return *ofPtr_;
}
const std::ostream& Foam::OFstream::stdStream() const
{
if (!ofPtr_)
{
FatalErrorIn("OFstreamAllocator::stdStream() const")
<< "No stream allocated." << abort(FatalError);
}
return *ofPtr_;
}
void Foam::OFstream::print(Ostream& os) const
{
os << " OFstream: ";

View File

@ -74,13 +74,6 @@ class OFstreamAllocator
~OFstreamAllocator();
public:
// Member functions
//- Access to underlying std::ostream
ostream& stdStream();
};
@ -138,6 +131,15 @@ public:
}
// STL stream
//- Access to underlying std::ostream
virtual ostream& stdStream();
//- Const access to underlying std::ostream
virtual const ostream& stdStream() const;
// Print
//- Print description of IOstream to Ostream
@ -146,8 +148,8 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Global predefined null output stream
//- Global predefined null output stream "/dev/null"
extern OFstream Snull;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -551,7 +551,7 @@ Foam::Istream& Foam::ISstream::read(char* buf, std::streamsize count)
Foam::Istream& Foam::ISstream::rewind()
{
stream().rdbuf()->pubseekpos(0);
stdStream().rdbuf()->pubseekpos(0);
return *this;
}

View File

@ -72,23 +72,6 @@ class ISstream
void operator=(const ISstream&);
protected:
// Protected member functions
//- Return the stream reference
istream& stream()
{
return is_;
}
//- Return the const stream reference
const istream& stream() const
{
return is_;
}
public:
// Constructors
@ -185,6 +168,21 @@ public:
virtual ios_base::fmtflags flags(const ios_base::fmtflags flags);
// STL stream
//- Access to underlying std::istream
virtual istream& stdStream()
{
return is_;
}
//- Const access to underlying std::istream
virtual const istream& stdStream() const
{
return is_;
}
// Print
//- Print description of IOstream to Ostream

View File

@ -67,21 +67,6 @@ class OSstream
void operator=(const OSstream&);
protected:
//- Return the stream reference
ostream& stream()
{
return os_;
}
//- Return the const stream reference
const ostream& stream() const
{
return os_;
}
public:
// Constructors
@ -187,6 +172,21 @@ public:
virtual int precision(const int);
// STL stream
//- Access to underlying std::ostream
virtual ostream& stdStream()
{
return os_;
}
//- Const access to underlying std::ostream
virtual const ostream& stdStream() const
{
return os_;
}
// Print
//- Print description of IOstream to Ostream

View File

@ -97,7 +97,7 @@ public:
~IStringStream()
{
delete &dynamic_cast<std::istringstream&>(stream());
delete &dynamic_cast<std::istringstream&>(stdStream());
}
@ -108,7 +108,10 @@ public:
//- Return the string
string str() const
{
return dynamic_cast<const std::istringstream&>(stream()).str();
return dynamic_cast<const std::istringstream&>
(
stdStream()
).str();
}

View File

@ -83,7 +83,7 @@ public:
(
dynamic_cast<const std::ostringstream&>
(
oss.stream()
oss.stdStream()
).str()
)
),
@ -98,7 +98,7 @@ public:
~OStringStream()
{
delete &dynamic_cast<std::ostringstream&>(stream());
delete &dynamic_cast<std::ostringstream&>(stdStream());
}
@ -109,7 +109,10 @@ public:
//- Return the string
string str() const
{
return dynamic_cast<const std::ostringstream&>(stream()).str();
return dynamic_cast<const std::ostringstream&>
(
stdStream()
).str();
}
@ -119,9 +122,9 @@ public:
void rewind()
{
# if __GNUC__ < 4 && __GNUC_MINOR__ < 4
stream().rdbuf()->pubsetbuf(" ", 1);
stdStream().rdbuf()->pubsetbuf(" ", 1);
# else
stream().rdbuf()->pubseekpos(0);
stdStream().rdbuf()->pubseekpos(0);
# endif
}

View File

@ -170,7 +170,7 @@ public:
~OSHA1stream()
{
delete &dynamic_cast<osha1stream&>(stream());
delete &dynamic_cast<osha1stream&>(stdStream());
}
@ -181,7 +181,7 @@ public:
//- Full access to the sha1
Foam::SHA1& sha1()
{
return dynamic_cast<osha1stream&>(stream()).sha1();
return dynamic_cast<osha1stream&>(stdStream()).sha1();
}
//- Return SHA1::Digest for the data processed until now

View File

@ -91,7 +91,7 @@ Foam::Ostream& Foam::ensightFile::write
std::streamsize count
)
{
stream().write(buf, count);
stdStream().write(buf, count);
return *this;
}
@ -126,7 +126,7 @@ Foam::Ostream& Foam::ensightFile::write(const string& value)
}
else
{
stream() << buf;
stdStream() << buf;
}
return *this;
@ -147,8 +147,8 @@ Foam::Ostream& Foam::ensightFile::write(const label value)
}
else
{
stream().width(10);
stream() << value;
stdStream().width(10);
stdStream() << value;
}
return *this;
@ -173,8 +173,8 @@ Foam::Ostream& Foam::ensightFile::write
}
else
{
stream().width(fieldWidth);
stream() << value;
stdStream().width(fieldWidth);
stdStream() << value;
}
return *this;
@ -195,8 +195,8 @@ Foam::Ostream& Foam::ensightFile::write(const scalar value)
}
else
{
stream().width(12);
stream() << value;
stdStream().width(12);
stdStream() << value;
}
return *this;
@ -207,7 +207,7 @@ void Foam::ensightFile::newline()
{
if (format() == IOstream::ASCII)
{
stream() << nl;
stdStream() << nl;
}
}