15#include <kcodecs_export.h>
21#if KCODECS_ENABLE_DEPRECATED_SINCE(5, 79)
23#define KBase64 KCodecs
25#define KBase64 KBase64_is_deprecated_use_KCodecs
28template<
typename T,
typename U>
127#if KCODECS_ENABLE_DEPRECATED_SINCE(5, 56)
141KCODECS_DEPRECATED_VERSION(5, 56,
"Not implemented")
142QByteArray uuencode(const QByteArray &in);
145#if KCODECS_ENABLE_DEPRECATED_SINCE(5, 56)
163KCODECS_DEPRECATED_VERSION(5, 56,
"Not implemented")
164void uuencode(const QByteArray &in, QByteArray &out);
177KCODECS_EXPORT QByteArray
uudecode(
const QByteArray &in);
198KCODECS_EXPORT
void uudecode(
const QByteArray &in, QByteArray &out);
216#if KCODECS_ENABLE_DEPRECATED_SINCE(5, 5)
223KCODECS_DEPRECATED_VERSION(5, 5,
"Use QByteArray base64Encode(const QByteArray &)")
224QByteArray base64Encode(const QByteArray &in,
bool insertLFs);
248KCODECS_EXPORT
void base64Encode(
const QByteArray &in, QByteArray &out,
bool insertLFs =
false);
276KCODECS_EXPORT
void base64Decode(
const QByteArray &in, QByteArray &out);
313 const QByteArray &defaultCS = QByteArray(),
330KCODECS_EXPORT QByteArray
encodeRFC2047String(
const QString &src,
const QByteArray &charset);
483 virtual bool encode(
const char *&scursor,
const char *
const send,
char *&dcursor,
const char *
const dend, NewlineType newline = NewlineLF)
const;
521 virtual bool decode(
const char *&scursor,
const char *
const send,
char *&dcursor,
const char *
const dend, NewlineType newline = NewlineLF)
const;
533 virtual QByteArray
encode(
const QByteArray &src, NewlineType newline = NewlineLF)
const;
545 virtual QByteArray
decode(
const QByteArray &src, NewlineType newline = NewlineLF)
const;
550 virtual const char *
name()
const = 0;
654 friend class DecoderPrivate;
662 Decoder(Codec::NewlineType newline = Codec::NewlineLF);
679 virtual bool decode(
const char *&scursor,
const char *
const send,
char *&dcursor,
const char *
const dend) = 0;
689 virtual bool finish(
char *&dcursor,
const char *
const dend) = 0;
693 std::unique_ptr<DecoderPrivate>
const d;
710 friend class EncoderPrivate;
717 explicit Encoder(Codec::NewlineType newline = Codec::NewlineLF);
734 virtual bool encode(
const char *&scursor,
const char *
const send,
char *&dcursor,
const char *
const dend) = 0;
743 virtual bool finish(
char *&dcursor,
const char *
const dend) = 0;
750 maxBufferedChars = 8,
763 bool write(
char ch,
char *&dcursor,
const char *
const dend);
788 std::unique_ptr<EncoderPrivate>
const d;
An abstract base class of codecs for common mail transfer encodings.
Definition kcodecs.h:388
virtual bool decode(const char *&scursor, const char *const send, char *&dcursor, const char *const dend, NewlineType newline=NewlineLF) const
Convenience wrapper that can be used for small chunks of data when you can provide a large enough buf...
static Codec * codecForName(const char *name)
Returns a codec associated with the specified name.
virtual Decoder * makeDecoder(NewlineType newline=NewlineLF) const =0
Creates the decoder for the codec.
virtual int maxDecodedSizeFor(int insize, NewlineType newline=NewlineLF) const =0
Computes the maximum size, in characters, needed for the deccoding.
virtual const char * name() const =0
Returns the name of the encoding.
Codec()
Constructs the codec.
Definition kcodecs.h:563
static Codec * codecForName(const QByteArray &name)
Returns a codec associated with the specified name.
virtual Encoder * makeEncoder(NewlineType newline=NewlineLF) const =0
Creates the encoder for the codec.
virtual QByteArray decode(const QByteArray &src, NewlineType newline=NewlineLF) const
Even more convenient, but also a bit slower and more memory intensive, since it allocates storage for...
virtual int maxEncodedSizeFor(int insize, NewlineType newline=NewlineLF) const =0
Computes the maximum size, in characters, needed for the encoding.
virtual QByteArray encode(const QByteArray &src, NewlineType newline=NewlineLF) const
Even more convenient, but also a bit slower and more memory intensive, since it allocates storage for...
virtual ~Codec()
Destroys the codec.
Definition kcodecs.h:555
virtual bool encode(const char *&scursor, const char *const send, char *&dcursor, const char *const dend, NewlineType newline=NewlineLF) const
Convenience wrapper that can be used for small chunks of data when you can provide a large enough buf...
Stateful CTE decoder class.
Definition kcodecs.h:651
Decoder(Codec::NewlineType newline=Codec::NewlineLF)
Protected constructor.
virtual ~Decoder()
Destroys the decoder.
virtual bool finish(char *&dcursor, const char *const dend)=0
Call this method to finalize the output stream.
virtual bool decode(const char *&scursor, const char *const send, char *&dcursor, const char *const dend)=0
Decodes a chunk of data, maintaining state information between calls.
Stateful encoder class.
Definition kcodecs.h:707
virtual ~Encoder()
Destroys the encoder.
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...
bool flushOutputBuffer(char *&dcursor, const char *const dend)
Writes characters from the output buffer to the output stream.
Encoder(Codec::NewlineType newline=Codec::NewlineLF)
Protected constructor.
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.
bool writeCRLF(char *&dcursor, const char *const dend)
Convenience function.
virtual bool finish(char *&dcursor, const char *const dend)=0
Call this method to finalize the output stream.
A wrapper class for the most commonly used encoding and decoding algorithms.
Definition kcharsets.h:27
QByteArray base64Decode(const QByteArray &in)
Decodes the given data that was encoded using the base64 algorithm.
QString decodeRFC2047String(const QString &text)
Decodes string text according to RFC2047, i.e., the construct =?charset?[qb]?encoded?...
CharsetOption
Charset options for RFC2047 encoder.
Definition kcodecs.h:291
@ ForceDefaultCharset
No special option.
Definition kcodecs.h:293
QByteArray base45Decode(const QByteArray &in)
Decodes the given data that was encoded using the base45 codec.
QByteArray quotedPrintableDecode(const QByteArray &in)
Decodes a quoted-printable encoded data.
QByteArray quotedPrintableEncode(const QByteArray &in, bool useCRLF=true)
Encodes the given data using the quoted-printable algorithm.
QByteArray uudecode(const QByteArray &in)
Decodes the given data using the uudecode algorithm.
QByteArray base64Encode(const QByteArray &in)
Encodes the given data using the base64 algorithm.
QByteArray encodeRFC2047String(const QString &src, const QByteArray &charset)
Encodes string src according to RFC2047 using charset charset.