An output streambuf for memory access. More...


Public Member Functions | |
| out_dynamic () | |
| Default construct - no initial reserved number of bytes. More... | |
| out_dynamic (size_t nbytes) | |
| Default construct with initial reserved number of bytes. More... | |
| out_dynamic (::Foam::List< char > &&buffer) | |
| Move construct from List. More... | |
| template<int SizeMin> | |
| out_dynamic (::Foam::DynamicList< char, SizeMin > &&buffer) | |
| Move construct from DynamicList (uses entire capacity) More... | |
| void | sync_pbuffer () |
| Sync put buffer pointers to agree with list dimensions. More... | |
| void | reserve (const std::streamsize len) |
| Increase capacity (if needed) and adjust buffer pointers. Applies a min-size and capacity doubling. More... | |
| void | reserve_exact (const std::streamsize len) |
| Increase capacity for at least this size. Does not apply min-size or capacity doubling etc. More... | |
| void | extend (std::streamsize count) |
Increase (reserve) space for another count entries. More... | |
| void | extend_exact (std::streamsize count) |
Increase (reserve) space for another count entries. More... | |
| void | clearStorage () |
| Clear storage. More... | |
| void | shrink_to_fit () |
| Shrink storage to addressed storage. More... | |
| void | swap (List< char > &other) |
| Exchange buffer content and parameter contents, reset positions. More... | |
| template<int SizeMin> | |
| void | swap (DynamicList< char, SizeMin > &other) |
| Exchange buffer content and parameter contents, reset positions. More... | |
| DynamicList< char > | release () |
| Reset buffer and return contents as a DynamicList. The list size corresponds to the region of output. More... | |
| void | shrink () |
| Same as shrink_to_fit() More... | |
Public Member Functions inherited from memorybuf::out_base | |
| 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... | |
| bool | in_range (std::streampos pos) const |
| True if position is within the current output range. More... | |
| auto | view () const |
| A string view of the current output region. More... | |
| auto | view (size_t pos, size_t len) const |
| A sub-slice string view of the current output region. More... | |
| void | pop_back (int n=1) |
| Decrease the put area by 1 or more elements. More... | |
| void | overwrite (std::streampos pos, const char *data, std::streamsize count) |
| Overwrite a sub-slice with character content. More... | |
| void | overwrite (std::streampos pos, char c) |
| Overwrite a single character. More... | |
| void | info (Ostream &os) const |
| Some information about the output buffer position/capacity. More... | |
Static Public Member Functions | |
| static constexpr label | min_size () noexcept |
| Normal lower capacity limit. More... | |
| static constexpr label | max_size () noexcept |
| The largest storage size. More... | |
| static constexpr label | max_size_2 () noexcept |
| The 1/2 of max_size() - rounded to power-of-two. More... | |
| static constexpr label | max_size_4 () noexcept |
| The 1/4 of max_size() - rounded to power-of-two. More... | |
Protected Member Functions | |
| virtual int | overflow (int_type c=traits_type::eof()) |
| Handle overflow. More... | |
| virtual std::streamsize | xsputn (const char *s, std::streamsize n) |
| Put sequence of characters. 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... | |
An output streambuf for memory access.
Definition at line 608 of file memoryStreamBuffer.H.
|
inline |
Default construct - no initial reserved number of bytes.
Definition at line 667 of file memoryStreamBuffer.H.
References memorybuf::out_dynamic::sync_pbuffer().

|
inline |
Default construct with initial reserved number of bytes.
Definition at line 675 of file memoryStreamBuffer.H.
References memorybuf::out_dynamic::sync_pbuffer().

|
inline |
Move construct from List.
Definition at line 685 of file memoryStreamBuffer.H.
References memorybuf::out_dynamic::sync_pbuffer().

|
inline |
Move construct from DynamicList (uses entire capacity)
Definition at line 696 of file memoryStreamBuffer.H.
References memorybuf::out_dynamic::sync_pbuffer(), and List< T >::transfer().

|
inlineprotectedvirtual |
Handle overflow.
Definition at line 628 of file memoryStreamBuffer.H.
References Foam::constant::universal::c, and memorybuf::out_dynamic::extend().

|
inlineprotectedvirtual |
Put sequence of characters.
Reimplemented from memorybuf::out_base.
Definition at line 644 of file memoryStreamBuffer.H.
References Foam::BitOps::count(), memorybuf::out_dynamic::extend(), n, and s.

|
inlinestaticnoexcept |
Normal lower capacity limit.
512 bytes is a bit arbitrary but consistent with std::stringstream
Definition at line 711 of file memoryStreamBuffer.H.
Referenced by memorybuf::out_dynamic::reserve().

|
inlinestaticnoexcept |
The largest storage size.
Definition at line 716 of file memoryStreamBuffer.H.
References UList< T >::max_size().
Referenced by memorybuf::out_dynamic::max_size_2(), and memorybuf::out_dynamic::reserve().


