Public Member Functions | List of all members
UIListStream Class Reference

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...

Inheritance diagram for UIListStream:
Inheritance graph
[legend]
Collaboration diagram for UIListStream:
Collaboration graph
[legend]

Public Member Functions

 UIListStream (const char *buffer, size_t nbytes, IOstreamOption streamOpt=IOstreamOption())
 
 UIListStream (const UList< char > &buffer, size_t nbytes, IOstreamOption streamOpt=IOstreamOption())
 
 UIListStream (const UList< char > &buffer, IOstreamOption streamOpt=IOstreamOption())
 
std::streampos pos () const
 
virtual void rewind ()
 
virtual void print (Ostream &os) const
 
Istreamoperator() () const
 
- Public Member Functions inherited from UIListStreamAllocator
const UList< char > list () const
 
UList< char > list ()
 
label size () const
 
std::streampos tellg () const
 
void rewind ()
 
- Public Member Functions inherited from ISstream
 ISstream (std::istream &is, const string &streamName, IOstreamOption streamOpt=IOstreamOption())
 
 ISstream (std::istream &is, const string &streamName, IOstreamOption::streamFormat fmt, IOstreamOption::versionNumber ver=IOstreamOption::currentVersion, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED)
 
virtual ~ISstream ()=default
 
virtual const fileNamename () const
 
virtual fileNamename ()
 
virtual ios_base::fmtflags flags () const
 
bool seekCommentEnd_Cstyle ()
 
bool continueReadUntilRightBrace (std::string &str, const bool stripComments=true)
 
ISstreamget (char &c)
 
int peek ()
 
ISstreamgetLine (std::string &str, char delim='\n')
 
std::streamsize getLine (std::nullptr_t, char delim='\n')
 
ISstreamputback (const char c)
 
virtual Istreamread (token &t)
 
virtual Istreamread (char &c)
 
virtual Istreamread (word &str)
 
virtual Istreamread (string &str)
 
virtual Istreamread (label &val)
 
virtual Istreamread (floatScalar &val)
 
virtual Istreamread (doubleScalar &val)
 
virtual Istreamread (char *buf, std::streamsize count)
 
virtual IstreamreadRaw (char *data, std::streamsize count)
 
virtual bool beginRawRead ()
 
virtual bool endRawRead ()
 
virtual ios_base::fmtflags flags (const ios_base::fmtflags flags)
 
virtual std::istream & stdStream ()
 
virtual const std::istream & stdStream () const
 
- Public Member Functions inherited from Istream
 Istream (const Istream &)=default
 
virtual ~Istream ()=default
 
 Istream (IOstreamOption streamOpt=IOstreamOption())
 
 Istream (IOstreamOption::streamFormat fmt, IOstreamOption::versionNumber ver=IOstreamOption::currentVersion, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED)
 
const tokenpeekBack () const noexcept
 
bool peekBack (token &tok)
 
void putBack (const token &tok)
 
bool getBack (token &tok)
 
bool readBegin (const char *funcName)
 
bool readEnd (const char *funcName)
 
char readBeginList (const char *funcName)
 
char readEndList (const char *funcName)
 
Istreamoperator() () const
 
- Public Member Functions inherited from IOstream
 IOstream (const IOstream &)=default
 
virtual ~IOstream ()=default
 
 IOstream (IOstreamOption streamOpt=IOstreamOption())
 
 IOstream (IOstreamOption::streamFormat fmt, IOstreamOption::versionNumber ver, IOstreamOption::compressionType cmp=IOstreamOption::UNCOMPRESSED)
 
fileName relativeName () const
 
virtual bool check (const char *operation) const
 
bool fatalCheck (const char *operation) const
 
bool opened () const noexcept
 
bool closed () const noexcept
 
bool good () const noexcept
 
bool eof () const noexcept
 
bool fail () const noexcept
 
bool bad () const noexcept
 
 operator bool () const noexcept
 
bool operator! () const noexcept
 
unsigned labelByteSize () const noexcept
 
unsigned scalarByteSize () const noexcept
 
void setLabelByteSize (unsigned nbytes) noexcept
 
void setScalarByteSize (unsigned nbytes) noexcept
 
template<class T = label>
std::enable_if< std::is_integral< T >::value, bool >::type checkLabelSize () const noexcept
 
template<class T = scalar>
std::enable_if< std::is_floating_point< T >::value, bool >::type checkScalarSize () const noexcept
 
label lineNumber () const noexcept
 
label & lineNumber () noexcept
 
label lineNumber (const label num) noexcept
 
void setEof () noexcept
 
void setFail () noexcept
 
void setBad ()
 
ios_base::fmtflags setf (const ios_base::fmtflags f)
 
ios_base::fmtflags setf (const ios_base::fmtflags f, const ios_base::fmtflags mask)
 
void unsetf (const ios_base::fmtflags f)
 
void print (Ostream &os, const int streamState) const
 
InfoProxy< IOstreaminfo () const
 
- Public Member Functions inherited from IOstreamOption
constexpr IOstreamOption (streamFormat fmt=streamFormat::ASCII, compressionType comp=compressionType::UNCOMPRESSED) noexcept
 
constexpr IOstreamOption (streamFormat fmt, compressionType comp, versionNumber ver) noexcept
 
