Similar to IStringStream but using an externally managed buffer for its input. This allows the input buffer to be filled (and refilled) from various sources. More...
Public Member Functions | |
ISpanStream (IOstreamOption streamOpt=IOstreamOption()) | |
Default construct (empty), optionally with specified stream option. More... | |
ISpanStream (const char *buffer, size_t nbytes, IOstreamOption streamOpt=IOstreamOption()) | |
Construct using specified buffer and number of bytes. More... | |
ISpanStream (const std::string &buffer, IOstreamOption streamOpt=IOstreamOption()) | |
Use data area from string content. More... | |
ISpanStream (const ::Foam::UList< char > &buffer, IOstreamOption streamOpt=IOstreamOption()) | |
Construct using data area from a List and its inherent storage size. More... | |
ISpanStream (stdFoam::span< const char > s, IOstreamOption streamOpt=IOstreamOption()) | |
Construct (shallow copy) from span character content. More... | |
ISpanStream (stdFoam::span< char > s, IOstreamOption streamOpt=IOstreamOption()) | |
Construct (shallow copy) from span character content. More... | |
std::streampos | tellg () const |
Position of the get buffer. More... | |
std::streampos | input_pos () const |
The current get position within the buffer (tellg) More... | |
label | size () const |
The input list size. Same as capacity() More... | |
std::streamsize | capacity () const |
The get buffer capacity. More... | |
std::streamsize | remaining () const |
The number of characters remaining in the get area. Same as (capacity() - input_pos()) More... | |
UList< char > | list () const |
Span of the current input characters (is modifiable!) More... | |
auto | view () const -> decltype(stream_.view()) |
A string_view (c++17) or span view (older c++) of buffer contents. More... | |
auto | str () const -> decltype(stream_.str()) |
For IStringStream compatibility, return the buffer as string copy. More... | |
void | reset (const char *buffer, size_t nbytes) |
Reset input area, position to buffer start and clear errors. More... | |
void | reset (const std::string &s) |
Reset input area to use data from a string. More... | |
void | reset (stdFoam::span< char > s) |
Reset input area to use data from span character content. More... | |
void | reset (stdFoam::span< const char > s) |
Reset input area to use data from span character content. More... | |
virtual void | rewind () override |
Rewind the stream, clearing any old errors. More... | |
virtual void | print (Ostream &os) const override |
Print stream description to Ostream. More... | |
Istream & | operator() () const |
A non-const reference to const Istream. 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 const std::istream & | stdStream () const |
Const access to underlying std::istream. More... | |
virtual std::istream & | stdStream () |
Access to underlying std::istream. 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 & | read (string &str) override |
Read a string (including enclosing double-quotes). More... | |
virtual Istream & | read (label &val) override |
Read a label. More... | |
virtual Istream & | read (float &val) override |
Read a float. More... | |
virtual Istream & | read (double &val) override |
Read a double. More... | |
virtual Istream & | read (char *data, std::streamsize count) override |
Read binary block (with any possible block delimiters). Reading into a null pointer behaves like a forward seek of count characters. 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... | |
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... | |
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 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... | |
Protected Member Functions inherited from StreamAllocator< Foam::ispanstream > | |
StreamAllocator ()=default | |
Default construct (empty) 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 StreamAllocator< Foam::ispanstream > | |
Foam::ispanstream | stream_ |
The std::stream. 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... | |
Similar to IStringStream but using an externally managed buffer for its input. This allows the input buffer to be filled (and refilled) from various sources.
Note that this stream will normally be used as a "one-shot" reader. Caution must be exercised that the referenced buffer remains valid and without any intermediate resizing for the duration of the stream's use.
An example of possible use:
Definition at line 251 of file ISpanStream.H.
|
inlineexplicit |
Default construct (empty), optionally with specified stream option.
Definition at line 268 of file ISpanStream.H.
|
inline |
Construct using specified buffer and number of bytes.
Definition at line 280 of file ISpanStream.H.
References ISpanStream::reset().
|
inlineexplicit |
Use data area from string content.
Definition at line 295 of file ISpanStream.H.
References ISpanStream::reset().
|
inlineexplicit |
Construct using data area from a List and its inherent storage size.
Uses addressed size, thus no special treatment for a DynamicList
Definition at line 311 of file ISpanStream.H.
|
inlineexplicit |
Construct (shallow copy) from span character content.
Definition at line 337 of file ISpanStream.H.
|
inlineexplicit |
Construct (shallow copy) from span character content.
Definition at line 349 of file ISpanStream.H.
|
inline |
Position of the get buffer.
Definition at line 363 of file ISpanStream.H.
References ispanstream::input_pos(), and StreamAllocator< Foam::ispanstream >::stream_.
|
inline |
The current get position within the buffer (tellg)
Definition at line 368 of file ISpanStream.H.
References ispanstream::input_pos(), and StreamAllocator< Foam::ispanstream >::stream_.
|
inline |
The input list size. Same as capacity()
Definition at line 373 of file ISpanStream.H.
References ispanstream::capacity(), and StreamAllocator< Foam::ispanstream >::stream_.
|
inline |
The get buffer capacity.
Definition at line 378 of file ISpanStream.H.
References ispanstream::capacity(), and StreamAllocator< Foam::ispanstream >::stream_.
|
inline |
The number of characters remaining in the get area. Same as (capacity() - input_pos())
Definition at line 384 of file ISpanStream.H.
References ispanstream::remaining(), and StreamAllocator< Foam::ispanstream >::stream_.
|
inline |
Span of the current input characters (is modifiable!)
Definition at line 389 of file ISpanStream.H.
References ispanstream::list(), and StreamAllocator< Foam::ispanstream >::stream_.
|
inline |
A string_view (c++17) or span view (older c++) of buffer contents.
Definition at line 394 of file ISpanStream.H.
References StreamAllocator< Foam::ispanstream >::stream_, and ispanstream::view().
|
inline |
For IStringStream compatibility, return the buffer as string copy.
Use sparingly - it creates a full copy!!
Definition at line 404 of file ISpanStream.H.
References ispanstream::str(), and StreamAllocator< Foam::ispanstream >::stream_.
|
inline |
Reset input area, position to buffer start and clear errors.
Definition at line 412 of file ISpanStream.H.
References ispanstream::reset(), StreamAllocator< Foam::ispanstream >::stream_, and ISstream::syncState().
Referenced by Foam::extractTimeset(), GAMGSolver::GAMGSolver(), ISpanStream::ISpanStream(), blockMesh::patchDicts(), and simpleObjectRegistry::setValues().
|
inline |
Reset input area to use data from a string.
Definition at line 421 of file ISpanStream.H.
References ispanstream::reset(), s, StreamAllocator< Foam::ispanstream >::stream_, and ISstream::syncState().
|
inline |
Reset input area to use data from span character content.
Definition at line 441 of file ISpanStream.H.
References ispanstream::reset(), s, StreamAllocator< Foam::ispanstream >::stream_, and ISstream::syncState().
|
inline |
Reset input area to use data from span character content.
Definition at line 450 of file ISpanStream.H.
References ispanstream::reset(), s, StreamAllocator< Foam::ispanstream >::stream_, and ISstream::syncState().
|
inlineoverridevirtual |
Rewind the stream, clearing any old errors.
Reimplemented from ISstream.
Definition at line 459 of file ISpanStream.H.
References ispanstream::rewind(), StreamAllocator< Foam::ispanstream >::stream_, and ISstream::syncState().
Referenced by simpleObjectRegistry::setValues().
|
overridevirtual |
Print stream description to Ostream.
Reimplemented from ISstream.
Definition at line 26 of file SpanStreams.C.
References ispanstream::debug_info(), Foam::endl(), os(), and StreamAllocator< Foam::ispanstream >::stream_.
|
inline |
A non-const reference to const Istream.
Needed for read-constructors where the stream argument is temporary
Definition at line 478 of file ISpanStream.H.