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

Package namespace for BDEX streaming components&period;

== Namespaces

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslx/InStreamFunctions.adoc[`InStreamFunctions`] 
| This namespace facilitates unexternalization of all BDEX&hyphen;compliant types in a type&hyphen;independent manner&period; The unexternalization functions are overloaded for fundamental types, enumeration types, `bsl&colon;&colon;string`, and `bsl&colon;&colon;vector`&period; A compilation error will occur if the (template parameter) `VALUE&lowbar;TYPE` of a non&hyphen;overloaded method of `bslx&colon;&colon;InStreamFunctions` does not support `bdexStreamIn` (with the appropriate signature)&period;
| xref:BloombergLP/bslx/OutStreamFunctions.adoc[`OutStreamFunctions`] 
| Namespace for type&hyphen;independent externalization of BDEX&hyphen;compliant types&period;
| xref:BloombergLP/bslx/VersionFunctions.adoc[`VersionFunctions`] 
| Namespace for computing BDEX version information for externalizable types&period;
|===


== Types

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslx/ByteInStream.adoc[`ByteInStream`] 
| This class provides input methods to unexternalize values, and C&hyphen;style arrays of values, of the fundamental integral and floating&hyphen;point types, as well as `bsl&colon;&colon;string` values, using a byte format documented in the `bslx&lowbar;byteoutstream` component&period; In particular, each `get` method of this class is guaranteed to read stream data written by the corresponding `put` method of `bslx&colon;&colon;ByteOutStream`&period; Note that attempting to read beyond the end of a stream will automatically invalidate the stream&period; See the `bslx` package&hyphen;level documentation for the definition of the BDEX `InStream` protocol&period;
| xref:BloombergLP/bslx/ByteOutStream.adoc[`ByteOutStream`] 
| This class provides output methods to externalize values, and C&hyphen;style arrays of values, of the fundamental integral and floating&hyphen;point types, as well as `bsl&colon;&colon;string` values&period; In particular, each `put` method of this class is guaranteed to write stream data that can be read by the corresponding `get` method of `bslx&colon;&colon;ByteInStream`&period; See the `bslx` package&hyphen;level documentation for the definition of the BDEX `OutStream` protocol&period;
| xref:BloombergLP/bslx/GenericInStream.adoc[`GenericInStream`] 
| This class provides input methods to unexternalize values, and C&hyphen;style arrays of values, of the fundamental integral and floating&hyphen;point types, as well as `bsl&colon;&colon;string` values, using a byte format documented in the `bslx&lowbar;byteoutstream` component&period; In particular, each `get` method of this class is guaranteed to read stream data written by the corresponding `put` method of `bslx&colon;&colon;GenericOutStream`&period; Note that attempting to read beyond the end of a stream will automatically invalidate the stream&period; See the `bslx` package&hyphen;level documentation for the definition of the BDEX `InStream` protocol&period;
| xref:BloombergLP/bslx/GenericOutStream.adoc[`GenericOutStream`] 
| This class provides output methods to externalize values, and C&hyphen;style arrays of values, of the fundamental integral and floating&hyphen;point types, as well as `bsl&colon;&colon;string` values&period; In particular, each `put` method of this class is guaranteed to write stream data that can be read by the corresponding `get` method of `bslx&colon;&colon;GenericInStream`&period; See the `bslx` package&hyphen;level documentation for the definition of the BDEX `OutStream` protocol&period;
| xref:BloombergLP/bslx/MarshallingUtil.adoc[`MarshallingUtil`] 
| This `struct` provides a namespace for a suite of functions that facilitate the marshalling of values, and C&hyphen;style arrays of values, of the fundamental integral and floating&hyphen;point types in a data&hyphen;independent, platform&hyphen;neutral representation&period;
| xref:BloombergLP/bslx/TestInStream.adoc[`TestInStream`] 
| This class provides input methods to unexternalize values, and C&hyphen;style arrays of values, of fundamental types from their byte representations&period; Each input method also verifies the input value type&period; By default, if invalid data is detected, error messages are displayed on `stdout`&semi; this error reporting may be disabled via the `setQuiet` method&period; Note that attempting to read beyond the end of a stream will automatically invalidate the stream&period; See the `bslx` package&hyphen;level documentation for the definition of the BDEX `InStream` protocol&period;
| xref:BloombergLP/bslx/TestInStreamException.adoc[`TestInStreamException`] 
| This class defines an exception object for unexternalization operations&period; Instances of this class contain information about an unexternalization request&period;
| xref:BloombergLP/bslx/TestInStream_Proxy.adoc[`TestInStream&lowbar;Proxy`] 
| This class provides a proxy to the test stream that is supplied to the `BSLX&lowbar;TESTINSTREAM&lowbar;EXCEPTION&lowbar;TEST&lowbar;BEGIN` macro&period; This proxy may be instantiated with `TestInStream`, or with a type that supports the same interface as `TestInStream`&period;
| xref:BloombergLP/bslx/TestInStream_ProxyBase.adoc[`TestInStream&lowbar;ProxyBase`] 
| This class provides a common base class for the parameterized `TestInStream&lowbar;Proxy` class (below)&period; Note that the `virtual` `setInputLimit` method, although a &quot;setter&quot;, _must_ be declared `const`&period;
| xref:BloombergLP/bslx/TestOutStream.adoc[`TestOutStream`] 
| This class implements output methods to externalize fundamental types and their associated type identification data&period; It stores the accumulated result in network byte order&period; See the `bslx` package&hyphen;level documentation for the definition of the BDEX `OutStream` protocol&period;
| xref:BloombergLP/bslx/TypeCode.adoc[`TypeCode`] 
| This `struct` provides a namespace for enumerating the set of fundamental types supported within `bslx`&period; See `Enum` in the `TYPES` sub&hyphen;section for details&period;
| xref:BloombergLP/bslx/VersionFunctions_DoesNotHaveBdexVersion.adoc[`VersionFunctions&lowbar;DoesNotHaveBdexVersion`] 
| This class is used to perform function overload resolution for types that do _not_ have BDEX versions&period; This class contains no interface or implementation by design&period;
| xref:BloombergLP/bslx/VersionFunctions_HasBdexVersion.adoc[`VersionFunctions&lowbar;HasBdexVersion`] 
| This class is used to perform function overload resolution for types that _have_ BDEX versions&period; This class contains no interface or implementation by design&period;
| xref:BloombergLP/bslx/VersionFunctions_NonFundamentalImpl-0b.adoc[`VersionFunctions&lowbar;NonFundamentalImpl`] 
| This `struct` provides a namespace for functions used to obtain the BDEX&hyphen;compliant version information for vectors and types requiring a `TYPE&colon;&colon;maxSupportedBdexVersion` method as per the BDEX protocol (see the `bslx` package&hyphen;level documentation)&period;
|===


== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslx/StreambufInStream.adoc[`StreambufInStream`] 
| This class facilitates the unexternalization of values (and C&hyphen;style arrays of values) of the fundamental integral and floating&hyphen;point types in a data&hyphen;independent, platform&hyphen;neutral representation&period; It is currently a `typedef` for `bslx&colon;&colon;GenericInStream&lt;bsl&colon;&colon;streambuf&gt;`&period;
| xref:BloombergLP/bslx/StreambufOutStream.adoc[`StreambufOutStream`] 
| This class facilitates the externalization of values (and C&hyphen;style arrays of values) of the fundamental integral and floating&hyphen;point types in a data&hyphen;independent, platform&hyphen;neutral representation&period; It is currently a `typedef` for `bslx&colon;&colon;GenericOutStream&lt;bsl&colon;&colon;streambuf&gt;`&period;
|===


== Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslx/TestInStream_getProxy.adoc[`TestInStream&lowbar;getProxy`] 
| Return, by value, a test stream proxy for the specified parameterized `stream`&period;
| xref:BloombergLP/bslx/operator_rshift-03a.adoc[`operator&gt;&gt;`] 
| Right shift operators
| xref:BloombergLP/bslx/operator_lshift-0b.adoc[`operator&lt;&lt;`] 
| Stream insertion operators
|===



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