Standard input stream for binary and ascii data. More...
Public Member Functions | |
Istream (std::istream &is, const word &streamName, writeFormat wf=ASCII) | |
Construct wrapper around std::istream, set stream status. More... | |
virtual | ~Istream ()=default |
Destructor. More... | |
virtual const word & | name () const |
Return the name of the stream. More... | |
virtual word & | name () |
Return non-const access to the name of the stream. More... | |
virtual ios_base::fmtflags | flags () const |
Return flags of output stream. More... | |
Istream & | get (char &c) |
Raw, low-level get character function. More... | |
int | peek () |
Raw, low-level peek function. More... | |
Istream & | getLine (word &str, char delim='\n') |
Raw, low-level getline (until delimiter) into a string. More... | |
std::streamsize | getLine (std::nullptr_t, char delim='\n') |
Low-level discard until delimiter return the number of characters extracted. More... | |
Istream & | putback (const char c) |
Raw, low-level putback character function. More... | |
virtual iIstream & | read (token &t) override |
Return next token from stream. More... | |
virtual iIstream & | read (char &c) override |
Read a character. More... | |
virtual iIstream & | read (word &str) override |
Read a word. More... | |
virtual iIstream & | readString (word &str) override |
Read a string. More... | |
virtual iIstream & | read (int64 &) override |
Read a int64. More... | |
virtual iIstream & | read (int32 &) override |
Read a int32. More... | |
virtual iIstream & | read (int8 &) override |
Read a int8. More... | |
virtual iIstream & | read (uint64 &) override |
Read a uint64. More... | |
virtual iIstream & | read (uint32 &) override |
Read a uint32. More... | |
virtual iIstream & | read (uint8 &) override |
Read a uint8. More... | |
virtual iIstream & | read (float &val) override |
Read a float. More... | |
virtual iIstream & | read (double &val) override |
Read a double. More... | |
iIstream & | read (char *buffer, std::streamsize count) override |
Write a block of binray data. More... | |
size_t | findBinaryBlockStart () override |
It seek for a character sequence that indicates the start of a binary block char sequence is 255 255 255 0 More... | |
void | rewind () override |
Rewind the stream so that it may be read again. More... | |
void | seek (size_t pos) override |
size_t | tell () override |
Return current position indicator. More... | |
virtual ios_base::fmtflags | flags (const ios_base::fmtflags flags) |
Set stream flags. More... | |
virtual std::istream & | stdStream () |
Access to underlying std::istream. More... | |
virtual const std::istream & | stdStream () const |
Const access to underlying std::istream. More... | |
![]() | |
iIstream () | |
default More... | |
iIstream (writeFormat wf) | |
iIstream (const iIstream &)=default | |
Copy construct. More... | |
virtual | ~iIstream ()=default |
Destructor. More... | |
void | putBack (const token &tok) |
Put back token Only a single put back is permitted. 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... | |
void | resetPutBack () |
reset the put back token; More... | |
virtual bool | findToken (const word &w) |
search for all tokesn and find the first word token tbat matchs w More... | |
virtual bool | findTokenResume (const word &w) |
search for all tokesn after the current file position and find the first word token tbat matchs w More... | |
virtual bool | findTokenSilent (const word &w, int32 limitLine=100) |
search for all tokesn and find the first word token that matchs More... | |
virtual bool | findTokenResumeSilent (const word &w, int32 limitLine=100) |
search for all tokesn after the current file position and find the first word token tbat matchs w More... | |
virtual bool | findTokenAndNext (const word &w, word &nextW, bool checkEndStatement=true) |
search for all tokens and find the first word token and also next word token chekck if it is eneded with end statement ; More... | |
virtual bool | findTokenAndNextSilent (const word &w, word &nextW, int32 limitLine=100) |
template<typename T > | |
bool | findKeywordAndVal (const word &keyword, T &val, bool checkEndStatement=true) |
find a pair of keyword and data terminated by ; keyword data; return false if keyword does not exist or reading fails. More... | |
template<typename T > | |
T | lookupData (const word &keyword) |
lookup for keyword and data; fatalExit if fails More... | |
template<typename T > | |
T | lookupDataOrSet (const word &keyword, const T &setVal) |
lookup for keyword and data; set to setVal if lookup fails. More... | |
template<typename T > | |
bool | nextData (const word &keyword, T &data) |
read the data next to keword keyword data; check the keyword is correct or not 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 ')' return true or FatalIOError. More... | |
bool | readBeginSquare (const char *funcName) |
Begin read of data chunk, starts with '('. More... | |
bool | readEndSquare (const char *funcName) |
Begin read of data chunk, starts with '('. More... | |
char | readBeginList (const char *funcName) |
Begin read of list data, starts with '(' or '{' return starting delimiter or FatalIOError. More... | |
char | readEndList (const char *funcName) |
End read of list data, ends with ')' or '}' return closing delimiter or FatalIOError. More... | |
char | readEndStatement (const char *funcName) |
End statement character ;. More... | |
iIstream & | operator() () const |
![]() | |
IOstream () | |
Default. More... | |
IOstream (writeFormat wF) | |
Construct and set write format. More... | |
IOstream (const IOstream &)=default | |
Copy. More... | |
virtual | ~IOstream ()=default |
Destructor. 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 | isBinary () const |
Return true if stream format is binray. 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... | |
int32 | lineNumber () const |
Const access to the current stream line number. More... | |
int32 & | lineNumber () |
Non-const access to the current stream line number. More... | |
int32 | lineNumber (const int32 num) |
Set the stream line number return the previous value. 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... | |
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... | |
Private Member Functions | |
char | nextValid () |
Get the next valid character. More... | |
void | readWordToken (token &t) |
Read a word token. More... | |
Istream & | readVariable (word &str) |
Read a variable name starting with '$'. More... | |
void | operator= (const Istream &)=delete |
No copy assignment. More... | |
Private Attributes | |
word | name_ |
Stream name. More... | |
std::istream & | is_ |
Input stream. More... | |
Additional Inherited Members | |
![]() | |
enum | streamAccess : char { CLOSED = 0, OPENED } |
enum | writeFormat : char { ASCII = 0, BINARY } |
![]() | |
static unsigned int | defaultPrecision () |
Return the default precision. More... | |
static unsigned int | defaultPrecision (unsigned int prec) |
Reset the default precision return the previous value. More... | |
![]() | |
static unsigned int | precision_ = 6 |
Default precision, only works for ASCII. More... | |
![]() | |
void | setOpened () |
Set stream opened. More... | |
void | setClosed () |
Set stream closed. More... | |
void | setState (ios_base::iostate state) |
Set stream state. More... | |
void | setWriteFormat (writeFormat wF) |
void | setGood () |
Set stream to be good. More... | |
![]() | |
streamAccess | openClosed_ |
Is stream open or closed. More... | |
writeFormat | writeFormat_ = ASCII |
write format More... | |
ios_base::iostate | ioState_ |
state More... | |
int32 | lineNumber_ |
The file line. More... | |
![]() | |
static word | staticName_ |
Name for any generic stream - normally treat as readonly. More... | |
Standard input stream for binary and ascii data.
It is based on OpenFOAM stream, with some modifications/simplifications to be tailored to our needs.
Definition at line 39 of file Istream.hpp.
Istream | ( | std::istream & | is, |
const word & | streamName, | ||
writeFormat | wf = ASCII |
||
) |
Construct wrapper around std::istream, set stream status.
Definition at line 304 of file Istream.cpp.
|
virtualdefault |
Destructor.
|
private |
Get the next valid character.
Definition at line 49 of file Istream.cpp.
References IOstream::bad(), Istream::get(), IOstream::good(), and Istream::putback().
|
private |
Read a word token.
Definition at line 127 of file Istream.cpp.
References token::setBad().
|
private |
Read a variable name starting with '$'.
Definition at line 141 of file Istream.cpp.
References token::BEGIN_BLOCK, token::BEGIN_LIST, token::DOLLAR, token::END_BLOCK, token::END_LIST, pFlow::endl(), errLen, fatalExit, ioErrorInFile, pFlow::nl, and warningInFunction.
|
privatedelete |
No copy assignment.
|
inlinevirtual |
Return the name of the stream.
Reimplemented from IOstream.
Definition at line 81 of file Istream.hpp.
References Istream::name_.
Referenced by dictionary::dictionary(), and stlFile::read().
|
inlinevirtual |
Return non-const access to the name of the stream.
Reimplemented from IOstream.
Definition at line 87 of file Istream.hpp.
References Istream::name_.
|
virtual |
pFlow::Istream & get | ( | char & | c | ) |
Raw, low-level get character function.
Definition at line 325 of file Istream.cpp.
References Istream::get().
Referenced by Istream::get(), and Istream::nextValid().
int peek | ( | ) |
Raw, low-level peek function.
Does not remove the character from the stream. Returns the next character in the stream or EOF if the end of file is read.
Definition at line 339 of file Istream.cpp.
pFlow::Istream & getLine | ( | word & | str, |
char | delim = '\n' |
||
) |
Raw, low-level getline (until delimiter) into a string.
Definition at line 345 of file Istream.cpp.
std::streamsize getLine | ( | std::nullptr_t | , |
char | delim = '\n' |
||
) |
Low-level discard until delimiter return the number of characters extracted.
Definition at line 359 of file Istream.cpp.
References pFlow::count(), and pFlow::algorithms::KOKKOS::max().
pFlow::Istream & putback | ( | const char | c | ) |
Raw, low-level putback character function.
Definition at line 375 of file Istream.cpp.
Referenced by Istream::nextValid().
|
overridevirtual |
Return next token from stream.
Implements iIstream.
Definition at line 392 of file Istream.cpp.
References token::BEGIN_BLOCK, token::BEGIN_LIST, token::BEGIN_SQR, token::BEGIN_STRING, token::COLON, token::COMMA, token::DIVIDE, token::DOLLAR, token::END_BLOCK, token::END_LIST, token::END_SQR, token::END_STATEMENT, fatalExit, iIstream::getBack(), ioErrorInFile, token::lineNumber(), pFlow::readInt64(), pFlow::readReal(), token::setBad(), token::setType(), and token::SUBTRACT.
|
overridevirtual |
|
overridevirtual |
Read a word.
Implements iIstream.
Definition at line 598 of file Istream.cpp.
References token::BEGIN_LIST, token::END_LIST, pFlow::endl(), errLen, fatalExit, ioErrorInFile, pFlow::nl, pFlow::validWord(), and warningInFunction.
|
overridevirtual |
Read a string.
Implements iIstream.
Definition at line 680 of file Istream.cpp.
References token::BEGIN_STRING, token::END_STRING, errLen, fatalExit, ioErrorInFile, and token::NL.
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
Write a block of binray data.
Implements iIstream.
Definition at line 841 of file Istream.cpp.
References pFlow::count(), fatalErrorInFunction, and fatalExit.
|
overridevirtual |
It seek for a character sequence that indicates the start of a binary block char sequence is 255 255 255 0
Reimplemented from iIstream.
Definition at line 861 of file Istream.cpp.
|
overridevirtual |
Rewind the stream so that it may be read again.
Implements iIstream.
Definition at line 891 of file Istream.cpp.
|
overridevirtual |
Implements iIstream.
Definition at line 902 of file Istream.cpp.
|
overridevirtual |
Return current position indicator.
Implements iIstream.
Definition at line 911 of file Istream.cpp.
References pFlow::endl(), fatalErrorInFunction, and fatalExit.
|
virtual |
|
inlinevirtual |
Access to underlying std::istream.
Definition at line 173 of file Istream.hpp.
References Istream::is_.
|
inlinevirtual |
Const access to underlying std::istream.
Definition at line 179 of file Istream.hpp.
References Istream::is_.
|
private |
|
private |