mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
- token class handles both single and double quoted strings. Single quoted strings are used to tag regular expressions. At the moment this is just syntactical sugar and isn't (yet) treated differently than double-quoted strings. - write output for std:string, with/without single quotes with the method writeQuoted(). Use distinct method name to avoid inadvertent compiler conversions. - write wordRe and keyType using writeQuoted()
145 lines
3.7 KiB
C++
145 lines
3.7 KiB
C++
/*---------------------------------------------------------------------------*\
|
|
========= |
|
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
\\ / O peration |
|
|
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
|
|
\\/ M anipulation |
|
|
-------------------------------------------------------------------------------
|
|
License
|
|
This file is part of OpenFOAM.
|
|
|
|
OpenFOAM is free software; you can redistribute it and/or modify it
|
|
under the terms of the GNU General Public License as published by the
|
|
Free Software Foundation; either version 2 of the License, or (at your
|
|
option) any later version.
|
|
|
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with OpenFOAM; if not, write to the Free Software Foundation,
|
|
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
Class
|
|
Foam::OStringStream
|
|
|
|
Description
|
|
Output to memory buffer stream.
|
|
|
|
SourceFiles
|
|
StringStreamsPrint.C
|
|
|
|
\*---------------------------------------------------------------------------*/
|
|
|
|
#ifndef OStringStream_H
|
|
#define OStringStream_H
|
|
|
|
#include "OSstream.H"
|
|
#include <sstream>
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
namespace Foam
|
|
{
|
|
|
|
/*---------------------------------------------------------------------------*\
|
|
Class OStringStream Declaration
|
|
\*---------------------------------------------------------------------------*/
|
|
|
|
class OStringStream
|
|
:
|
|
public OSstream
|
|
{
|
|
|
|
public:
|
|
|
|
// Constructors
|
|
|
|
//- Construct and set stream status
|
|
OStringStream
|
|
(
|
|
streamFormat format=ASCII,
|
|
versionNumber version=currentVersion
|
|
)
|
|
:
|
|
OSstream
|
|
(
|
|
*(new std::ostringstream()),
|
|
"OStringStream.sinkFile",
|
|
format,
|
|
version
|
|
)
|
|
{}
|
|
|
|
//- Construct as copy
|
|
OStringStream(const OStringStream& oss)
|
|
:
|
|
OSstream
|
|
(
|
|
*(
|
|
new std::ostringstream
|
|
(
|
|
dynamic_cast<const std::ostringstream&>
|
|
(
|
|
oss.stream()
|
|
).str()
|
|
)
|
|
),
|
|
oss.name(),
|
|
oss.format(),
|
|
oss.version()
|
|
)
|
|
{}
|
|
|
|
|
|
// Destructor
|
|
|
|
~OStringStream()
|
|
{
|
|
delete &dynamic_cast<std::ostringstream&>(stream());
|
|
}
|
|
|
|
|
|
// Member functions
|
|
|
|
// Access
|
|
|
|
//- Return the string
|
|
string str() const
|
|
{
|
|
return dynamic_cast<const std::ostringstream&>(stream()).str();
|
|
}
|
|
|
|
|
|
// Edit
|
|
|
|
//- Clear the OStringStream
|
|
void rewind()
|
|
{
|
|
# if __GNUC__ < 4 && __GNUC_MINOR__ < 4
|
|
stream().rdbuf()->pubsetbuf(" ", 1);
|
|
# else
|
|
stream().rdbuf()->pubseekpos(0);
|
|
# endif
|
|
}
|
|
|
|
|
|
// Print
|
|
|
|
//- Print description to Ostream
|
|
void print(Ostream&) const;
|
|
};
|
|
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
} // End namespace Foam
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
#endif
|
|
|
|
// ************************************************************************* //
|