[#BloombergLP-bdlsb-OverflowMemOutput] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlsb.adoc[bdlsb]::OverflowMemOutput :relfileprefix: ../../ :mrdocs: This class, like `bdlsb::OverflowMemOutStreamBuf`, implements the output functionality of the `bsl::basic_streambuf` interface, using a client‐supplied buffer and allocator‐supplied overflow buffer if additional memory is needed. It has an interface similar to `bdlsb::OverflowMemOutStreamBuf` but does *not* inherit from `bsl::streambuf`. Thus, it is suitable for use as template parameter to `bslx::GenericByteOutStream` (but not to `bslx::ByteOutStream` or `bslx::ByteOutStreamFormatter`). Note that this class is not designed to be derived from. == Synopsis Declared in `<bdlsb_overflowmemoutput.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class OverflowMemOutput; ---- == Type Aliases [cols="1"] |=== | Name | xref:BloombergLP/bdlsb/OverflowMemOutput/char_type.adoc[`char_type`] | xref:BloombergLP/bdlsb/OverflowMemOutput/int_type.adoc[`int_type`] | xref:BloombergLP/bdlsb/OverflowMemOutput/off_type.adoc[`off_type`] | xref:BloombergLP/bdlsb/OverflowMemOutput/pos_type.adoc[`pos_type`] | xref:BloombergLP/bdlsb/OverflowMemOutput/traits_type.adoc[`traits_type`] |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlsb/OverflowMemOutput/2constructor.adoc[`OverflowMemOutput`] [.small]#[constructor]# | Create an `OverflowMemOutput` using the specified `buffer` of the specified `length` as the initial output buffer. 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 != 0 && length > 0`. Note that this stream buffer does not assume ownership of `buffer`. | xref:BloombergLP/bdlsb/OverflowMemOutput/2destructor.adoc[`~OverflowMemOutput`] [.small]#[destructor]# | Destroy this stream buffer. | xref:BloombergLP/bdlsb/OverflowMemOutput/dataLength.adoc[`dataLength`] | Return the number of bytes that have been written to this object. | xref:BloombergLP/bdlsb/OverflowMemOutput/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/OverflowMemOutput/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/OverflowMemOutput/initialBuffer.adoc[`initialBuffer`] | Return a pointer providing non‐modifiable access to the character buffer held by this stream buffer (specified at construction). | xref:BloombergLP/bdlsb/OverflowMemOutput/initialBufferSize.adoc[`initialBufferSize`] | Return the size of the initial buffer held by this stream buffer. | xref:BloombergLP/bdlsb/OverflowMemOutput/overflowBuffer.adoc[`overflowBuffer`] | Return a pointer providing non‐modifiable access to the overflow buffer if there is one, or 0 otherwise. | xref:BloombergLP/bdlsb/OverflowMemOutput/overflowBufferSize.adoc[`overflowBufferSize`] | Return the size of the overflow buffer, or 0 if there is no overflow buffer. | xref:BloombergLP/bdlsb/OverflowMemOutput/pubseekoff.adoc[`pubseekoff`] | 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 less than zero. | xref:BloombergLP/bdlsb/OverflowMemOutput/pubseekpos.adoc[`pubseekpos`] | 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 less then zero. | xref:BloombergLP/bdlsb/OverflowMemOutput/pubsetbuf.adoc[`pubsetbuf`] | Reinitialize this stream buffer to use the specified character `buffer` having the specified `length`. Return a pointer providing modifiable access to this stream buffer. This stream buffer does not support reinitialization of the internal character buffer. | xref:BloombergLP/bdlsb/OverflowMemOutput/pubsync.adoc[`pubsync`] | Synchronize this stream buffer with associated character sequence. Operation has no effect. Return `0` unconditionally. | xref:BloombergLP/bdlsb/OverflowMemOutput/sputc.adoc[`sputc`] | Write the specified character `c` at the current write position and advance write position of this buffer. Return `c`, or `traits_type::eof()` if the end of the write buffer is reached. | xref:BloombergLP/bdlsb/OverflowMemOutput/sputn.adoc[`sputn`] | Write the specified `length` characters from the specified `source` to this buffer. Return the number of characters written, which is either `length` or the distance from the current write position to the end of the write buffer, whichever is smaller, and move the write cursor position by this amount. The behaviour is undefined unless `source != 0 || length > 0`. | xref:BloombergLP/bdlsb/OverflowMemOutput/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration<OverflowMemOutput, UsesBslmaAllocator>`] | |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#