Base module

hex::Encoder

Hex encoder.

Encoder

#include <icy/hex.h>

Inherits: Encoder

Hex encoder.

Public Attributes

ReturnNameDescription
int_linePos
int_lineLength
int_uppercase

_linePos

int _linePos

_lineLength

int _lineLength

_uppercase

int _uppercase

Public Methods

ReturnNameDescription
Encoder inline
ssize_tencode virtual inlineEncodes binary input as lowercase hex characters, optionally inserting newlines every _lineLength output characters.
ssize_tfinalize virtual inlineNo-op finalizer; hex encoding has no pending state.
voidsetUppercase inlineControls whether encoded output uses uppercase hex digits (A-F) or lowercase (a-f).
voidsetLineLength inlineSets the maximum number of output characters per line before a newline is inserted. Set to 0 to disable line wrapping.

Encoder

inline

inline Encoder()

encode

virtual inline

virtual inline ssize_t encode(const char * inbuf, size_t nread, char * outbuf)

Encodes binary input as lowercase hex characters, optionally inserting newlines every _lineLength output characters.

Parameters

  • inbuf Input buffer to encode.

  • nread Number of bytes to read from inbuf.

  • outbuf Destination buffer; must have capacity >= nread * 2 + nread/_lineLength + 1.

Returns

Number of bytes written to outbuf.


finalize

virtual inline

virtual inline ssize_t finalize(char *)

No-op finalizer; hex encoding has no pending state.

Returns

Always 0.


setUppercase

inline

inline void setUppercase(bool flag)

Controls whether encoded output uses uppercase hex digits (A-F) or lowercase (a-f).

Parameters

  • flag true for uppercase, false for lowercase.

setLineLength

inline

inline void setLineLength(int lineLength)

Sets the maximum number of output characters per line before a newline is inserted. Set to 0 to disable line wrapping.

Parameters

  • lineLength Characters per line.