[#BloombergLP-bdlsb-OverflowMemOutStreamBuf] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlsb.adoc[bdlsb]::OverflowMemOutStreamBuf :relfileprefix: ../../ :mrdocs: This class implements the output functionality of the `bsl::basic_streambuf` protocol, using client‐supplied memory and client‐supplied allocator if additional memory is needed. == Synopsis Declared in `<bdlsb_overflowmemoutstreambuf.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class OverflowMemOutStreamBuf : public std::streambuf ---- == Base Classes [cols="1,4"] |=== | Name| Description | `std::streambuf` | |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/2constructor.adoc[`OverflowMemOutStreamBuf`] [.small]#[constructor]# | Create an empty stream buffer that uses the specified `buffer` as an initial output buffer of the specified `size` (in bytes). Optionally specify a `basicAllocator` used to supply memory. If `basicAllocator` is 0, the currently‐installed default allocator is used. The behavior is undefined unless `buffer` points to a valid sequence of positive `size` characters. Note that this stream buffer does not assume ownership of `buffer`. | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/2destructor.adoc[`~OverflowMemOutStreamBuf`] [.small]#[destructor]# [.small]#[virtual]# | Destroy this stream buffer. | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/dataLength.adoc[`dataLength`] | Return the number of bytes written to this stream. Note that if `pptr()` is currently pointing into the overflow buffer the data length will be greater than the size of the initial buffer. | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/dataLengthInInitialBuffer.adoc[`dataLengthInInitialBuffer`] | Return the length of data in the initial buffer, i.e., `dataLength()` if there is no overflow buffer, or `initialBufferSize()` if there is one. | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/dataLengthInOverflowBuffer.adoc[`dataLengthInOverflowBuffer`] | Return the length of the data in the overflow buffer, i.e., 0 if there is no overflow buffer, or `dataLength() ‐ initialBufferSize()` if there is one. | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/initialBuffer.adoc[`initialBuffer`] | Return a pointer to the non‐modifiable buffer supplied at construction. | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/initialBufferSize.adoc[`initialBufferSize`] | Return the size of the buffer supplied at construction. | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/overflowBuffer.adoc[`overflowBuffer`] | Return a pointer to the non‐modifiable overflow buffer if there is one, or 0 otherwise. | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/overflowBufferSize.adoc[`overflowBufferSize`] | Return the size of the overflow buffer, or 0 if there is no overflow buffer. | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration<OverflowMemOutStreamBuf, UsesBslmaAllocator>`] | |=== == Protected Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/overflow.adoc[`overflow`] [.small]#[virtual]# | If c is not `EOF`, adjust the underlying buffer so that the next put position is valid, put the specified `c` at this position, and increment the put position. Return `c` on success, and `traits_type::not_eof(c)` if `c` is `EOF`. | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/seekoff.adoc[`seekoff`] [.small]#[virtual]# | Set the position indicator to the relative specified `offset` from the base position indicated by the specified `way` and return the resulting absolute position on success or pos_type(‐1) on failure. Optionally specify `which` area of the stream buffer. The seek operation will fail if `which` does not include the flag `bsl::ios_base::out` or if the resulting absolute position is negative. | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/seekpos.adoc[`seekpos`] [.small]#[virtual]# | Set the position indicator to the specified `position` and return the resulting absolute position on success or pos_type(‐1) on failure. Optionally specify `which` area of the stream buffer. The `seekpos` operation will fail if `which` does not include the flag `bsl::ios_base::out` or if `position` is negative. | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/sync.adoc[`sync`] [.small]#[virtual]# | Set `d_dataLength` to the amount of data that has been written to this stream buffer, from the beginning of the stream to the current `pptr()` position and return 0. Note that if `pptr()` points into the overflow buffer, this size the initial buffer, plus the portion of the overflow buffer that has been written to. | xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf/xsputn.adoc[`xsputn`] [.small]#[virtual]# | Write the specified `numChars` characters from the specified `source` to the stream buffer. Return the number of characters successfully written. The behavior is undefined unless '(source && 0 < numChars) || 0 == numChars'. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#