A variant of IFstream with specialised handling for Ensight reading of strings, integers and floats (ASCII and BINARY). More...
#include <ensightReadFile.H>


Public Member Functions | |
| ensightReadFile (const fileName &pathname) | |
| Construct a geometry reader, auto-detecting the "C Binary" header for binary files and skipping past it. | |
| ensightReadFile (const fileName &pathname, IOstreamOption::streamFormat fmt) | |
| Construct from pathname, use the specified (ascii/binary) format. | |
| ~ensightReadFile ()=default | |
| Destructor. | |
| virtual Istream & | read (char *buf, std::streamsize count) override |
| Binary read. | |
| virtual Istream & | read (string &value) override |
| Read string as "%80s" or as binary. | |
| virtual Istream & | read (int32_t &value) override |
| Read integer as "%10d" or as binary (narrowed) int. | |
| virtual Istream & | read (int64_t &value) override |
| Read integer as "%10d" or as binary (narrowed) int. | |
| virtual Istream & | read (uint32_t &value) override |
| Not implemented. | |
| virtual Istream & | read (uint64_t &value) override |
| Not implemented. | |
| virtual Istream & | read (float &value) override |
| Read floating-point as "%12.5e" or as binary. | |
| virtual Istream & | read (double &value) override |
| Read floating-point as "%12.5e" or as a binary (narrowed) float. | |
| Istream & | readKeyword (string &key) |
| Read element keyword. Currently the same as read(string). | |
| void | readPoints (const label nPoints, List< floatVector > &points) |
| Component-wise reading of points/coordinates. Read all x components, y components and z components. | |
| void | readPoints (const label nPoints, List< doubleVector > &points) |
| Component-wise reading of points/coordinates. Reads x components, y components and z components. | |
| template<class Type> | |
| void | skip (label n=1) |
| Read and discard specified number of elements. | |
| int64_t | timeStepFooterBegin () const noexcept |
| Transient single-file: the position of the FILE_INDEX footer. | |
| label | nTimes () const noexcept |
| Transient single-file: the number of time steps within the file. | |
| const UList< int64_t > & | timeStepOffets () const noexcept |
| Transient single-file: the file-offsets for time steps within the file. | |
| bool | seekTime (const label timeIndex) |
| Transient single-file: seek to the file position corresponding to the given time index. | |
| virtual Istream & | read (token &)=0 |
| Inherit read from Istream. | |
| virtual Istream & | read (char &)=0 |
| Inherit read from Istream. | |
| virtual Istream & | read (word &)=0 |
| Inherit read from Istream. | |
| Public Member Functions inherited from IFstream | |
| ClassName ("IFstream") | |
| Declare type-name (with debug switch). | |
| IFstream (const fileName &pathname, IOstreamOption streamOpt=IOstreamOption()) | |
| Construct from pathname, default or specified stream options. | |
| IFstream (const fileName &pathname, IOstreamOption::streamFormat fmt) | |
| Construct from pathname and format. | |
| ~IFstream ()=default | |
| Destructor. | |
| 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. | |
| virtual std::istream & | stdStream () override |
| Access to underlying std::istream. | |
| virtual const std::istream & | stdStream () const override |
| Const access to underlying std::istream. | |
| virtual void | rewind () override |
| Rewind the stream so that it may be read again. | |
| virtual void | print (Ostream &os) const override |
| Print stream description. | |
| IFstream & | operator() () const |
| Return a non-const reference to const IFstream. | |
| ISstream & | get (char &c) |
| Get character(s). | |
| virtual const fileName & | name () const override |
| Read/write access to the name of the stream. | |
| virtual fileName & | name () |
| Read/write access to the name of the stream. | |
| Public Member Functions inherited from ISstream | |
| ISstream (std::istream &is, const string &streamName, IOstreamOption streamOpt=IOstreamOption()) | |
| Construct wrapper around std::istream, set stream status. | |
| ISstream (std::istream &is, const string &streamName, IOstreamOption::streamFormat fmt, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) | |
| Construct wrapper around std::istream, set stream status. | |
| 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. | |
| virtual | ~ISstream ()=default |
| Destructor. | |
| virtual std::ios_base::fmtflags | flags () const override |
| Return current stream flags. | |
| virtual std::ios_base::fmtflags | flags (std::ios_base::fmtflags f) override |
| Set stream flags, return old stream flags. | |
| void | syncState () |
| Set stream state to match that of the std::istream. | |
| **return False if stream exhausted before finding the comment end *bool | seekCommentEnd_Cstyle () |
| Discard until end of C-style comment '. | |
| 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. | |
| ISstream & | get (char &c) |
| Raw, low-level get character function. | |
| int | peek () |
| Raw, low-level peek function. | |
| ISstream & | getLine (std::string &str, char delim='\n') |
| Raw, low-level getline (until delimiter) into a string. | |
| std::streamsize | getLine (std::nullptr_t, char delim='\n') |
| Low-level discard until delimiter. | |
| ISstream & | putback (const char c) |
| Raw, low-level putback character function. | |
| 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. | |
| virtual bool | beginRawRead () override |
| Start of low-level raw binary read. | |
| virtual bool | endRawRead () override |
| End of low-level raw binary read. | |
| Public Member Functions inherited from Istream | |
| Istream (const Istream &)=default | |
| Copy construct. | |
| virtual | ~Istream ()=default |
| Destructor. | |
| Istream (IOstreamOption streamOpt=IOstreamOption()) | |
| Default construct (ASCII, uncompressed), construct with specified stream option. | |
| Istream (IOstreamOption::streamFormat fmt, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) | |
| Construct with format (uncompressed). | |
| const token & | peekBack () const noexcept |
| Examine putback token without removing it. | |
| void | putBackClear () |
| Drop the putback token. | |
| void | putBack (const token &tok) |
| Put back a token (copy). Only a single put back is permitted. | |
| void | putBack (token &&tok) |
| Put back a token (move). Only a single put back is permitted. | |
| bool | getBack (token &tok) |
| Retrieve the put-back token if there is one. | |
| bool | readBegin (const char *funcName) |
| Begin read of data chunk, starts with '('. | |
| bool | readEnd (const char *funcName) |
| End read of data chunk, ends with ')'. | |
| char | readBeginList (const char *funcName) |
| Begin read of list data, starts with '(' or '{'. | |
| char | readEndList (const char *funcName) |
| End read of list data, ends with ')' or '}'. | |
| Istream & | operator() () const |
| Return a non-const reference to const Istream. | |
| Public Member Functions inherited from IOstream | |
| IOstream (const IOstream &)=default | |
| Copy construct. | |
| virtual | ~IOstream ()=default |
| Destructor. | |
| IOstream (IOstreamOption streamOpt=IOstreamOption()) | |
| Default construct (ASCII, uncompressed), construct with specified stream option. | |
| IOstream (IOstreamOption::streamFormat fmt, IOstreamOption::versionNumber ver, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED) | |
| Construct with format, version (compression). | |
| fileName | relativeName () const |
| Return the name of the stream relative to the current case. | |
| virtual bool | check (const char *operation) const |
| Check IOstream status for given operation. | |
| bool | fatalCheck (const char *operation) const |
| Check IOstream status for given operation. | |
| bool | opened () const noexcept |
| True if stream has been opened. | |
| bool | closed () const noexcept |
| True if stream is closed. | |
| bool | good () const noexcept |
| True if next operation might succeed. | |
| bool | eof () const noexcept |
| True if end of input seen. | |
| bool | fail () const noexcept |
| True if next operation will fail. | |
| bool | bad () const noexcept |
| True if stream is corrupted. | |
| operator bool () const noexcept | |
| True if the stream has not failed. | |
| bool | operator! () const noexcept |
| True if the stream has failed. | |
| unsigned | labelByteSize () const noexcept |
| The sizeof (label) in bytes associated with the stream. | |
| unsigned | scalarByteSize () const noexcept |
| The sizeof (scalar) in bytes associated with the stream. | |
| void | setLabelByteSize (unsigned nbytes) noexcept |
| Set the sizeof (label) in bytes associated with the stream. | |
| void | setScalarByteSize (unsigned nbytes) noexcept |
| Set the sizeof (scalar) in bytes associated with the stream. | |
| template<class T, class = std::enable_if_t<std::is_integral_v<T>>> | |
| bool | checkLabelSize () const noexcept |
| Test if the label byte-size associated with the stream is the same as the given type. | |
| template<class T, class = std::enable_if_t<std::is_floating_point_v<T>>> | |
| bool | checkScalarSize () const noexcept |
| Test if the scalar byte-size associated with the stream is the same as the given type. | |
| bool | checkNativeSizes () const noexcept |
| Test if the label/scalar byte-size associated with the stream are the native label/scalar sizes. | |
| bool | fatalCheckNativeSizes (const char *operation) const |
| Assert that the label/scalar byte-size associated with the stream are the native label/scalar sizes. | |
| label | lineNumber () const noexcept |
| Const access to the current stream line number. | |
| label & | lineNumber () noexcept |
| Non-const access to the current stream line number. | |
| label | lineNumber (const label num) noexcept |
| Set the stream line number. | |
| void | setEof () noexcept |
| Set stream state as reached 'eof'. | |
| void | setFail () noexcept |
| Set stream state as 'failed'. | |
| void | setBad () noexcept |
| Set stream state to be 'bad'. | |
| std::ios_base::fmtflags | setf (std::ios_base::fmtflags f) |
| Set stream flag(s), return old stream flags. | |
| 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. | |
| std::ios_base::fmtflags | unsetf (std::ios_base::fmtflags f) |
| Unset stream flags, return old stream flags. | |
| void | print (Ostream &os, const int streamState) const |
| Print information about the stream state bits. | |
| InfoProxy< IOstream > | info () const noexcept |
| Return info proxy, used to print IOstream information to a stream. | |
| 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. | |
| constexpr | IOstreamOption (streamFormat fmt, compressionType comp, versionNumber ver) noexcept |
| Construct from components (format, compression, version). | |
| constexpr | IOstreamOption (streamFormat fmt, versionNumber ver, compressionType comp=compressionType::UNCOMPRESSED) noexcept |
| Construct from components (format, version, compression). | |
| IOstreamOption (const IOstreamOption &opt, streamFormat fmt) noexcept | |
| Copy construct with change of format. | |
| streamFormat | format () const noexcept |
| Get the current stream format. | |
| streamFormat | format (const streamFormat fmt) noexcept |
| Set the stream format. | |
| streamFormat | format (const word &formatName) |
| Set the stream format from string value. | |
| compressionType | compression () const noexcept |
| Get the stream compression. | |
| compressionType | compression (const compressionType comp) noexcept |
| Set the stream compression. | |
| compressionType | compression (const word &compName) |
| Set the stream compression from string value. | |
| versionNumber | version () const noexcept |
| Get the stream version. | |
| versionNumber | version (const versionNumber ver) noexcept |
| Set the stream version. | |
| versionNumber | version (const token &tok) |
| Set the stream version from token. | |
Static Public Member Functions | |
| static int64_t | getTimeStepFooter (IFstream &is, List< int64_t > &offsets) |
| Extract time step footer information (if any). | |
| static IOstreamOption::streamFormat | detectBinaryHeader (const fileName &pathname) |
| Detect if the file is binary by testing for initial "(C|Fortran) Binary". | |
| 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. | |
| static DynamicList< char > | readContents (IFstream &ifs) |
| Get file contents from IFstream (assumed to be rewound). | |
| Static Public Member Functions inherited from IOstream | |
| static unsigned int | defaultPrecision () noexcept |
| Return the default precision. | |
| static unsigned int | defaultPrecision (unsigned int prec) noexcept |
| Reset the default precision. | |
| static unsigned int | minPrecision (unsigned int prec) noexcept |
| Set the minimum default precision. | |
| 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). | |
| static floatFormat | floatFormatEnum (const word &key, const dictionary &dict, const floatFormat deflt=floatFormat::general) |
| getOrDefault floatFormat from dictionary, warn only on bad enumeration. | |
| static streamFormat | formatEnum (const word &fmtName, const streamFormat deflt=streamFormat::ASCII) |
| Lookup streamFormat enum corresponding to the string (ascii | binary). | |
| static streamFormat | formatEnum (const word &key, const dictionary &dict, const streamFormat deflt=streamFormat::ASCII) |
| getOrDefault streamFormat from dictionary, warn only on bad enumeration. | |
| static compressionType | compressionEnum (const word &compName, const compressionType deflt=compressionType::UNCOMPRESSED) |
| The compression enum corresponding to the string. | |
| static compressionType | compressionEnum (const word &key, const dictionary &dict, const compressionType deflt=compressionType::UNCOMPRESSED) |
| getOrDefault compressionType from dictionary, warn only on bad enumeration. | |
Static Public Attributes | |
| static int | debug |
| Debug switch. | |
| Static Public Attributes inherited from IOstream | |
| static unsigned int | precision_ |
| Default precision. | |
| Static Public Attributes inherited from IOstreamOption | |
| static const Enum< floatFormat > | floatFormatNames |
| Names for float formats (general, fixed, scientific). | |
| static const Enum< streamFormat > | formatNames |
| Stream format names (ascii, binary). | |
| static const versionNumber | currentVersion |
| The current version number (2.0). | |
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 , COHERENT , UNKNOWN_FORMAT } |
| Data format (ascii | binary | coherent). 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 class | 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. | |
| Protected Member Functions inherited from IOstream | |
| void | setOpened () noexcept |
| Set stream opened. | |
| void | setClosed () noexcept |
| Set stream closed. | |
| void | setState (std::ios_base::iostate state) noexcept |
| Set stream state. | |
| void | setGood () noexcept |
| Set stream state to be good. | |
| Protected Attributes inherited from IOstream | |
| std::ios_base::iostate | ioState_ |
| Mirror of internal stream io state. | |
| streamAccess | openClosed_ |
| The stream open/closed state. | |
| unsigned char | sizeofLabel_ |
| The sizeof (label), possibly read from the header. | |
| unsigned char | sizeofScalar_ |
| The sizeof (scalar), possibly read from the header. | |
| label | lineNumber_ |
| The file line. | |
| Static Protected Attributes inherited from IOstream | |
| static fileName | staticName_ |
| Name for any generic stream - normally treat as readonly. | |
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 321 of file ensightReadFile.C.
References IOstreamOption::BINARY, and IFstream::IFstream().

