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

Provide a BDEX input stream that unexternalizes values from a byte buffer&period;

== Synopsis

Declared in `&lt;bslx&lowbar;byteinstream&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class ByteInStream;
----

== Description

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;

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslx/ByteInStream/2constructor-08.adoc[`ByteInStream`]         [.small]#[constructor]#
| Constructors
| xref:BloombergLP/bslx/ByteInStream/2destructor.adoc[`&#126;ByteInStream`] [.small]#[destructor]#
| Destroy this object&period;
| xref:BloombergLP/bslx/ByteInStream/cursor.adoc[`cursor`] 
| Return the index of the next byte to be extracted from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/data.adoc[`data`] 
| Return the address of this stream&apos;s external memory buffer&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayFloat32.adoc[`getArrayFloat32`] 
| Extract an array of four&hyphen;byte IEEE floats from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayFloat64.adoc[`getArrayFloat64`] 
| Extract an array of eight&hyphen;byte IEEE doubles from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayInt16.adoc[`getArrayInt16`] 
| Extract an array of two&hyphen;byte signed integers from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayInt24.adoc[`getArrayInt24`] 
| Extract an array of three&hyphen;byte signed integers from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayInt32.adoc[`getArrayInt32`] 
| Extract an array of four&hyphen;byte signed integers from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayInt40.adoc[`getArrayInt40`] 
| Extract an array of five&hyphen;byte signed integers from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayInt48.adoc[`getArrayInt48`] 
| Extract an array of six&hyphen;byte signed integers from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayInt56.adoc[`getArrayInt56`] 
| Extract an array of seven&hyphen;byte signed integers from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayInt64.adoc[`getArrayInt64`] 
| Extract an array of eight&hyphen;byte signed integers from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayInt8-03.adoc[`getArrayInt8`] 
| `getArrayInt8` overloads
| xref:BloombergLP/bslx/ByteInStream/getArrayUint16.adoc[`getArrayUint16`] 
| Extract an array of two&hyphen;byte unsigned integers from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayUint24.adoc[`getArrayUint24`] 
| Extract an array of three&hyphen;byte unsigned integers from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayUint32.adoc[`getArrayUint32`] 
| Extract an array of four&hyphen;byte unsigned integers from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayUint40.adoc[`getArrayUint40`] 
| Extract an array of five&hyphen;byte unsigned integers from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayUint48.adoc[`getArrayUint48`] 
| Extract an array of six&hyphen;byte unsigned integers from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayUint56.adoc[`getArrayUint56`] 
| Extract an array of seven&hyphen;byte unsigned integers from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayUint64.adoc[`getArrayUint64`] 
| Extract an array of eight&hyphen;byte unsigned integers from this stream&period;
| xref:BloombergLP/bslx/ByteInStream/getArrayUint8-09.adoc[`getArrayUint8`] 
| `getArrayUint8` overloads
| xref:BloombergLP/bslx/ByteInStream/getFloat32.adoc[`getFloat32`] 
| Assign the next four&hyphen;byte IEEE float to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getFloat64.adoc[`getFloat64`] 
| Assign the next eight&hyphen;byte IEEE double to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getInt16.adoc[`getInt16`] 
| Assign the next two&hyphen;byte signed integer to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getInt24.adoc[`getInt24`] 
| Assign the next three&hyphen;byte signed integer to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getInt32.adoc[`getInt32`] 
| Assign the next four&hyphen;byte signed integer to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getInt40.adoc[`getInt40`] 
| Assign the next five&hyphen;byte signed integer to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getInt48.adoc[`getInt48`] 
| Assign the next six&hyphen;byte signed integer to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getInt56.adoc[`getInt56`] 
| Assign the next seven&hyphen;byte signed integer to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getInt64.adoc[`getInt64`] 
| Assign the next eight&hyphen;byte signed integer to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getInt8-0a.adoc[`getInt8`] 
| `getInt8` overloads
| xref:BloombergLP/bslx/ByteInStream/getLength.adoc[`getLength`] 
| Extract a compact length value into the specified `length`&period;
| xref:BloombergLP/bslx/ByteInStream/getString.adoc[`getString`] 
| Extract a length&hyphen;prefixed string into the specified `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getUint16.adoc[`getUint16`] 
| Assign the next two&hyphen;byte unsigned integer to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getUint24.adoc[`getUint24`] 
| Assign the next three&hyphen;byte unsigned integer to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getUint32.adoc[`getUint32`] 
| Assign the next four&hyphen;byte unsigned integer to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getUint40.adoc[`getUint40`] 
| Assign the next five&hyphen;byte unsigned integer to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getUint48.adoc[`getUint48`] 
| Assign the next six&hyphen;byte unsigned integer to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getUint56.adoc[`getUint56`] 
| Assign the next seven&hyphen;byte unsigned integer to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getUint64.adoc[`getUint64`] 
| Assign the next eight&hyphen;byte unsigned integer to `variable`&period;
| xref:BloombergLP/bslx/ByteInStream/getUint8-05.adoc[`getUint8`] 
| `getUint8` overloads
| xref:BloombergLP/bslx/ByteInStream/getVersion.adoc[`getVersion`] 
| Extract a one&hyphen;byte version into the specified `version`&period;
| xref:BloombergLP/bslx/ByteInStream/invalidate.adoc[`invalidate`] 
| Put this input stream in an invalid state&period;
| xref:BloombergLP/bslx/ByteInStream/isEmpty.adoc[`isEmpty`] 
| Return `true` if this stream is empty, and `false` otherwise&period;
| xref:BloombergLP/bslx/ByteInStream/isValid.adoc[`isValid`] 
| Return `true` if this stream is valid, and `false` otherwise&period;
| xref:BloombergLP/bslx/ByteInStream/length.adoc[`length`] 
| Return the total number of bytes stored in the external memory buffer&period;
| xref:BloombergLP/bslx/ByteInStream/reset-04.adoc[`reset`] 
| `reset` overloads
| xref:BloombergLP/bslx/ByteInStream/2conversion.adoc[`operator void const*`] 
| Return a non&hyphen;zero value if this stream is valid, and 0 otherwise&period; An invalid stream is a stream for which an input operation was detected to have failed&period;
|===


== Friends

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/bslx/operator_lshift-0ae.adoc[BloombergLP::bslx::operator&lt;&lt;]`
| Write the specified `object` to the specified output `stream` in some reasonable (multi&hyphen;line) format, and return a reference to `stream`&period;
|===

== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslx/operator_rshift-038.adoc[`operator&gt;&gt;`]
| Read a BDEX&hyphen;compliant `value` from the specified input `stream`&period;
|===


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