This utility contains functions to encode and decode primitive BER constructs and simple value semantic types. By convention, all functions return 0 on success, and a non-zero value otherwise. Also by convention, all the "get" functions take an accumNumBytesConsumed; each of the functions will add to this variable the number of bytes consumed within the scope of the function.
Declared in <balber_berutil.h>
struct BerUtil;
| Name | Description |
|---|---|
Unnamed enum | Length sentinel indicating an indefinite BER element length. |
| Name | Description |
|---|---|
getEndOfContentOctets | Decode the "end-of-content" octets (two consecutive zero-octets) from the specified streamBuf and add the number of bytes consumed (which is always 2) to the specified accumNumBytesConsumed. Return 0 on success, and a non-zero value otherwise. |
getIdentifierOctets | Decode the identifier octets from the specified streamBuf and load the tag class, tag type, and tag number to the specified tagClass, tagType, and tagNumber respectively. Add the number of bytes consumed to the specified accumNumBytesConsumed. Return 0 on success, and a non-zero value otherwise. |
getLength | Decode the length octets from the specified streamBuf and load the result to the specified result. If the length is indefinite (i.e., contents will be terminated by "end-of-content" octets) then result will be set to k_INDEFINITE_LENGTH. Add the number of bytes consumed to the specified accumNumBytesConsumed. Return 0 on success, and a non-zero value otherwise. |
getValue | getValue overloads |
putEndOfContentOctets | Encode the "end-of-content" octets (two consecutive zero-octets) to the specified streamBuf. The "end-of-content" octets act as the termination bytes for objects that have indefinite length. Return 0 on success, and a non-zero value otherwise. |
putIdentifierOctets | Encode the identifier octets for the specified tagClass, tagType and tagNumber to the specified streamBuf. Return 0 on success, and a non-zero value otherwise. |
putIndefiniteLengthOctet | Encode the "indefinite-length" octet onto the specified streamBuf. This octet signifies that the length of the contents is indefinite (i.e., contents will be terminated by end of content octets). Return 0 on success, and a non-zero value otherwise. |
putLength | Encode the specified length to the specified streamBuf. Return 0 on success, and a non-zero value otherwise. The behavior is undefined unless 0 <= length. |
putValue | Encode the specified value to the specified streamBuf. Return 0 on success, and a non-zero value otherwise. Note that the value consists of the length and contents primitives. Also note that only fundamental C++ types, bsl::string, bsl::string_view, bslstl::StringRef, and BDE date/time types are supported. |