A variant of IFstream with specialised handling for Ensight reading of strings, integers and floats (ASCII and BINARY). More...
Public Member Functions | |
ensightReadFile (const fileName &pathname) | |
Construct a geometry reader, auto-detecting the "C Binary" header for binary files and skipping past it. More... | |
ensightReadFile (const fileName &pathname, IOstreamOption::streamFormat fmt) | |
Construct from pathname, use the specified (ascii/binary) format. More... | |
~ensightReadFile ()=default | |
Destructor. More... | |
virtual Istream & | read (char *buf, std::streamsize count) override |
Binary read. More... | |
virtual Istream & | read (string &value) override |
Read string as "%80s" or as binary. More... | |
virtual Istream & | read (label &value) override |
Read integer as "%10d" or as binary (narrowed) int. More... | |
virtual Istream & | read (float &value) override |
Read floating-point as "%12.5e" or as binary. More... | |
virtual Istream & | read (double &value) override |
Read floating-point as "%12.5e" or as a binary (narrowed) float. More... | |
Istream & | readKeyword (string &key) |
Read element keyword. Currently the same as read(string) More... | |
void | readPoints (const label nPoints, List< floatVector > &points) |
Component-wise reading of points/coordinates. Read all x components, y components and z components. More... | |
void | readPoints (const label nPoints, List< doubleVector > &points) |
Component-wise reading of points/coordinates. Reads x components, y components and z components. More... | |
template<class Type > | |
void | skip (label n=1) |
Read and discard specified number of elements. More... | |
int64_t | timeStepFooterBegin () const noexcept |
Transient single-file: the position of the FILE_INDEX footer. More... | |
label | nTimes () const noexcept |
Transient single-file: the number of time steps within the file. More... | |
const UList< int64_t > & | timeStepOffets () const noexcept |
Transient single-file: the file-offsets for time steps within the file. More... | |
bool | seekTime (const label timeIndex) |
Transient single-file: seek to the file position corresponding to the given time index. More... | |
virtual Istream & | read (token &)=0 |
Inherit read from Istream. More... | |
virtual Istream & | read (char &)=0 |
Inherit read from Istream. More... | |
virtual Istream & | read (word &)=0 |
Inherit read from Istream. More... | |
virtual Istream & | read (string &)=0 |
Inherit read from Istream. More... | |
virtual Istream & | read (label &)=0 |
Inherit read from Istream. More... | |
virtual Istream & | read (float &)=0 |
Inherit read from Istream. More... | |
virtual Istream & | read (double &)=0 |
Inherit read from Istream. More... | |
virtual Istream & | read (char *data, std::streamsize count)=0 |
Inherit read from Istream. More... | |
Public Member Functions inherited from IFstream | |
ClassName ("IFstream") | |
Declare type-name (with debug switch) More... | |
IFstream (const fileName &pathname, IOstreamOption streamOpt=IOstreamOption()) | |
Construct from pathname, default or specified stream options. More... | |
IFstream (const fileName &pathname, IOstreamOption::streamFormat fmt) | |
Construct from pathname and format. More... | |
~IFstream ()=default | |
Destructor. More... | |
std::streamsize | fileSize () const |
Return the size of the underlying file (-1 on error). This corresponds to Foam::fileSize() but with extra handling of compressed files. More... | |
virtual std::istream & | stdStream () override |
Access to underlying std::istream. More... | |
virtual const std::istream & | stdStream () const override |
Const access to underlying std::istream. More... | |
virtual void | rewind () override |
Rewind the stream so that it may be read again. More... | |
virtual void | print (Ostream &os) const override |
Print stream description. More... | |
IFstream & | operator() () const |
Return a non-const reference to const IFstream. More... | |
ISstream & | get (char &c) |
Get character(s) More... | |
virtual const fileName & | name () const override |
Read/write access to the name of the stream. More... | |
virtual fileName & | name () |
Read/write access to the name of the stream. More... | |
Public Member Functions inherited from ISstream | |
ISstream (std::istream &is, const string &streamName, IOstreamOption streamOpt=IOstreamOption()) | |
Construct wrapper around std::istream, set stream status. More... | |
ISstream (std::istream &is, const string &streamName, IOstreamOption::streamFormat fmt, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) | |
Construct wrapper around std::istream, set stream status. More... | |
ISstream (std::istream &is, const string &streamName, IOstreamOption::streamFormat fmt, IOstreamOption::versionNumber ver, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) | |
Construct wrapper around std::istream, set stream status. More... | |
virtual | ~ISstream ()=default |
Destructor. More... | |
virtual const fileName & | name () const override |
The name of the input serial stream. (eg, the name of the Fstream file name) More... | |
virtual fileName & | name () |
The name of the input serial stream, for modification. More... | |
virtual std::ios_base::fmtflags | flags () const override |
Return current stream flags. More... | |
virtual std::ios_base::fmtflags | flags (std::ios_base::fmtflags f) override |
Set stream flags, return old stream flags. More... | |
void | syncState () |
Set stream state to match that of the std::istream. More... | |
**return False if stream exhausted before finding the comment end *bool | seekCommentEnd_Cstyle () |
Discard until end of C-style comment '. More... | |
bool | continueReadUntilRightBrace (std::string &str, const bool stripComments=true) |
Raw, low-level get into a string. Continues reading after an initial left-brace until it finds the matching closing right-brace. More... | |
ISstream & | get (char &c) |
Raw, low-level get character function. More... | |
int | peek () |
Raw, low-level peek function. More... | |
ISstream & | getLine (std::string &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. More... | |
ISstream & | putback (const char c) |
Raw, low-level putback character function. More... | |
virtual Istream & | read (token &t) override |
Return next token from stream. More... | |
virtual Istream & | read (char &c) override |
Read a character. More... | |
virtual Istream & | read (word &str) override |
Read a word. More... | |
virtual Istream & | readRaw (char *data, std::streamsize count) override |
Low-level raw binary read (without possible block delimiters). Reading into a null pointer behaves like a forward seek of count characters. More... | |
virtual bool | beginRawRead () override |
Start of low-level raw binary read. More... | |
virtual bool | endRawRead () override |
End of low-level raw binary read. More... | |
Public Member Functions inherited from Istream | |
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... | |
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... | |
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... | |
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... | |
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... | |
Static Public Member Functions | |
static int64_t | getTimeStepFooter (IFstream &is, List< int64_t > &offsets) |
Extract time step footer information (if any). More... | |
static IOstreamOption::streamFormat | detectBinaryHeader (const fileName &pathname) |
Detect if the file is binary by testing for initial "(C|Fortran) Binary". More... | |
Static Public Member Functions inherited from IFstream | |
static DynamicList< char > | readContents (const fileName &pathname) |
Get file contents from specified file (compressed/uncompressed). Returns an empty list if the file cannot be opened. More... | |
static DynamicList< char > | readContents (IFstream &ifs) |
Get file contents from IFstream (assumed to be rewound) 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 | |
static int | debug |
Debug switch. 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... | |
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... | |
Protected Member Functions inherited from Istream | |
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... | |
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... | |
A variant of IFstream with specialised handling for Ensight reading of strings, integers and floats (ASCII and BINARY).
Definition at line 44 of file ensightReadFile.H.
|
explicit |
Construct a geometry reader, auto-detecting the "C Binary" header for binary files and skipping past it.
Definition at line 322 of file ensightReadFile.C.
ensightReadFile | ( | const fileName & | pathname, |
IOstreamOption::streamFormat | fmt | ||
) |
Construct from pathname, use the specified (ascii/binary) format.
Definition at line 334 of file ensightReadFile.C.
|
default |
Destructor.
Extract time step footer information (if any).
[out] | offsets | File offsets for each time step (if any) |
Definition at line 118 of file ensightReadFile.C.
References IOstreamOption::ASCII, IOstreamOption::BINARY, List< T >::clear(), stdFoam::end(), IOstreamOption::format(), IOstream::lineNumber(), Foam::readEnsightString(), Foam::readInt64(), List< T >::resize_nocopy(), split(), Foam::stringOps::splitSpace(), and IFstream::stdStream().
|
overridevirtual |
Binary read.
Reimplemented from ISstream.
Definition at line 350 of file ensightReadFile.C.
References Foam::BitOps::count(), and Istream::read().
Referenced by ensightSurfaceReader::readField(), ensightSurfaceReader::readGeometry(), ensightSurfaceReader::readGeometryHeader(), and ensightReadFile::skip().
|
overridevirtual |
Read string as "%80s" or as binary.
Reimplemented from ISstream.
Definition at line 370 of file ensightReadFile.C.
|
overridevirtual |
Read integer as "%10d" or as binary (narrowed) int.
Reimplemented from ISstream.
Definition at line 377 of file ensightReadFile.C.
|
overridevirtual |
Read floating-point as "%12.5e" or as binary.
Reimplemented from ISstream.
Definition at line 384 of file ensightReadFile.C.
|
overridevirtual |
Read floating-point as "%12.5e" or as a binary (narrowed) float.
Reimplemented from ISstream.
Definition at line 391 of file ensightReadFile.C.
Foam::Istream & readKeyword | ( | string & | key | ) |
Read element keyword. Currently the same as read(string)
Definition at line 398 of file ensightReadFile.C.
References Foam::glTF::key(), and Foam::read().
void readPoints | ( | const label | nPoints, |
List< floatVector > & | points | ||
) |
Component-wise reading of points/coordinates. Read all x components, y components and z components.
Definition at line 406 of file ensightReadFile.C.
References nPoints, p, points, Foam::read(), and List< T >::resize_nocopy().
Referenced by ensightSurfaceReader::readGeometry().
void readPoints | ( | const label | nPoints, |
List< doubleVector > & | points | ||
) |
Component-wise reading of points/coordinates. Reads x components, y components and z components.
Definition at line 429 of file ensightReadFile.C.
References nPoints, p, points, Foam::read(), and List< T >::resize_nocopy().
|
inline |
Read and discard specified number of elements.
Definition at line 196 of file ensightReadFile.H.
References n, and ensightReadFile::read().
Referenced by ensightSurfaceReader::readGeometry(), and ensightSurfaceReader::readGeometryHeader().
|
inlinenoexcept |
Transient single-file: the position of the FILE_INDEX footer.
Definition at line 212 of file ensightReadFile.H.
|
inlinenoexcept |
Transient single-file: the number of time steps within the file.
Definition at line 221 of file ensightReadFile.H.
References UList< T >::size().
|
inlinenoexcept |
Transient single-file: the file-offsets for time steps within the file.
Definition at line 230 of file ensightReadFile.H.
bool seekTime | ( | const label | timeIndex | ) |
Transient single-file: seek to the file position corresponding to the given time index.
Definition at line 451 of file ensightReadFile.C.
References Foam::ensightOutput::debug, Foam::Info, Foam::nl, and timeIndex.
Referenced by ensightSurfaceReader::readField(), and ensightSurfaceReader::readGeometry().
|
inlinestatic |
Detect if the file is binary by testing for initial "(C|Fortran) Binary".
Definition at line 250 of file ensightReadFile.H.
References IOstreamOption::format().
|
static |
Debug switch.
Definition at line 95 of file ensightReadFile.H.