KMime::Codec Class Reference
Abstract base class of codecs like base64 and quoted-printable.Codecs for common mail transfer encodings. More...
#include <kmime_codecs.h>
Collaboration diagram for KMime::Codec:

Public Member Functions | |
virtual int | maxEncodedSizeFor (int insize, bool withCRLF=false) const =0 |
virtual int | maxDecodedSizeFor (int insize, bool withCRLF=false) const =0 |
virtual Encoder * | makeEncoder (bool withCRLF=false) const =0 |
virtual Decoder * | makeDecoder (bool withCRLF=false) const =0 |
virtual bool | encode (const char *&scursor, const char *const send, char *&dcursor, const char *const dend, bool withCRLF=false) const |
virtual bool | decode (const char *&scursor, const char *const send, char *&dcursor, const char *const dend, bool withCRLF=false) const |
virtual QByteArray | encode (const QByteArray &src, bool withCRLF=false) const |
virtual QCString | encodeToQCString (const QByteArray &src, bool withCRLF=false) const |
virtual QByteArray | decode (const QByteArray &src, bool withCRLF=false) const |
virtual const char * | name () const =0 |
Static Public Member Functions | |
static Codec * | codecForName (const char *name) |
static Codec * | codecForName (const QCString &name) |
Static Protected Attributes | |
static QAsciiDict< Codec > | all |
Detailed Description
Abstract base class of codecs like base64 and quoted-printable.Codecs for common mail transfer encodings.It's a singleton.
- Author:
- Marc Mutz <mutz@kde.org>
Definition at line 56 of file kmime_codecs.h.
Member Function Documentation
|
Convenience wrapper that can be used for small chunks of data when you can provide a large enough buffer. The default implementation creates an Encoder and uses it.
Encodes a chunk of bytes starting at This function doesn't support chaining of blocks. The returned block cannot be added to, but you don't need to finalize it, too.
Example usage ( KMime::Codec * codec = KMime::Codec::codecForName( "base64" ); kdFatal( !codec ) << "no base64 codec found!?" << endl; QByteArray out( in.size()*1.4 ); // crude maximal size of b64 encoding QByteArray::Iterator iit = in.begin(); QByteArray::Iterator oit = out.begin(); if ( !codec->encode( iit, in.end(), oit, out.end() ) ) { kdDebug() << "output buffer too small" << endl; return; } kdDebug() << "Size of encoded data: " << oit - out.begin() << endl;
Definition at line 94 of file kmime_codecs.cpp. References KMime::Encoder::encode(), and KMime::Encoder::finish(). Referenced by encode(), and encodeToQCString(). |
|
Convenience wrapper that can be used for small chunks of data when you can provide a large enough buffer. The default implementation creates a Decoder and uses it.
Decodes a chunk of bytes starting at This function doesn't support chaining of blocks. The returned block cannot be added to, but you don't need to finalize it, too.
Example usage ( KMime::Codec * codec = KMime::Codec::codecForName( "base64" ); kdFatal( !codec ) << "no base64 codec found!?" << endl; QByteArray out( in.size() ); // good guess for any encoding... QByteArray::Iterator iit = in.begin(); QByteArray::Iterator oit = out.begin(); if ( !codec->decode( iit, in.end(), oit, out.end() ) ) { kdDebug() << "output buffer too small" << endl; return; } kdDebug() << "Size of decoded data: " << oit - out.begin() << endl;
Definition at line 187 of file kmime_codecs.cpp. References KMime::Decoder::decode(), and KMime::Decoder::finish(). Referenced by decode(). |
|
Even more convenient, but also a bit slower and more memory intensive, since it allocates storage for the worst case and then shrinks the result QByteArray to the actual size again.
For use with small Definition at line 121 of file kmime_codecs.cpp. |
|
Even more convenient, but also a bit slower and more memory intensive, since it allocates storage for the worst case and then shrinks the result QCString to the actual size again.
For use with small This method only works for codecs whose output is in the 8bit domain (ie. not in the binary domain). Codecs that do not fall into this category will return a null QCString. Definition at line 143 of file kmime_codecs.cpp. |
|
Even more convenient, but also a bit slower and more memory intensive, since it allocates storage for the worst case and then shrinks the result QByteArray to the actual size again.
For use with small Definition at line 165 of file kmime_codecs.cpp. |
|
Referenced by decode(), encode(), and encodeToQCString(). |
The documentation for this class was generated from the following files: