[#BloombergLP-balber-BerUtil_StringImpUtil]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/balber.adoc[balber]::BerUtil&lowbar;StringImpUtil
:relfileprefix: ../../
:mrdocs:

This component&hyphen;private utility `struct` provides a namespace for a suite of functions used by `BerUtil` to implement BER encoding and decoding operations for string values&period; Within the definition of this `struct`&colon;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
struct BerUtil&lowbar;StringImpUtil;
----

== Description

&ast; *the specification*&colon; &gt; Refers to the August 2015 revision of the ITU&hyphen;T Recommendation X&period;690&period;

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balber/BerUtil_StringImpUtil/LengthUtil.adoc[`LengthUtil`] 
| `LengthUtil` is an alias to a namespace for a suite of functions used to implement BER encoding and decoding operations for length quantities&period;
|===


== Static Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/balber/BerUtil_StringImpUtil/getStringValue.adoc[`getStringValue`] 
| Read the specified `length` number of bytes from the input sequence of the specified `streamBuf` and load to the specified `value` the interpretation of those bytes as the value of the contents octets of a BER&hyphen;encoded character string (more specifically, an unrestricted character string) according to the specification, unless an alternate value is indicated by the specified `options`, in which case, the alternate value is loaded&period; If the `DefaultEmptyStrings` attribute of the `options` is `true` and the witnessed BER&hyphen;encoded character string represents the empty string value, the alternate value is the current `&ast;value`, otherwise there is no alternate value&period; Return 0 if successful, and a non&hyphen;zero value otherwise&period; The operation succeeds if `length` bytes are successfully read from the input sequence of the `streamBuf` without the read position becoming unavailable, and the bytes read contain a valid representation of the contents octets of a character string value according to the specification&period;
| xref:BloombergLP/balber/BerUtil_StringImpUtil/putChars.adoc[`putChars`] 
| Write the specified `numChars` number of bytes having the specified `value` to the output sequence of the specified `streamBuf`&period; Return 0 if successful, and a non&hyphen;zero value otherwise&period; The operation succeeds if all `numChars` bytes are written to the `streamBuf` without the write position becoming unavailable&period;
| xref:BloombergLP/balber/BerUtil_StringImpUtil/putRawStringValue.adoc[`putRawStringValue`] 
| Write the length and contents octets of the BER encoding of the specified byte `string` having the specified `stringLength` (as defined in the specification) to the output sequence of the specified `streamBuf`&period; Return 0 if successful, and a non&hyphen;zero value otherwise&period; The operation succeeds if all bytes corresponding to the length and contents octets are written to the `streamBuf` without the write position becoming unavailable&period;
| xref:BloombergLP/balber/BerUtil_StringImpUtil/putStringRefValue.adoc[`putStringRefValue`] 
| Write the length and contents octets of the BER encoding of the specified character string `value` (as defined in the specification) to the output sequence of the specified `streamBuf`&period; Return 0 if successful, and a non&hyphen;zero value otherwise&period; The operation succeeds if all bytes corresponding to the length and contents octets are written to the `streamBuf` without the write position becoming unavailable&period;
| xref:BloombergLP/balber/BerUtil_StringImpUtil/putStringValue.adoc[`putStringValue`] 
| Write the length and contents octets of the BER encoding of the specified character string `value` (as defined in the specification) to the output sequence of the specified `streamBuf`&period; Return 0 if successful, and a non&hyphen;zero value otherwise&period; The operation succeeds if all bytes corresponding to the length and contents octets are written to the `streamBuf` without the write position becoming unavailable&period;
| xref:BloombergLP/balber/BerUtil_StringImpUtil/putStringViewValue.adoc[`putStringViewValue`] 
| Write the length and contents octets of the BER encoding of the specified character string `value` (as defined in the specification) to the output sequence of the specified `streamBuf`&period; Return 0 if successful, and a non&hyphen;zero value otherwise&period; The operation succeeds if all bytes corresponding to the length and contents octets are written to the `streamBuf` without the write position becoming unavailable&period;
|===



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