|
inlinestaticnoexcept |
The 1/2 of max_size() - rounded to power-of-two.
Definition at line 724 of file memoryStreamBuffer.H.
References memorybuf::out_dynamic::max_size().
Referenced by memorybuf::out_dynamic::max_size_4(), and memorybuf::out_dynamic::reserve().


|
inlinestaticnoexcept |
The 1/4 of max_size() - rounded to power-of-two.
Definition at line 732 of file memoryStreamBuffer.H.
References memorybuf::out_dynamic::max_size_2().
Referenced by memorybuf::out_dynamic::reserve().


|
inline |
Sync put buffer pointers to agree with list dimensions.
Sets put pointer to the begin (rewind).
Definition at line 742 of file memoryStreamBuffer.H.
References UList< T >::data(), memorybuf::out_base::resetp(), and UList< T >::size().
Referenced by memorybuf::out_dynamic::clearStorage(), memorybuf::out_dynamic::out_dynamic(), memorybuf::out_dynamic::release(), memorybuf::out_dynamic::reserve(), memorybuf::out_dynamic::reserve_exact(), memorybuf::out_dynamic::shrink_to_fit(), and memorybuf::out_dynamic::swap().


|
inline |
Increase capacity (if needed) and adjust buffer pointers. Applies a min-size and capacity doubling.
Definition at line 751 of file memoryStreamBuffer.H.
References memorybuf::out_dynamic::max_size(), memorybuf::out_dynamic::max_size_2(), memorybuf::out_dynamic::max_size_4(), memorybuf::out_dynamic::min_size(), List< T >::resize_copy(), UList< T >::size(), memorybuf::out_base::span_tellp(), and memorybuf::out_dynamic::sync_pbuffer().
Referenced by memorybuf::out_dynamic::extend(), and ocharstream::reserve().


|
inline |
Increase capacity for at least this size. Does not apply min-size or capacity doubling etc.
Definition at line 809 of file memoryStreamBuffer.H.
References List< T >::resize_copy(), UList< T >::size(), memorybuf::out_base::span_tellp(), and memorybuf::out_dynamic::sync_pbuffer().
Referenced by memorybuf::out_dynamic::extend_exact(), and ocharstream::reserve_exact().


|
inline |
Increase (reserve) space for another count entries.
Definition at line 824 of file memoryStreamBuffer.H.
References Foam::BitOps::count(), memorybuf::out_dynamic::reserve(), and memorybuf::out_base::span_tellp().
Referenced by ocharstream::append(), ocharstream::extend(), memorybuf::out_dynamic::overflow(), and memorybuf::out_dynamic::xsputn().


|
inline |
Increase (reserve) space for another count entries.
Definition at line 832 of file memoryStreamBuffer.H.
References Foam::BitOps::count(), memorybuf::out_dynamic::reserve_exact(), and memorybuf::out_base::span_tellp().
Referenced by ocharstream::extend_exact().


|
inline |
Clear storage.
Definition at line 840 of file memoryStreamBuffer.H.
References List< T >::clear(), and memorybuf::out_dynamic::sync_pbuffer().

|
inline |
Shrink storage to addressed storage.
Definition at line 849 of file memoryStreamBuffer.H.
References List< T >::resize(), memorybuf::out_base::span_tellp(), and memorybuf::out_dynamic::sync_pbuffer().
Referenced by memorybuf::out_dynamic::shrink().


|
inline |
Exchange buffer content and parameter contents, reset positions.
Definition at line 861 of file memoryStreamBuffer.H.
References List< T >::resize(), memorybuf::out_base::span_tellp(), UList< T >::swap(), and memorybuf::out_dynamic::sync_pbuffer().
Referenced by ocharstream::swap().


|
inline |
Exchange buffer content and parameter contents, reset positions.
Definition at line 873 of file memoryStreamBuffer.H.
References DynamicList< T, SizeMin >::capacity(), DynamicList< T, SizeMin >::resize(), memorybuf::out_base::span_tellp(), DynamicList< T, SizeMin >::swap(), and memorybuf::out_dynamic::sync_pbuffer().

|
inline |
Reset buffer and return contents as a DynamicList. The list size corresponds to the region of output.
Definition at line 887 of file memoryStreamBuffer.H.
References DynamicList< T, SizeMin >::clearStorage(), UList< T >::empty(), DynamicList< T, SizeMin >::resize(), memorybuf::out_base::span_tellp(), and memorybuf::out_dynamic::sync_pbuffer().
Referenced by ocharstream::release().


|
inline |
Same as shrink_to_fit()
Definition at line 904 of file memoryStreamBuffer.H.
References memorybuf::out_dynamic::shrink_to_fit().
