ospanstream Class Reference

Similar to std::ostringstream, but with an externally managed output buffer which makes it most similar to std::ospanstream (C++23) More...

Inheritance diagram for ospanstream:
Collaboration diagram for ospanstream:

Public Member Functions

 ospanstream ()
 Default construct - empty. More...
 
 ospanstream (char *buffer, size_t nbytes)
 Construct for character array and number of bytes. More...
 
std::streampos output_pos () const
 The current output position within the buffer (tellp) More...
 
std::streamsize capacity () const
 The put buffer capacity. More...
 
UList< char > list () const
 Span of the current output characters (is modifiable!) More...
 
auto view () const -> decltype(buffer_type::view())
 A string_view (c++17) or span view (older c++) of buffer contents. More...
 
std::string str () const
 For ostringstream compatibility, return the buffer as string copy. More...
 
void rewind ()
 Rewind the stream, clearing any old errors. More...
 
void reset (char *buffer, size_t nbytes)
 Reset the put buffer area. More...
 
void reset (std::string &s)
 Reset the put buffer area to use the data area from a string. More...
 
void debug_info (Ostream &os) const
 Some information about the output buffer position/capacity. More...
 

Additional Inherited Members

- Protected Member Functions inherited from memorybuf::out_base
virtual std::streamsize xsputn (const char *s, std::streamsize n)
 Put sequence of characters to a fixed region. More...
 
 out_base ()=default
 Default construct. More...
 
 out_base (char *s, std::streamsize n)
 Construct for character array (can be nullptr) and number of bytes. More...
 
void resetp (char *s, std::streamsize n)
 Reset put buffer with character data (can be nullptr) and count. More...
 
std::streamsize span_tellp () const
 The current buffer put position. More...
 
std::streamsize span_capacity () const
 The put buffer capacity. More...
 
char * data_bytes () const
 The span data (start of output characters) More...
 
std::streamsize size_bytes () const
 The span size (size of output buffer) More...
 
stdFoam::span< const char > view () const
 
void info (Ostream &os) const
 Some information about the output buffer position/capacity. More...
 
- Protected Member Functions inherited from memorybuf
virtual std::streampos seekoff (std::streamoff off, std::ios_base::seekdir way, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out)
 Set position pointer to relative position. More...
 
virtual std::streampos seekpos (std::streampos pos, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out)
 Set position pointer to absolute position. More...
 

Detailed Description

Similar to std::ostringstream, but with an externally managed output buffer which makes it most similar to std::ospanstream (C++23)

Definition at line 103 of file OSpanStream.H.

Constructor & Destructor Documentation

◆ ospanstream() [1/2]

ospanstream ( )
inline

Default construct - empty.

Definition at line 119 of file OSpanStream.H.

◆ ospanstream() [2/2]

ospanstream ( char *  buffer,
size_t  nbytes 
)
inline

Construct for character array and number of bytes.

Definition at line 128 of file OSpanStream.H.

Member Function Documentation

◆ output_pos()

std::streampos output_pos ( ) const
inline

The current output position within the buffer (tellp)

Definition at line 140 of file OSpanStream.H.

References memorybuf::out_base::span_tellp().

Referenced by ospanstream::debug_info(), OSpanStream::output_pos(), OSpanStream::size(), and OSpanStream::tellp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ capacity()

std::streamsize capacity ( ) const
inline

The put buffer capacity.

Definition at line 148 of file OSpanStream.H.

References memorybuf::out_base::span_capacity().

Referenced by OSpanStream::capacity(), and ospanstream::debug_info().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ list()

UList<char> list ( ) const
inline

Span of the current output characters (is modifiable!)

Definition at line 156 of file OSpanStream.H.

References memorybuf::out_base::data_bytes(), and memorybuf::out_base::size_bytes().

Referenced by OSpanStream::list().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ view()

auto view ( ) const -> decltype(buffer_type::view())
inline

A string_view (c++17) or span view (older c++) of buffer contents.

Definition at line 168 of file OSpanStream.H.

References memorybuf::out_base::view().

Referenced by OSpanStream::view().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ str()

std::string str ( ) const
inline

For ostringstream compatibility, return the buffer as string copy.

Use sparingly - it creates a full copy!!

Definition at line 178 of file OSpanStream.H.

References memorybuf::out_base::data_bytes(), and memorybuf::out_base::size_bytes().

Referenced by OSpanStream::str().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rewind()

void rewind ( )
inline

Rewind the stream, clearing any old errors.

Definition at line 190 of file OSpanStream.H.

References clear().

Referenced by OSpanStream::rewind().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reset() [1/2]

void reset ( char *  buffer,
size_t  nbytes 
)
inline

Reset the put buffer area.

Definition at line 199 of file OSpanStream.H.

References clear(), and memorybuf::out_base::resetp().

Referenced by OSpanStream::OSpanStream(), and OSpanStream::reset().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reset() [2/2]

void reset ( std::string &  s)
inline

Reset the put buffer area to use the data area from a string.

Definition at line 208 of file OSpanStream.H.

References clear(), memorybuf::out_base::resetp(), and s.

Here is the call graph for this function:

◆ debug_info()

void debug_info ( Ostream os) const
inline

Some information about the output buffer position/capacity.

Definition at line 218 of file OSpanStream.H.

References ospanstream::capacity(), os(), and ospanstream::output_pos().

Here is the call graph for this function:

The documentation for this class was generated from the following file: