KCodecs 5.109.0
Public Member Functions | Protected Types | Protected Member Functions | List of all members
KCodecs::Encoderabstract

Stateful encoder class. More...

#include <KCodecs>

Public Member Functions

virtual ~Encoder ()
 Destroys the encoder.
 
virtual bool encode (const char *&scursor, const char *const send, char *&dcursor, const char *const dend)=0
 Encodes a chunk of data, maintaining state information between calls.
 
virtual bool finish (char *&dcursor, const char *const dend)=0
 Call this method to finalize the output stream.
 

Protected Types

enum  { maxBufferedChars = 8 }
 The maximum number of characters permitted in the output buffer. More...
 

Protected Member Functions

 Encoder (Codec::NewlineType newline=Codec::NewlineLF)
 Protected constructor.
 
bool flushOutputBuffer (char *&dcursor, const char *const dend)
 Writes characters from the output buffer to the output stream.
 
bool write (char ch, char *&dcursor, const char *const dend)
 Writes character ch to the output stream or the output buffer, depending on whether or not the output stream has space left.
 
bool writeCRLF (char *&dcursor, const char *const dend)
 Convenience function.
 

Detailed Description

Stateful encoder class.

Stateful encoder class, modeled after QTextEncoder.

Since
5.5

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected

The maximum number of characters permitted in the output buffer.

Enumerator
maxBufferedChars 

Eight.

Constructor & Destructor Documentation

◆ Encoder()

KCodecs::Encoder::Encoder ( Codec::NewlineType  newline = Codec::NewlineLF)
explicitprotected

Protected constructor.

Use KCodecs::Codec::makeEncoder if you want one.

Parameters
newlinewhether make new lines using CRLF, or LF (default is LF).

◆ ~Encoder()

virtual KCodecs::Encoder::~Encoder ( )
virtual

Destroys the encoder.

Member Function Documentation

◆ encode()

virtual bool KCodecs::Encoder::encode ( const char *&  scursor,
const char *const  send,
char *&  dcursor,
const char *const  dend 
)
pure virtual

Encodes a chunk of data, maintaining state information between calls.

See KCodecs::Codec for calling conventions.

Parameters
scursoris a pointer to the start of the input buffer.
sendis a pointer to the end of the input buffer.
dcursoris a pointer to the start of the output buffer.
dendis a pointer to the end of the output buffer.

◆ finish()

virtual bool KCodecs::Encoder::finish ( char *&  dcursor,
const char *const  dend 
)
pure virtual

Call this method to finalize the output stream.

Writes all remaining data and resets the encoder. See KCodecs::Codec for calling conventions.

Parameters
dcursoris a pointer to the start of the output buffer.
dendis a pointer to the end of the output buffer.

◆ flushOutputBuffer()

bool KCodecs::Encoder::flushOutputBuffer ( char *&  dcursor,
const char *const  dend 
)
protected

Writes characters from the output buffer to the output stream.

Implementations of encode and finish should call this at the very beginning and for each iteration of the while loop.

Parameters
dcursoris a pointer to the start of the output buffer.
dendis a pointer to the end of the output buffer.
Returns
true if all chars could be written, false otherwise

◆ write()

bool KCodecs::Encoder::write ( char  ch,
char *&  dcursor,
const char *const  dend 
)
protected

Writes character ch to the output stream or the output buffer, depending on whether or not the output stream has space left.

Parameters
chis the character to write.
dcursoris a pointer to the start of the output buffer.
dendis a pointer to the end of the output buffer.
Returns
true if written to the output stream; else false if buffered.

◆ writeCRLF()

bool KCodecs::Encoder::writeCRLF ( char *&  dcursor,
const char *const  dend 
)
protected

Convenience function.

Outputs LF or CRLF, based on the state of mWithCRLF.

Parameters
dcursoris a pointer to the start of the output buffer.
dendis a pointer to the end of the output buffer.