| ensightReadFile | ( | const fileName & | pathname, |
| IOstreamOption::streamFormat | fmt ) |
Construct from pathname, use the specified (ascii/binary) format.
Definition at line 333 of file ensightReadFile.C.
References IFstream::IFstream().

|
default |
Destructor.
References IFstream::IFstream(), nPoints, points, and Istream::read().

Extract time step footer information (if any).
| [out] | offsets | File offsets for each time step (if any) |
Definition at line 117 of file ensightReadFile.C.
References IOstreamOption::ASCII, IOstreamOption::BINARY, List< T >::clear(), IOstreamOption::format(), Foam::getPrimitive(), IFstream::IFstream(), 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 349 of file ensightReadFile.C.
References IFstream::stdStream(), and ISstream::syncState().
Referenced by ensightSurfaceReader::readGeometry(), ensightSurfaceReader::readGeometryHeader(), and 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.
References Foam::getPrimitive().

|
overridevirtual |
Read integer as "%10d" or as binary (narrowed) int.
Reimplemented from ISstream.
Definition at line 384 of file ensightReadFile.C.
References Foam::getPrimitive().

|
overridevirtual |
Not implemented.
Reimplemented from ISstream.
Definition at line 391 of file ensightReadFile.C.
References NotImplemented.
|
overridevirtual |
Not implemented.
Reimplemented from ISstream.
Definition at line 398 of file ensightReadFile.C.
References NotImplemented.
|
overridevirtual |
Read floating-point as "%12.5e" or as binary.
Reimplemented from ISstream.
Definition at line 405 of file ensightReadFile.C.
References Foam::getPrimitive().

