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

This class contains the parameterized `decode` functions that decode data (in BER format) from an incoming stream into `bdlat` types&period;

== Synopsis

Declared in `&lt;balber&lowbar;berdecoder&period;h&gt;`

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

== Enums

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balber/BerDecoder/ErrorSeverity-02.adoc[`ErrorSeverity`] 
| Severity of a log or error message produced during decoding&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balber/BerDecoder/2constructor.adoc[`BerDecoder`]         [.small]#[constructor]#
| Construct a decoder object&period; Optionally specify decoder `options`&period; If `options` is 0, `BerDecoderOptions()` is used&period; Optionally specify a `basicAllocator` used to supply memory&period; If `basicAllocator` is 0, the currently installed default allocator is used&period;
| xref:BloombergLP/balber/BerDecoder/2destructor.adoc[`&#126;BerDecoder`] [.small]#[destructor]#
| Destroy this object&period; This destruction has no effect on objects pointed&hyphen;to by the pointers provided at construction&period;
| xref:BloombergLP/balber/BerDecoder/decode-0d.adoc[`decode`] 
| `decode` overloads
| xref:BloombergLP/balber/BerDecoder/decodeAny-05.adoc[`decodeAny`] 
| `decodeAny` overloads
| xref:BloombergLP/balber/BerDecoder/decoderOptions.adoc[`decoderOptions`] 
| Return the address of the BER decoder options&period;
| xref:BloombergLP/balber/BerDecoder/errorSeverity-03.adoc[`errorSeverity`] 
| Return the severity of the most severe log or error message encountered during the last call to the `decode` method&period; The severity is reset each time `decode` is called&period;
| xref:BloombergLP/balber/BerDecoder/loggedMessages.adoc[`loggedMessages`] 
| Return a string containing any error or trace messages that were logged during the last call to the `decode` method&period; The log is reset each time `decode` is called&period;
| xref:BloombergLP/balber/BerDecoder/maxDepthExceeded.adoc[`maxDepthExceeded`] 
| Return &apos;true&apos; if the maximum depth level is exceeded and &apos;false&apos; otherwise&period;
| xref:BloombergLP/balber/BerDecoder/numUnknownElementsSkipped.adoc[`numUnknownElementsSkipped`] 
| Return the number of unknown elements that were skipped during the previous decoding operation&period; Note that unknown elements are skipped only if `true &equals;&equals; options()&hyphen;&gt;skipUnknownElements()`&period;
| xref:BloombergLP/balber/BerDecoder/setNumUnknownElementsSkipped.adoc[`setNumUnknownElementsSkipped`] 
| Set the number of unknown elements skipped by the decoder during the current decoding operation to the specified `value`&period; The behavior is undefined unless `0 &lt;&equals; value`&period;
|===


== Friends

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/balber/BerDecoder_Node.adoc[BloombergLP::balber::BerDecoder&lowbar;Node]`
| This class provides current context for BER decoding process and represents a node for BER element&period; The BER element consists of element tag, length field, body field and optional end of tag&period; The class also provides various methods to read the different parts of BER element such as tag header (tag itself and length fields), body for any type of data, and optional tag trailer&period;
|===


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