constexpr IOstreamOption (streamFormat fmt, versionNumber ver, compressionType comp=compressionType::UNCOMPRESSED) noexcept
 
 IOstreamOption (const IOstreamOption &opt, streamFormat fmt) noexcept
 
streamFormat format () const noexcept
 
streamFormat format (const streamFormat fmt) noexcept
 
streamFormat format (const word &formatName)
 
compressionType compression () const noexcept
 
compressionType compression (const compressionType comp) noexcept
 
compressionType compression (const word &compName)
 
versionNumber version () const noexcept
 
versionNumber version (const versionNumber ver) noexcept
 
versionNumber version (const token &tok)
 

Additional Inherited Members

- Public Types inherited from IOstream
enum  streamAccess : char { CLOSED = 0, OPENED }
 
- Public Types inherited from IOstreamOption
enum  streamFormat : char { ASCII = 0, BINARY }
 
enum  compressionType : char { UNCOMPRESSED = 0, COMPRESSED }
 
- Static Public Member Functions inherited from IOstream
static unsigned int defaultPrecision () noexcept
 
static unsigned int defaultPrecision (unsigned int prec) noexcept
 
- Static Public Member Functions inherited from IOstreamOption
static streamFormat formatEnum (const word &formatName, const streamFormat deflt=streamFormat::ASCII)
 
static streamFormat formatEnum (const word &key, const dictionary &dict, const streamFormat deflt=streamFormat::ASCII)
 
static compressionType compressionEnum (const word &compName, const compressionType deflt=compressionType::UNCOMPRESSED)
 
static compressionType compressionEnum (const word &key, const dictionary &dict, const compressionType deflt=compressionType::UNCOMPRESSED)
 
- Static Public Attributes inherited from IOstream
static unsigned int precision_
 
- Static Public Attributes inherited from IOstreamOption
static const Enum< streamFormatformatNames
 
static const versionNumber currentVersion
 
- Protected Types inherited from UIListStreamAllocator
typedef std::istream stream_type
 
- Protected Member Functions inherited from UIListStreamAllocator
 UIListStreamAllocator (char *buffer, size_t nbytes)
 
void reset (char *buffer, size_t nbytes)
 
void printBufInfo (Ostream &os) const
 
- Protected Member Functions inherited from Istream
bool hasPutback () const noexcept
 
- Protected Member Functions inherited from IOstream
void setOpened () noexcept
 
void setClosed () noexcept
 
void setState (std::ios_base::iostate state) noexcept
 
void setGood () noexcept
 
- Protected Attributes inherited from UIListStreamAllocator
memorybuf::in buf_
 
stream_type stream_
 
- Protected Attributes inherited from IOstream
std::ios_base::iostate ioState_
 
streamAccess openClosed_
 
unsigned char sizeofLabel_
 
unsigned char sizeofScalar_
 
label lineNumber_
 
- Static Protected Attributes inherited from IOstream
static fileName staticName_
 

Detailed Description

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:

DynamicList<char> buffer(4096); // allocate some large buffer
nread = something.read(buffer.data(),1024); // fill with content
buffer.resize(nread); // content size
// Construct dictionary, or something else
UIListStream is(buffer)
dictionary dict1(is);
// Sometime later
nread = something.read(buffer.data(),2048); // fill with content
buffer.resize(nread); // content size
// Without intermediate variable
dictionary dict2(UIListStream(buffer)());
See also
Foam::IListStream Foam::OListStream Foam::UOListStream

Definition at line 200 of file UIListStream.H.

Constructor & Destructor Documentation

◆ UIListStream() [1/3]

UIListStream ( const char *  buffer,
size_t  nbytes,
IOstreamOption  streamOpt = IOstreamOption() 
)
inline

Definition at line 213 of file UIListStream.H.

◆ UIListStream() [2/3]

UIListStream ( const UList< char > &  buffer,
size_t  nbytes,
IOstreamOption  streamOpt = IOstreamOption() 
)
inline

Definition at line 225 of file UIListStream.H.

◆ UIListStream() [3/3]

UIListStream ( const UList< char > &  buffer,
IOstreamOption  streamOpt = IOstreamOption() 
)
inlineexplicit

Definition at line 237 of file UIListStream.H.

Member Function Documentation

◆ pos()

std::streampos pos ( ) const
inline

Definition at line 249 of file UIListStream.H.

References UIListStreamAllocator::tellg().

Here is the call graph for this function:

◆ rewind()

virtual void rewind ( )
inlinevirtual

Reimplemented from ISstream.

Definition at line 255 of file UIListStream.H.

References UIListStreamAllocator::rewind(), and IOstream::setGood().

Here is the call graph for this function:

◆ print()

void print ( Ostream os) const
virtual

Reimplemented from ISstream.

Definition at line 35 of file ListStream.C.

References Foam::endl(), and os().

Here is the call graph for this function:

◆ operator()()

Istream& operator() ( ) const
inline

Definition at line 269 of file UIListStream.H.


The documentation for this class was generated from the following files:
Foam::UIListStream::UIListStream
UIListStream(const char *buffer, size_t nbytes, IOstreamOption streamOpt=IOstreamOption())
Definition: UIListStream.H:213