BloombergLP::bdlde::HexDecoder::convert

Decode hexadecimal input characters into binary output with limits.

Synopsis

Declared in <bdlde_hexdecoder.h>

template<
    class OUTPUT_ITERATOR,
    class INPUT_ITERATOR>
int
convert(
    OUTPUT_ITERATOR out,
    int* numOut,
    int* numIn,
    INPUT_ITERATOR begin,
    INPUT_ITERATOR end,
    int maxNumOut = -1);

Description

Append to the buffer addressed by the specified out all pending output (if there is any) up to the optionally specified maxNumOut limit (default is negative, meaning no limit). When there is no pending output and the maxNumOut is still not reached, begin to consume and decode 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 0 on success and a negative value otherwise. 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.

Return Value

0 on success, and a negative value otherwise

Parameters

NameDescription
outoutput iterator for decoded bytes
numOutreceives the number of output bytes produced
numInreceives the number of input bytes consumed
beginbeginning of the input range
endend of the input range (exclusive)
maxNumOutmaximum output bytes to emit; negative means no limit