|
overridevirtual |
Read floating-point as "%12.5e" or as a binary (narrowed) float.
Reimplemented from ISstream.
Definition at line 412 of file ensightReadFile.C.
References Foam::getPrimitive().

| Foam::Istream & readKeyword | ( | string & | key | ) |
Read element keyword. Currently the same as read(string).
Definition at line 419 of file ensightReadFile.C.
References 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 426 of file ensightReadFile.C.
References nPoints, p, points, and Foam::read().
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 449 of file ensightReadFile.C.
References nPoints, p, points, and Foam::read().

|
inline |
Read and discard specified number of elements.
Definition at line 211 of file ensightReadFile.H.
Referenced by ensightSurfaceReader::readGeometry(), and ensightSurfaceReader::readGeometryHeader().


|
inlinenoexcept |
Transient single-file: the position of the FILE_INDEX footer.
Definition at line 227 of file ensightReadFile.H.
References Foam::noexcept.
|
inlinenoexcept |
Transient single-file: the number of time steps within the file.
Definition at line 236 of file ensightReadFile.H.
References Foam::noexcept.
Referenced by seekTime().

|
inlinenoexcept |
Transient single-file: the file-offsets for time steps within the file.
Definition at line 245 of file ensightReadFile.H.
References Foam::noexcept.
| bool seekTime | ( | const label | timeIndex | ) |
Transient single-file: seek to the file position corresponding to the given time index.
Definition at line 472 of file ensightReadFile.C.
References debug, Foam::Info, Foam::nl, nTimes(), IFstream::stdStream(), ISstream::syncState(), and timeIndex.
Referenced by ensightSurfaceReader::readGeometry().


|
inlinestatic |
Detect if the file is binary by testing for initial "(C|Fortran) Binary".
Definition at line 265 of file ensightReadFile.H.
References detectBinaryHeader(), and IOstreamOption::format().
Referenced by detectBinaryHeader().


|
static |