An Istream is an abstract base class for all input systems (streams, files, token lists etc). The basic operations are construct, close, read token, read primitive and read binary block. More...
Public Member Functions | |
Istream (const Istream &)=default | |
Copy construct. More... | |
virtual | ~Istream ()=default |
Destructor. More... | |
Istream (IOstreamOption streamOpt=IOstreamOption()) | |
Default construct (ASCII, uncompressed), construct with specified stream option. More... | |
Istream (IOstreamOption::streamFormat fmt, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) | |
Construct with format (uncompressed) More... | |
const token & | peekBack () const noexcept |
Examine putback token without removing it. More... | |
void | putBackClear () |
Drop the putback token. More... | |
void | putBack (const token &tok) |
Put back a token (copy). Only a single put back is permitted. More... | |
void | putBack (token &&tok) |
Put back a token (move). Only a single put back is permitted. More... | |
bool | getBack (token &tok) |
Retrieve the put-back token if there is one. More... | |
virtual Istream & | read (token &)=0 |
Return next token from stream. More... | |
virtual Istream & | read (char &)=0 |
Read a character. More... | |
virtual Istream & | read (word &)=0 |
Read a word. More... | |
virtual Istream & | read (string &)=0 |
Read a string (including enclosing double-quotes) More... | |
virtual Istream & | read (label &)=0 |
Read a label. More... | |
virtual Istream & | read (float &)=0 |
Read a float. More... | |
virtual Istream & | read (double &)=0 |
Read a double. More... | |
virtual Istream & | read (char *data, std::streamsize count)=0 |
Read binary block (with any possible block delimiters). Reading into a null pointer shall ideally behave like a seek operation. More... | |
virtual bool | beginRawRead ()=0 |
Start of low-level raw binary read. More... | |
virtual bool | endRawRead ()=0 |
End of low-level raw binary read. More... | |
virtual Istream & | readRaw (char *data, std::streamsize count)=0 |
Low-level raw binary read (without possible block delimiters). Reading into a null pointer shall ideally behave like a seek operation. More... | |
virtual void | rewind ()=0 |
Rewind the stream so that it may be read again. More... | |
bool | readBegin (const char *funcName) |
Begin read of data chunk, starts with '('. More... | |
bool | readEnd (const char *funcName) |
End read of data chunk, ends with ')'. More... | |
char | readBeginList (const char *funcName) |
Begin read of list data, starts with '(' or '{'. More... | |
char | readEndList (const char *funcName) |
End read of list data, ends with ')' or '}'. More... | |
Istream & | operator() () const |
Return a non-const reference to const Istream. More... | |
Public Member Functions inherited from IOstream | |
IOstream (const IOstream &)=default | |
Copy construct. More... | |
virtual | ~IOstream ()=default |
Destructor. More... | |
IOstream (IOstreamOption streamOpt=IOstreamOption()) | |
Default construct (ASCII, uncompressed), construct with specified stream option. More... | |
IOstream (IOstreamOption::streamFormat fmt, IOstreamOption::versionNumber ver, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) | |
Construct with format, version (compression) More... | |
virtual const fileName & | name () const |
The name of the stream. More... | |
fileName | relativeName () const |
Return the name of the stream relative to the current case. More... | |
virtual bool | check (const char *operation) const |
Check IOstream status for given operation. More... | |
bool | fatalCheck (const char *operation) const |
Check IOstream status for given operation. More... | |
bool | opened () const noexcept |
True if stream has been opened. More... | |
bool | closed () const noexcept |
True if stream is closed. More... | |
bool | good () const noexcept |
True if next operation might succeed. More... | |
bool | eof () const noexcept |
True if end of input seen. More... | |
bool | fail () const noexcept |
True if next operation will fail. More... | |
bool | bad () const noexcept |
True if stream is corrupted. More... | |
operator bool () const noexcept | |
Return true if the stream has not failed. More... | |
bool | operator! () const noexcept |
Return true if the stream has failed. More... | |
unsigned | labelByteSize () const noexcept |
The sizeof (label) in bytes associated with the stream. More... | |
unsigned | scalarByteSize () const noexcept |
The sizeof (scalar) in bytes associated with the stream. More... | |
void | setLabelByteSize (unsigned nbytes) noexcept |
Set the sizeof (label) in bytes associated with the stream. More... | |
void | setScalarByteSize (unsigned nbytes) noexcept |
Set the sizeof (scalar) in bytes associated with the stream. More... | |
template<class T = label> | |
std::enable_if< std::is_integral< T >::value, bool >::type | checkLabelSize () const noexcept |
Check if the label byte-size associated with the stream is the same as the given type. More... | |
template<class T = scalar> | |
std::enable_if< std::is_floating_point< T >::value, bool >::type | checkScalarSize () const noexcept |
Check if the scalar byte-size associated with the stream is the same as the given type. More... | |
label | lineNumber () const noexcept |
Const access to the current stream line number. More... | |
label & | lineNumber () noexcept |
Non-const access to the current stream line number. More... | |
label | lineNumber (const label num) noexcept |
Set the stream line number. More... | |
void | setEof () noexcept |
Set stream state as reached 'eof'. More... | |
void | setFail () noexcept |
Set stream state as 'failed'. More... | |
void | setBad () noexcept |
Set stream state to be 'bad'. More... | |
virtual std::ios_base::fmtflags | flags () const =0 |
Return current stream flags. More... | |
virtual std::ios_base::fmtflags | flags (std::ios_base::fmtflags)=0 |
Set stream flags, return old stream flags. More... | |
std::ios_base::fmtflags | setf (std::ios_base::fmtflags f) |
Set stream flag(s), return old stream flags. More... | |
std::ios_base::fmtflags | setf (const std::ios_base::fmtflags f, const std::ios_base::fmtflags mask) |
Set stream flag(s) with mask, return old stream flags. More... | |
void | unsetf (std::ios_base::fmtflags f) |
Unset flags of stream. More... | |
virtual void | print (Ostream &os) const |
Print stream description to Ostream. More... | |
void | print (Ostream &os, const int streamState) const |
Print information about the stream state bits. More... | |
InfoProxy< IOstream > | info () const noexcept |
Return info proxy, used to print IOstream information to a stream. More... | |
Public Member Functions inherited from IOstreamOption | |
constexpr | IOstreamOption (streamFormat fmt=streamFormat::ASCII, compressionType comp=compressionType::UNCOMPRESSED) noexcept |
Default construct (ASCII, UNCOMPRESSED, currentVersion) or construct with format, compression. More... | |
constexpr | IOstreamOption (streamFormat fmt, compressionType comp, versionNumber ver) noexcept |
Construct from components (format, compression, version) More... | |
constexpr | IOstreamOption (streamFormat fmt, versionNumber ver, compressionType comp=compressionType::UNCOMPRESSED) noexcept |
Construct from components (format, version, compression) More... | |
IOstreamOption (const IOstreamOption &opt, streamFormat fmt) noexcept | |
Copy construct with change of format. More... | |
streamFormat | format () const noexcept |
Get the current stream format. More... | |
streamFormat | format (const streamFormat fmt) noexcept |
Set the stream format. More... | |
streamFormat | format (const word &formatName) |
Set the stream format from string value. More... | |
compressionType | compression () const noexcept |
Get the stream compression. More... | |
compressionType | compression (const compressionType comp) noexcept |
Set the stream compression. More... | |
compressionType | compression (const word &compName) |
Set the stream compression from string value. More... | |
versionNumber | version () const noexcept |
Get the stream version. More... | |
versionNumber | version (const versionNumber ver) noexcept |
Set the stream version. More... | |
versionNumber | version (const token &tok) |
Set the stream version from token. More... | |
Protected Member Functions | |
bool | hasPutback () const noexcept |
True if putback token is in use. More... | |
Protected Member Functions inherited from IOstream | |
void | setOpened () noexcept |
Set stream opened. More... | |
void | setClosed () noexcept |
Set stream closed. More... | |
void | setState (std::ios_base::iostate state) noexcept |
Set stream state. More... | |
void | setGood () noexcept |
Set stream state to be good. More... | |
Additional Inherited Members | |
Public Types inherited from IOstream | |
enum | streamAccess : char { CLOSED = 0, OPENED } |
Enumeration for stream open/closed state. More... | |
Public Types inherited from IOstreamOption | |
enum | streamFormat : char { ASCII = 0, BINARY } |
Data format (ascii | binary) More... | |
enum | compressionType : char { UNCOMPRESSED = 0, COMPRESSED } |
Compression treatment (UNCOMPRESSED | COMPRESSED) More... | |
enum | appendType : char { NO_APPEND = 0, APPEND_APP, APPEND_ATE, NON_APPEND = NO_APPEND, APPEND = APPEND_APP } |
File appending (NO_APPEND | APPEND_APP | APPEND_ATE) More... | |
enum | atomicType : char { NON_ATOMIC = 0, ATOMIC } |
Atomic operations (output) More... | |
enum | floatFormat : unsigned { general = unsigned(0), fixed = unsigned(std::ios_base::fixed), scientific = unsigned(std::ios_base::scientific) } |
Float formats (eg, time directory name formats) More... | |
Static Public Member Functions inherited from IOstream | |
static unsigned int | defaultPrecision () noexcept |
Return the default precision. More... | |
static unsigned int | defaultPrecision (unsigned int prec) noexcept |
Reset the default precision. More... | |
static unsigned int | minPrecision (unsigned int prec) noexcept |
Set the minimum default precision. More... | |
Static Public Member Functions inherited from IOstreamOption | |
static floatFormat | floatFormatEnum (const word &fmtName, const floatFormat deflt=floatFormat::general) |
Lookup floatFormat enum corresponding to the string (general | fixed | scientific). More... | |
static floatFormat | floatFormatEnum (const word &key, const dictionary &dict, const floatFormat deflt=floatFormat::general) |
getOrDefault floatFormat from dictionary, warn only on bad enumeration. More... | |
static streamFormat | formatEnum (const word &fmtName, const streamFormat deflt=streamFormat::ASCII) |
Lookup streamFormat enum corresponding to the string (ascii | binary). More... | |
static streamFormat | formatEnum (const word &key, const dictionary &dict, const streamFormat deflt=streamFormat::ASCII) |
getOrDefault streamFormat from dictionary, warn only on bad enumeration. More... | |
static compressionType | compressionEnum (const word &compName, const compressionType deflt=compressionType::UNCOMPRESSED) |
The compression enum corresponding to the string. More... | |
static compressionType | compressionEnum (const word &key, const dictionary &dict, const compressionType deflt=compressionType::UNCOMPRESSED) |
getOrDefault compressionType from dictionary, warn only on bad enumeration. More... | |
Static Public Attributes inherited from IOstream | |
static unsigned int | precision_ |
Default precision. More... | |
Static Public Attributes inherited from IOstreamOption | |
static const Enum< floatFormat > | floatFormatNames |
Names for float formats (general, fixed, scientific) More... | |
static const Enum< streamFormat > | formatNames |
Stream format names (ascii, binary) More... | |
static const versionNumber | currentVersion |
The current version number (2.0) More... | |
Protected Attributes inherited from IOstream | |
std::ios_base::iostate | ioState_ |
Mirror of internal stream io state. More... | |
streamAccess | openClosed_ |
The stream open/closed state. More... | |
unsigned char | sizeofLabel_ |
The sizeof (label), possibly read from the header. More... | |
unsigned char | sizeofScalar_ |
The sizeof (scalar), possibly read from the header. More... | |
label | lineNumber_ |
The file line. More... | |
Static Protected Attributes inherited from IOstream | |
static fileName | staticName_ |
Name for any generic stream - normally treat as readonly. More... | |
An Istream is an abstract base class for all input systems (streams, files, token lists etc). The basic operations are construct, close, read token, read primitive and read binary block.
In addition, version control and line number counting is incorporated. Usually one would use the read primitive member functions, but if one were reading a stream on unknown data sequence one can read token by token, and then analyse.
|
virtualdefault |
Destructor.
|
inlineexplicit |
|
inlineexplicit |
|
inlineprotectednoexcept |
True if putback token is in use.
Definition at line 81 of file Istream.H.
Referenced by ITstream::hasPutback(), and ITstream::peek().
|
noexcept |
Examine putback token without removing it.
Returns const reference to token::undefinedToken
if a putback is unavailable.
Definition at line 42 of file Istream.C.
References token::undefinedToken.
Referenced by ITstream::peek().
void putBack | ( | const token & | tok | ) |
Put back a token (copy). Only a single put back is permitted.
Definition at line 71 of file Istream.C.
References Foam::exit(), Foam::FatalIOError, and FatalIOErrorInFunction.
Referenced by arcEdge::arcEdge(), blockDescriptor::blockDescriptor(), BSplineEdge::BSplineEdge(), CrankNicolsonDdtScheme< Type >::CrankNicolsonDdtScheme(), dictionaryListEntry::dictionaryListEntry(), ifeqEntry::evaluate(), wordDirective::execute(), decomposedBlockData::getNumBlocks(), blockVertex::New(), entry::New(), block::New(), Foam::operator>>(), genericPatchFieldBase::processEntry(), Foam::blockMeshTools::read(), dimensionSet::read(), dictionary::read(), decomposedBlockData::readBlockEntry(), IOPosition< CloudType >::readData(), PtrList< transferModel >::readIstream(), LList< Foam::chemPointISAT< CompType, ThermoType > *>::readList(), List< Field< scalar > >::readList(), DynamicList< Foam::vector >::readList(), PackedList< 2 >::readList(), FixedList< point, 2 >::readList(), UList< Foam::vector >::readList(), functionEntry::readStringList(), Reaction< ReactionThermo >::setLRhs(), decomposedBlockData::skipBlockEntry(), and splineEdge::splineEdge().
void putBack | ( | token && | tok | ) |
Put back a token (move). Only a single put back is permitted.
Definition at line 93 of file Istream.C.
References Foam::exit(), Foam::FatalIOError, and FatalIOErrorInFunction.
bool getBack | ( | token & | tok | ) |
Retrieve the put-back token if there is one.
Definition at line 115 of file Istream.C.
References Foam::exit(), Foam::FatalIOError, and FatalIOErrorInFunction.
Referenced by UIPstreamBase::read(), ISstream::read(), and ITstream::read().
Return next token from stream.
Implemented in ITstream, ISstream, UIPstreamBase, and dummyISstream.
Referenced by CollidingParcel< ParcelType >::CollidingParcel(), DSMCParcel< ParcelType >::DSMCParcel(), findCellParticle::findCellParticle(), injectedParticle::injectedParticle(), KinematicParcel< ParcelType >::KinematicParcel(), molecule::molecule(), MPPICParcel< ParcelType >::MPPICParcel(), Foam::operator>>(), ReactingParcel< ParcelType >::ReactingParcel(), ensightReadFile::read(), primitiveEntry::read(), dimensioned< vector >::read(), Foam::readChar(), particle< Type >::readData(), Foam::readHexDigit(), List< Field< scalar > >::readList(), DynamicList< Foam::vector >::readList(), PackedList< 2 >::readList(), UList< Foam::vector >::readList(), ISstream::readRaw(), decomposedBlockData::skipBlockEntry(), solidParticle::solidParticle(), SprayParcel< ParcelType >::SprayParcel(), ThermoParcel< ParcelType >::ThermoParcel(), token::token(), trackedParticle::trackedParticle(), and wallBoundedParticle::wallBoundedParticle().
|
pure virtual |
Read a character.
Implemented in ITstream, ISstream, UIPstreamBase, and dummyISstream.
Read a word.
Implemented in ITstream, ISstream, UIPstreamBase, and dummyISstream.
Read a string (including enclosing double-quotes)
Implemented in ITstream, ISstream, UIPstreamBase, ensightReadFile, and dummyISstream.
|
pure virtual |
Read a label.
Implemented in ITstream, ISstream, UIPstreamBase, ensightReadFile, and dummyISstream.
|
pure virtual |
Read a float.
Implemented in ITstream, ISstream, UIPstreamBase, ensightReadFile, and dummyISstream.
|
pure virtual |
Read a double.
Implemented in ITstream, ISstream, UIPstreamBase, ensightReadFile, and dummyISstream.
|
pure virtual |
Read binary block (with any possible block delimiters). Reading into a null pointer shall ideally behave like a seek operation.
Implemented in ITstream, ISstream, UIPstreamBase, dummyISstream, and ensightReadFile.
|
pure virtual |
Start of low-level raw binary read.
Implemented in ITstream, ISstream, UIPstreamBase, and dummyISstream.
Referenced by CollidingParcel< ParcelType >::CollidingParcel(), DSMCParcel< ParcelType >::DSMCParcel(), findCellParticle::findCellParticle(), injectedParticle::injectedParticle(), KinematicParcel< ParcelType >::KinematicParcel(), molecule::molecule(), MPPICParcel< ParcelType >::MPPICParcel(), Foam::operator>>(), ReactingParcel< ParcelType >::ReactingParcel(), Foam::Detail::readContiguous(), particle< Type >::readData(), solidParticle::solidParticle(), SprayParcel< ParcelType >::SprayParcel(), ThermoParcel< ParcelType >::ThermoParcel(), trackedParticle::trackedParticle(), and wallBoundedParticle::wallBoundedParticle().
|
pure virtual |
End of low-level raw binary read.
Implemented in ITstream, ISstream, UIPstreamBase, and dummyISstream.
Referenced by CollidingParcel< ParcelType >::CollidingParcel(), DSMCParcel< ParcelType >::DSMCParcel(), findCellParticle::findCellParticle(), injectedParticle::injectedParticle(), KinematicParcel< ParcelType >::KinematicParcel(), molecule::molecule(), MPPICParcel< ParcelType >::MPPICParcel(), Foam::operator>>(), ReactingParcel< ParcelType >::ReactingParcel(), Foam::Detail::readContiguous(), particle< Type >::readData(), solidParticle::solidParticle(), SprayParcel< ParcelType >::SprayParcel(), ThermoParcel< ParcelType >::ThermoParcel(), trackedParticle::trackedParticle(), and wallBoundedParticle::wallBoundedParticle().
|
pure virtual |
Low-level raw binary read (without possible block delimiters). Reading into a null pointer shall ideally behave like a seek operation.
Implemented in ITstream, ISstream, UIPstreamBase, and dummyISstream.
Referenced by Foam::Detail::readContiguous(), and Foam::readRawLabel().
|
pure virtual |
Rewind the stream so that it may be read again.
Implemented in ITstream, ISpanStream, ICharStream, ISstream, UIPstreamBase, dummyISstream, and IFstream.
bool readBegin | ( | const char * | funcName | ) |
Begin read of data chunk, starts with '('.
Definition at line 134 of file Istream.C.
References token::BEGIN_LIST, Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, token::info(), and Foam::nl.
Referenced by Foam::input(), objectMap::objectMap(), Foam::operator>>(), exprValueFieldTag::read(), PackedList< 2 >::setPair(), shellSurfaces::shellSurfaces(), Tuple2< scalar, Foam::vector >::Tuple2(), and VectorSpace< Vector< vector >, vector, 3 >::VectorSpace().
bool readEnd | ( | const char * | funcName | ) |
End read of data chunk, ends with ')'.
Definition at line 152 of file Istream.C.
References token::END_LIST, Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, token::info(), and Foam::nl.
Referenced by Foam::input(), objectMap::objectMap(), Foam::operator>>(), exprValueFieldTag::read(), PackedList< 2 >::setPair(), shellSurfaces::shellSurfaces(), Tuple2< scalar, Foam::vector >::Tuple2(), and VectorSpace< Vector< vector >, vector, 3 >::VectorSpace().
char readBeginList | ( | const char * | funcName | ) |
Begin read of list data, starts with '(' or '{'.
Definition at line 171 of file Istream.C.
References token::BEGIN_BLOCK, token::BEGIN_LIST, Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, token::info(), and token::pToken().
Referenced by dictionaryListEntry::dictionaryListEntry(), Foam::blockMeshTools::read(), IOPosition< CloudType >::readData(), PtrList< transferModel >::readIstream(), LList< Foam::chemPointISAT< CompType, ThermoType > *>::readList(), List< Field< scalar > >::readList(), DynamicList< Foam::vector >::readList(), PackedList< 2 >::readList(), FixedList< point, 2 >::readList(), UList< Foam::vector >::readList(), and Matrix< RectangularMatrix< Type >, Type >::readMatrix().
char readEndList | ( | const char * | funcName | ) |
End read of list data, ends with ')' or '}'.
Definition at line 192 of file Istream.C.
References token::END_BLOCK, token::END_LIST, Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, token::info(), Foam::nl, and token::pToken().
Referenced by dictionaryListEntry::dictionaryListEntry(), Foam::blockMeshTools::read(), IOPosition< CloudType >::readData(), PtrList< transferModel >::readIstream(), LList< Foam::chemPointISAT< CompType, ThermoType > *>::readList(), List< Field< scalar > >::readList(), DynamicList< Foam::vector >::readList(), PackedList< 2 >::readList(), FixedList< point, 2 >::readList(), UList< Foam::vector >::readList(), and Matrix< RectangularMatrix< Type >, Type >::readMatrix().
Foam::Istream & operator() | ( | ) | const |
Return a non-const reference to const Istream.
Needed for read-constructors where the stream argument is temporary
Definition at line 214 of file Istream.C.
References Foam::check(), IOerror::exit(), Foam::FatalIOError, and FUNCTION_NAME.