[#BloombergLP-bdlsb]
= xref:BloombergLP.adoc[BloombergLP]::bdlsb
:relfileprefix: ../
:mrdocs:

Components in the `bdlsb` package provide streambuf utilities&period;

== Types

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdlsb/FixedMemInStreamBuf.adoc[`FixedMemInStreamBuf`] 
| This class implements the input functionality of the `basic&lowbar;streambuf` protocol, using client&hyphen;supplied `char &ast;` memory&period;
| xref:BloombergLP/bdlsb/FixedMemInput.adoc[`FixedMemInput`] 
| This class, like `bdlsb&colon;&colon;FixedMemInStreamBuf`, implements the input functionality of the `basic&lowbar;streambuf` interface, using client&hyphen;supplied `char &ast;` memory&period; It has an interface identical to `bdlsb&colon;&colon;FixedMemInStreamBuf` but does _not_ inherit from `bsl&colon;&colon;streambuf`&period; This implementation is advantageous for performance reasons, as the overhead of the initialization and virtual function calls of a `bsl&colon;&colon;streambuf` can be undesirable&period; It is especially designed for streaming a very small amount of information from a fixed&hyphen;length buffer using a `bslx&lowbar;genericinstream` when the number of characters read from the input is guaranteed not to exceed the length of the buffer&period; Note that this class is not designed to be derived from&period;
| xref:BloombergLP/bdlsb/FixedMemOutStreamBuf.adoc[`FixedMemOutStreamBuf`] 
| This class implements the output functionality of the `basic&lowbar;streambuf` protocol for client&hyphen;supplied memory&period;
| xref:BloombergLP/bdlsb/FixedMemOutput.adoc[`FixedMemOutput`] 
| This class, like `bdlsb&colon;&colon;FixedMemOutStreamBuf`, implements the output functionality of the `basic&lowbar;streambuf` interface, using client&hyphen;supplied `char &ast;` memory&period; It has an identical interface to `bdlsb&colon;&colon;FixedMemOutStreamBuf` but does _not_ inherit from `bsl&colon;&colon;streambuf`&period; Thus, it is suitable for use as template parameter to `bslx&colon;&colon;GenericOutStream` (but not to `bslx&colon;&colon;StreambufOutStream`)&period; Note that this class is not designed to be derived from&period;
| xref:BloombergLP/bdlsb/MemOutStreamBuf.adoc[`MemOutStreamBuf`] 
| This `class` implements the output functionality of the `basic&lowbar;streambuf` protocol, using a user&hyphen;supplied or default `bslma` allocator to supply memory&period;
| xref:BloombergLP/bdlsb/MemOutStreamBuf_Util.adoc[`MemOutStreamBuf&lowbar;Util`] 
| Utility functions for `MemOutStreamBuf` buffer management&period;
| xref:BloombergLP/bdlsb/OverflowMemOutStreamBuf.adoc[`OverflowMemOutStreamBuf`] 
| This class implements the output functionality of the `bsl&colon;&colon;basic&lowbar;streambuf` protocol, using client&hyphen;supplied memory and client&hyphen;supplied allocator if additional memory is needed&period;
| xref:BloombergLP/bdlsb/OverflowMemOutput.adoc[`OverflowMemOutput`] 
| This class, like `bdlsb&colon;&colon;OverflowMemOutStreamBuf`, implements the output functionality of the `bsl&colon;&colon;basic&lowbar;streambuf` interface, using a client&hyphen;supplied buffer and allocator&hyphen;supplied overflow buffer if additional memory is needed&period; It has an interface similar to `bdlsb&colon;&colon;OverflowMemOutStreamBuf` but does *not* inherit from `bsl&colon;&colon;streambuf`&period; Thus, it is suitable for use as template parameter to `bslx&colon;&colon;GenericByteOutStream` (but not to `bslx&colon;&colon;ByteOutStream` or `bslx&colon;&colon;ByteOutStreamFormatter`)&period; Note that this class is not designed to be derived from&period;
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
