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 * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::IFstream::IFstream Foam::IFstream::IFstream
@ -143,6 +132,28 @@ Foam::IFstream::~IFstream()
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * 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 void Foam::IFstream::print(Ostream& os) const
{ {
// Print File data // Print File data

View File

@ -51,7 +51,7 @@ namespace Foam
class IFstream; class IFstream;
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class IFstreamAllocator Declaration Class IFstreamAllocator Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
//- A std::istream with ability to handle compressed files //- A std::istream with ability to handle compressed files
@ -74,19 +74,11 @@ class IFstreamAllocator
// Destructor // Destructor
~IFstreamAllocator(); ~IFstreamAllocator();
public:
// Member functions
//- Access to underlying std::istream (for e.g. lexer)
istream& stdStream();
}; };
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class IFstream Declaration Class IFstream Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
class IFstream class IFstream
@ -136,6 +128,16 @@ public:
return pathname_; 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
//- Print description of IOstream to Ostream //- 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 * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::OFstream::OFstream Foam::OFstream::OFstream
@ -131,7 +120,7 @@ Foam::OFstream::OFstream
} }
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::OFstream::~OFstream() Foam::OFstream::~OFstream()
{} {}
@ -139,6 +128,28 @@ Foam::OFstream::~OFstream()
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * 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 void Foam::OFstream::print(Ostream& os) const
{ {
os << " OFstream: "; os << " OFstream: ";

View File

@ -51,7 +51,7 @@ namespace Foam
class OFstream; class OFstream;
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class OFstreamAllocator Declaration Class OFstreamAllocator Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
//- A std::ostream with ability to handle compressed files //- A std::ostream with ability to handle compressed files
@ -74,18 +74,11 @@ class OFstreamAllocator
~OFstreamAllocator(); ~OFstreamAllocator();
public:
// Member functions
//- Access to underlying std::ostream
ostream& stdStream();
}; };
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class OFstream Declaration Class OFstream Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
class OFstream class OFstream
@ -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
//- Print description of IOstream to Ostream //- 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; extern OFstream Snull;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

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

View File

@ -72,23 +72,6 @@ class ISstream
void operator=(const 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: public:
// Constructors // Constructors
@ -185,6 +168,21 @@ public:
virtual ios_base::fmtflags flags(const ios_base::fmtflags flags); 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
//- Print description of IOstream to Ostream //- Print description of IOstream to Ostream

View File

@ -67,21 +67,6 @@ class OSstream
void operator=(const 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: public:
// Constructors // Constructors
@ -187,6 +172,21 @@ public:
virtual int precision(const int); 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
//- Print description of IOstream to Ostream //- Print description of IOstream to Ostream

View File

@ -97,7 +97,7 @@ public:
~IStringStream() ~IStringStream()
{ {
delete &dynamic_cast<std::istringstream&>(stream()); delete &dynamic_cast<std::istringstream&>(stdStream());
} }
@ -108,7 +108,10 @@ public:
//- Return the string //- Return the string
string str() const 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&> dynamic_cast<const std::ostringstream&>
( (
oss.stream() oss.stdStream()
).str() ).str()
) )
), ),
@ -98,7 +98,7 @@ public:
~OStringStream() ~OStringStream()
{ {
delete &dynamic_cast<std::ostringstream&>(stream()); delete &dynamic_cast<std::ostringstream&>(stdStream());
} }
@ -109,7 +109,10 @@ public:
//- Return the string //- Return the string
string str() const 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() void rewind()
{ {
# if __GNUC__ < 4 && __GNUC_MINOR__ < 4 # if __GNUC__ < 4 && __GNUC_MINOR__ < 4
stream().rdbuf()->pubsetbuf(" ", 1); stdStream().rdbuf()->pubsetbuf(" ", 1);
# else # else
stream().rdbuf()->pubseekpos(0); stdStream().rdbuf()->pubseekpos(0);
# endif # endif
} }

View File

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

View File

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