A wrapped std::ifstream
with possible compression handling (igzstream) that behaves much like a std::unique_ptr
.
More...
Public Member Functions | |
ifstreamPointer () noexcept=default | |
Default construct (empty) More... | |
ifstreamPointer (const ifstreamPointer &)=delete | |
No copy construct. More... | |
ifstreamPointer (ifstreamPointer &&)=default | |
Move construct. More... | |
void | operator= (const ifstreamPointer &)=delete |
No copy assignment. More... | |
ifstreamPointer & | operator= (ifstreamPointer &&)=default |
Move assignment. More... | |
~ifstreamPointer ()=default | |
Destructor. More... | |
ifstreamPointer (const fileName &pathname) | |
Construct from pathname. More... | |
ifstreamPointer (const fileName &pathname, IOstreamOption streamOpt) | |
Construct from pathname, option. More... | |
operator bool () const noexcept | |
True if it holds a valid pointer. More... | |
std::istream * | get () noexcept |
The stream pointer (ifstream or igzstream) More... | |
const std::istream * | get () const noexcept |
The stream pointer (ifstream or igzstream) More... | |
IOstreamOption::compressionType | whichCompression () const |
Which compression type? More... | |
void | open (const fileName &pathname, IOstreamOption streamOpt=IOstreamOption()) |
Attempts to open the specified file for reading. More... | |
std::istream * | release () noexcept |
Return managed pointer and release ownership. More... | |
void | reset (std::istream *ptr) noexcept |
Replace the managed pointer. More... | |
std::istream & | operator* () |
Reference to the stream (no nullptr checking) More... | |
const std::istream & | operator* () const |
Const-reference to the stream (no nullptr checking) More... | |
std::istream * | operator-> () noexcept |
Pointer dereference. More... | |
const std::istream * | operator-> () const noexcept |
Pointer dereference. More... | |
Static Public Member Functions | |
static bool | supports_gz () noexcept |
True if compiled with libz support. More... | |
Protected Member Functions | |
void | reopen_gz (const std::string &pathname) |
Special 'rewind' method for compressed stream. More... | |
A wrapped std::ifstream
with possible compression handling (igzstream) that behaves much like a std::unique_ptr
.
operator bool
to avoid inheritance ambiguity with std::ios::operator bool
.Definition at line 70 of file fstreamPointer.H.
|
defaultnoexcept |
Default construct (empty)
|
delete |
No copy construct.
|
default |
Move construct.
|
default |
Destructor.
|
explicit |
Construct from pathname.
Attempts to read the specified file. If that fails, try as a compressed file (.gz ending).
pathname | The file name to open for reading |
Definition at line 71 of file fstreamPointers.C.
ifstreamPointer | ( | const fileName & | pathname, |
IOstreamOption | streamOpt | ||
) |
Construct from pathname, option.
Attempts to read the specified file. If that fails, try as a compressed file (.gz ending).
pathname | The file name to open for reading |
streamOpt | Currently unused |
Definition at line 59 of file fstreamPointers.C.
|
protected |
Special 'rewind' method for compressed stream.
Definition at line 359 of file fstreamPointers.C.
Referenced by IFstream::rewind().
|
delete |
No copy assignment.
|
default |
Move assignment.
|
staticnoexcept |
True if compiled with libz support.
Definition at line 36 of file fstreamPointers.C.
|
inlineexplicitnoexcept |
True if it holds a valid pointer.
Definition at line 164 of file fstreamPointer.H.
|
inlinenoexcept |
The stream pointer (ifstream or igzstream)
Definition at line 169 of file fstreamPointer.H.
Referenced by IFstream::fileSize(), IFstream::IFstream(), IFstream::rewind(), and IFstream::stdStream().
|
inlinenoexcept |
The stream pointer (ifstream or igzstream)
Definition at line 174 of file fstreamPointer.H.
Foam::IOstreamOption::compressionType whichCompression | ( | ) | const |
Which compression type?
Definition at line 496 of file fstreamPointers.C.
Referenced by STLCore::detectBinaryHeader(), IFstream::fileSize(), IFstream::IFstream(), STLCore::readBinaryHeader(), and IFstream::rewind().
void open | ( | const fileName & | pathname, |
IOstreamOption | streamOpt = IOstreamOption() |
||
) |
Attempts to open the specified file for reading.
If that fails, try as a compressed file (.gz ending).
pathname | The file name to open for reading |
streamOpt | Currently unused |
Definition at line 310 of file fstreamPointers.C.
References Foam::endl(), Foam::exit(), Foam::FatalError, Foam::isFile(), and Foam::nl.
|
inlinenoexcept |
Return managed pointer and release ownership.
Definition at line 203 of file fstreamPointer.H.
Referenced by STLCore::readBinaryHeader().
|
inlinenoexcept |
Replace the managed pointer.
Definition at line 208 of file fstreamPointer.H.
|
inline |
Reference to the stream (no nullptr checking)
Definition at line 216 of file fstreamPointer.H.
|
inline |
Const-reference to the stream (no nullptr checking)
Definition at line 221 of file fstreamPointer.H.
|
inlinenoexcept |
Pointer dereference.
Definition at line 226 of file fstreamPointer.H.
|
inlinenoexcept |
Pointer dereference.
Definition at line 231 of file fstreamPointer.H.