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()) | |
Istream (streamFormat fmt, versionNumber ver=currentVersion, compressionType comp=compressionType::UNCOMPRESSED) | |
Construct with format, version (compression) More... | |
void | putBack (const token &tok) |
Put back token. More... | |
bool | getBack (token &tok) |
Get the put back token if there is one and return true. More... | |
bool | peekBack (token &tok) |
Peek at the put back token without removing it. 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 (floatScalar &)=0 |
Read a floatScalar. More... | |
virtual Istream & | read (doubleScalar &)=0 |
Read a doubleScalar. More... | |
virtual Istream & | read (char *, std::streamsize)=0 |
Read binary block. 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 *, std::streamsize)=0 |
Low-level raw binary read. 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()) | |
IOstream (streamFormat fmt, versionNumber ver, compressionType comp=compressionType::UNCOMPRESSED) | |
Construct with format, version (compression) More... | |
virtual const fileName & | name () const |
Return the name of the stream. More... | |
virtual fileName & | name () |
Return non-const access to the name of the stream. 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 |
Return true if stream has been opened. More... | |
bool | closed () const |
Return true if stream is closed. More... | |
bool | good () const |
Return true if next operation might succeed. More... | |
bool | eof () const |
Return true if end of input seen. More... | |
bool | fail () const |
Return true if next operation will fail. More... | |
bool | bad () const |
Return true if stream is corrupted. More... | |
operator bool () const | |
Return true if the stream has not failed. More... | |
bool | operator! () const |
Return true if the stream has failed. More... | |
unsigned | labelByteSize () const |
The label byte-size associated with the stream. More... | |
unsigned | scalarByteSize () const |
The scalar byte-size associated with the stream. More... | |
void | setLabelByteSize (unsigned nbytes) |
Set the label byte-size associated with the stream. More... | |
void | setScalarByteSize (unsigned nbytes) |
Set the scalar byte-size associated with the stream. More... | |
template<class T = label> | |
std::enable_if< std::is_integral< T >::value, bool >::type | checkLabelSize () const |
template<class T = scalar> | |
std::enable_if< std::is_floating_point< T >::value, bool >::type | checkScalarSize () const |
label | lineNumber () const |
Const access to the current stream line number. More... | |
label & | lineNumber () |
Non-const access to the current stream line number. More... | |
label | lineNumber (const label num) |
Set the stream line number. More... | |
virtual ios_base::fmtflags | flags () const =0 |
Return flags of stream. More... | |
void | setEof () |
Set stream to have reached eof. More... | |
void | setFail () |
Set stream to have failed. More... | |
void | setBad () |
Set stream to be bad. More... | |
virtual ios_base::fmtflags | flags (const ios_base::fmtflags f)=0 |
Set flags of stream. More... | |
ios_base::fmtflags | setf (const ios_base::fmtflags f) |
Set flags of stream. More... | |
ios_base::fmtflags | setf (const ios_base::fmtflags f, const ios_base::fmtflags mask) |
Set flags of given field of stream. More... | |
void | unsetf (const 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 |
Return info proxy. More... | |
Public Member Functions inherited from IOstreamOption | |
constexpr | IOstreamOption (streamFormat fmt=streamFormat::ASCII, compressionType comp=compressionType::UNCOMPRESSED) noexcept |
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... | |
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... | |
Static Public Member Functions inherited from IOstream | |
static unsigned int | defaultPrecision () |
Return the default precision. More... | |
static unsigned int | defaultPrecision (unsigned int prec) |
Reset the default precision. More... | |
Static Public Member Functions inherited from IOstreamOption | |
static streamFormat | formatEnum (const word &formatName, const streamFormat deflt=streamFormat::ASCII) |
static streamFormat | formatEnum (const word &key, const dictionary &dict, const streamFormat deflt=streamFormat::ASCII) |
Failsafe construct streamFormat from optional dictionary lookup. 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) |
Failsafe construct compressionType from optional dictionary lookup. More... | |
Static Public Attributes inherited from IOstream | |
static unsigned int | precision_ |
Default precision. More... | |
Static Public Attributes inherited from IOstreamOption | |
static const Enum< streamFormat > | formatNames |
Stream format names (ascii, binary) More... | |
static const versionNumber | currentVersion |
The current version number (2.0) More... | |
Protected Member Functions inherited from IOstream | |
void | setOpened () |
Set stream opened. More... | |
void | setClosed () |
Set stream closed. More... | |
void | setState (ios_base::iostate state) |
Set stream state. More... | |
void | setGood () |
Set stream to be good. More... | |
Protected Attributes inherited from IOstream | |
streamAccess | openClosed_ |
ios_base::iostate | ioState_ |
unsigned short | labelByteSize_ |
The label byte-size (could also be stored as byte) More... | |
unsigned short | scalarByteSize_ |
The scalar byte-size (could also be stored as byte) 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 |
void putBack | ( | const token & | tok | ) |
Put back token.
Only a single put back is permitted
Definition at line 53 of file Istream.C.
References IOstream::bad(), Foam::exit(), Foam::FatalIOError, and FatalIOErrorInFunction.
Referenced by blockDescriptor::blockDescriptor(), BSplineEdge::BSplineEdge(), CrankNicolsonDdtScheme< Type >::CrankNicolsonDdtScheme(), dictionaryListEntry::dictionaryListEntry(), ifeqEntry::evaluate(), genericFaPatchField< Type >::genericFaPatchField(), genericFvPatchField< Type >::genericFvPatchField(), genericFvsPatchField< Type >::genericFvsPatchField(), blockVertex::New(), Function1< Foam::Vector >::New(), entry::New(), block::New(), PatchFunction1< scalar >::New(), decomposedBlockData::numBlocks(), Foam::operator>>(), Foam::blockMeshTools::read(), dimensionSet::read(), PackedList< 2 >::read(), dictionary::read(), IOPosition< CloudType >::readData(), PtrList< transferModel >::readIstream(), functionEntry::readStringList(), Reaction< ReactionThermo >::setLRhs(), and splineEdge::splineEdge().
Get the put back token if there is one and return true.
Return false if no put back token is available.
Definition at line 75 of file Istream.C.
References Foam::exit(), Foam::FatalIOError, and FatalIOErrorInFunction.
Referenced by UIPstream::read(), ISstream::read(), and ITstream::read().
Peek at the put back token without removing it.
Returns false if no put back token is available and set the token to undefined.
Definition at line 94 of file Istream.C.
References token::reset().
Return next token from stream.
Implemented in ITstream, ISstream, UIPstream, and dummyISstream.
Referenced by CollidingParcel< ParcelType >::CollidingParcel(), DSMCParcel< ParcelType >::DSMCParcel(), findCellParticle::findCellParticle(), injectedParticle::injectedParticle(), KinematicParcel< ParcelType >::KinematicParcel(), molecule::molecule(), MPPICParcel< ParcelType >::MPPICParcel(), Foam::operator>>(), particle< Type >::particle(), ReactingParcel< ParcelType >::ReactingParcel(), ensightReadFile::read(), primitiveEntry::read(), dimensioned< vector >::read(), PackedList< 2 >::read(), Foam::readChar(), Foam::readHexDigit(), ISstream::readRaw(), ifeqEntry::readToken(), solidParticle::solidParticle(), SprayParcel< ParcelType >::SprayParcel(), ThermoParcel< ParcelType >::ThermoParcel(), token::token(), trackedParticle::trackedParticle(), and wallBoundedParticle::wallBoundedParticle().
|
pure virtual |
Read a character.
Implemented in ISstream, UIPstream, ITstream, and dummyISstream.
Read a word.
Implemented in ISstream, UIPstream, ITstream, and dummyISstream.
Read a string (including enclosing double-quotes)
Implemented in ensightReadFile, ISstream, UIPstream, ITstream, and dummyISstream.
|
pure virtual |
Read a label.
Implemented in ensightReadFile, ISstream, UIPstream, ITstream, and dummyISstream.
|
pure virtual |
Read a floatScalar.
Implemented in ISstream, UIPstream, ITstream, and dummyISstream.
|
pure virtual |
Read a doubleScalar.
Implemented in ISstream, UIPstream, ITstream, and dummyISstream.
|
pure virtual |
Read binary block.
Implemented in ITstream, UIPstream, ISstream, ensightReadFile, and dummyISstream.
|
pure virtual |
Start of low-level raw binary read.
Implemented in ITstream, ISstream, UIPstream, and dummyISstream.
Referenced by CollidingParcel< ParcelType >::CollidingParcel(), DSMCParcel< ParcelType >::DSMCParcel(), findCellParticle::findCellParticle(), injectedParticle::injectedParticle(), KinematicParcel< ParcelType >::KinematicParcel(), molecule::molecule(), MPPICParcel< ParcelType >::MPPICParcel(), Foam::operator>>(), particle< Type >::particle(), ReactingParcel< ParcelType >::ReactingParcel(), Foam::Detail::readContiguous(), 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, UIPstream, and dummyISstream.
Referenced by CollidingParcel< ParcelType >::CollidingParcel(), DSMCParcel< ParcelType >::DSMCParcel(), findCellParticle::findCellParticle(), injectedParticle::injectedParticle(), KinematicParcel< ParcelType >::KinematicParcel(), molecule::molecule(), MPPICParcel< ParcelType >::MPPICParcel(), Foam::operator>>(), particle< Type >::particle(), ReactingParcel< ParcelType >::ReactingParcel(), Foam::Detail::readContiguous(), solidParticle::solidParticle(), SprayParcel< ParcelType >::SprayParcel(), ThermoParcel< ParcelType >::ThermoParcel(), trackedParticle::trackedParticle(), and wallBoundedParticle::wallBoundedParticle().
|
pure virtual |
Low-level raw binary read.
Implemented in ITstream, ISstream, UIPstream, 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, UIListStream, IListStream, ISstream, UIPstream, dummyISstream, and IFstream.
bool readBegin | ( | const char * | funcName | ) |
Begin read of data chunk, starts with '('.
Definition at line 109 of file Istream.C.
References token::BEGIN_LIST, Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, token::info(), and Foam::nl.
Referenced by objectMap::objectMap(), Foam::operator>>(), PackedList< 2 >::setPair(), shellSurfaces::shellSurfaces(), and VectorSpace< DiagTensor< Cmpt >, Cmpt, 3 >::VectorSpace().
bool readEnd | ( | const char * | funcName | ) |
End read of data chunk, ends with ')'.
Definition at line 127 of file Istream.C.
References token::END_LIST, Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, token::info(), Foam::nl, and Foam::tellg().
Referenced by objectMap::objectMap(), Foam::operator>>(), PackedList< 2 >::setPair(), shellSurfaces::shellSurfaces(), and VectorSpace< DiagTensor< Cmpt >, Cmpt, 3 >::VectorSpace().
char readBeginList | ( | const char * | funcName | ) |
Begin read of list data, starts with '(' or '{'.
Definition at line 146 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(), PackedList< 2 >::read(), IOPosition< CloudType >::readData(), PtrList< transferModel >::readIstream(), and Matrix< RectangularMatrix< Type >, Type >::readMatrix().
char readEndList | ( | const char * | funcName | ) |
End read of list data, ends with ')' or '}'.
Definition at line 167 of file Istream.C.
References token::END_BLOCK, token::END_LIST, Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, token::info(), Foam::nl, token::pToken(), and Foam::tellg().
Referenced by dictionaryListEntry::dictionaryListEntry(), Foam::blockMeshTools::read(), PackedList< 2 >::read(), IOPosition< CloudType >::readData(), PtrList< transferModel >::readIstream(), 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: e.g. thing thisThing(IFstream("thingFileName")());
Definition at line 189 of file Istream.C.
References IOerror::exit(), and Foam::FatalIOError.