8#ifndef INCLUDED_BDLDE_HEXENCODER
9#define INCLUDED_BDLDE_HEXENCODER
332#include <bdlscm_version.h>
365 bool d_upperCaseFlag;
368 const char *d_encodeTable_p;
412 template <
class OUTPUT_ITERATOR,
class INPUT_ITERATOR>
413 int convert(OUTPUT_ITERATOR out,
414 INPUT_ITERATOR begin,
416 template <
class OUTPUT_ITERATOR,
class INPUT_ITERATOR>
417 int convert(OUTPUT_ITERATOR out,
420 INPUT_ITERATOR begin,
439 template <
class OUTPUT_ITERATOR>
441 template <
class OUTPUT_ITERATOR>
442 int endConvert(OUTPUT_ITERATOR out,
int *numOut,
int maxNumOut = -1);
492template <
class OUTPUT_ITERATOR,
class INPUT_ITERATOR>
494 INPUT_ITERATOR begin,
500 return convert(out, &dummyNumOut, &dummyNumIn, begin, end, -1);
503template <
class OUTPUT_ITERATOR,
class INPUT_ITERATOR>
507 INPUT_ITERATOR begin,
514 if (e_ERROR_STATE == d_state || e_DONE_STATE == d_state) {
515 int rv = e_DONE_STATE == d_state ? -2 : -1;
516 d_state = e_ERROR_STATE;
522 if (0 == maxNumOut) {
542 while (begin != end && numEmitted != maxNumOut) {
551 const char digit =
static_cast<char>(*begin);
554 *out = d_encodeTable_p[(digit >> 4) & 0x0f];
557 d_deferred = d_encodeTable_p[digit & 0x0f];
561 *numOut = numEmitted;
562 d_outputLength += numEmitted;
563 *numIn = numConsumed;
564 return d_deferred ? 1 : 0;
567template <
class OUTPUT_ITERATOR>
575template <
class OUTPUT_ITERATOR>
580 if (e_ERROR_STATE == d_state) {
584 if (e_DONE_STATE == d_state && !d_deferred) {
585 d_state = e_ERROR_STATE;
589 d_state = e_DONE_STATE;
592 if (0 == maxNumOut) {
609 d_state = e_INPUT_STATE;
618 return e_INPUT_STATE == d_state && 0 == d_deferred;
624 return e_DONE_STATE == d_state && 0 == d_deferred;
630 return e_ERROR_STATE == d_state;
636 return e_INPUT_STATE == d_state && 0 == d_outputLength;
642 return d_upperCaseFlag;
648 return d_deferred ? 1 : 0;
654 return d_outputLength;
Definition bdlde_hexencoder.h:347
bool isAcceptable() const
Definition bdlde_hexencoder.h:616
int outputLength() const
Definition bdlde_hexencoder.h:652
bool isUpperCase() const
Definition bdlde_hexencoder.h:640
bool isError() const
Definition bdlde_hexencoder.h:628
int convert(OUTPUT_ITERATOR out, INPUT_ITERATOR begin, INPUT_ITERATOR end)
Definition bdlde_hexencoder.h:493
bool isDone() const
Definition bdlde_hexencoder.h:622
HexEncoder(bool upperCaseLetters=true)
~HexEncoder()=default
Destroy this object.
bool isInitialState() const
Definition bdlde_hexencoder.h:634
void reset()
Definition bdlde_hexencoder.h:607
int numOutputPending() const
Definition bdlde_hexencoder.h:646
int endConvert(OUTPUT_ITERATOR out)
Definition bdlde_hexencoder.h:568
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlde_base64alphabet.h:118