[#BloombergLP-bdlde-HexEncoder] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlde.adoc[bdlde]::HexEncoder :relfileprefix: ../../ :mrdocs: This class implements a mechanism capable of converting data of arbitrary length to its corresponding Hex representation. == Synopsis Declared in `<bdlde_hexencoder.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class HexEncoder; ---- == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdlde/HexEncoder/2constructor.adoc[`HexEncoder`] [.small]#[constructor]# | Create a Hex encoder in the initial state. Optionally specify the `upperCaseLetters` to indicate if values from 10 to 15 are encoded as uppercase letters(`A`‐`F`) or as lowercase letters(`a`‐`f`). | xref:BloombergLP/bdlde/HexEncoder/convert-06.adoc[`convert`] | Append to the buffer addressed by the specified `out` pending character (if there is such) up to the optionally specified `maxNumOut` limit (default is negative, meaning no limit). When there is no pending output and `maxNumOut` is still not reached, begin to consume and encode a sequence of input characters starting at the specified `begin` position, up to but not including the specified `end` position. Any resulting output is written to the `out` buffer up to the (cumulative) `maxNumOut` limit. If `maxNumOut` limit is reached, no further input will be consumed. Load into the (optionally) specified `numOut` and `numIn` the number of output bytes produced and input bytes consumed, respectively. Return a non‐negative value on success and a negative value otherwise. A successful return status indicates the number of characters that would be output if `endConvert` were called subsequently with no output limit. These bytes _may_ be available for output if this method is called with a sufficiently large `maxNumOut`. Note that calling this method after `endConvert` has been invoked without an intervening `reset` call will place this instance in an error state, and return an error status. Note also that it is recommended that after all calls to `convert` are finished, the `endConvert` method be called to complete the encoding of any unprocessed input characters. | xref:BloombergLP/bdlde/HexEncoder/endConvert-05.adoc[`endConvert`] | `endConvert` overloads | xref:BloombergLP/bdlde/HexEncoder/isAcceptable.adoc[`isAcceptable`] | Return `true` if the input read so far by this encoder is considered syntactically complete, and `false` otherwise. | xref:BloombergLP/bdlde/HexEncoder/isDone.adoc[`isDone`] | Return `true` if this encoder is in the done state (i.e., `endConvert` has been called and any additional input will result in an error), and if there is no pending output, and `false` otherwise. | xref:BloombergLP/bdlde/HexEncoder/isError.adoc[`isError`] | Return `true` if there is no possibility of achieving an "acceptable" result, and `false` otherwise. Note that for an encoder, no input can cause an error; the possible errors result either from a call to the `convert` method after the `endConvert` method is called the first time, or from a call to the `endConvert` method after the `endConvert` method has returned successfully. | xref:BloombergLP/bdlde/HexEncoder/isInitialState.adoc[`isInitialState`] | Return `true` if this encoder is in the initial state (i.e., as if no input had been consumed), and `false` otherwise. | xref:BloombergLP/bdlde/HexEncoder/isUpperCase.adoc[`isUpperCase`] | Return `true` if this encoder represents values from 10 to 15 as uppercase letters(`A`‐`F`), and `false` if these values are represented as lowercase letters(`a`‐`f`). | xref:BloombergLP/bdlde/HexEncoder/numOutputPending.adoc[`numOutputPending`] | Return the number of characters that would be output if `endConvert` were called with no output limit. | xref:BloombergLP/bdlde/HexEncoder/outputLength.adoc[`outputLength`] | Return the total length of the output emitted by this encoder (possibly after one or more calls to the `convert` or the `input` methods) since its initial construction or the latest `reset`. | xref:BloombergLP/bdlde/HexEncoder/reset.adoc[`reset`] | Reset this encoder to its initial state (i.e., as if no input had been consumed). |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#