VMime
encoding Class Reference
Inheritance diagram for encoding:
Collaboration diagram for encoding:

Public Types

enum  EncodingUsage { USAGE_UNKNOWN, USAGE_TEXT, USAGE_BINARY_DATA }
 

Public Member Functions

 encoding ()
 
 encoding (const string &name)
 
 encoding (const string &name, const EncodingUsage usage)
 
 encoding (const encoding &enc)
 
const stringgetName () const
 
void setName (const string &name)
 
EncodingUsage getUsage () const
 
void setUsage (const EncodingUsage usage)
 
encodingoperator= (const encoding &other)
 
encodingoperator= (const string &name)
 
bool operator== (const encoding &value) const
 
bool operator!= (const encoding &value) const
 
const std::vector< shared_ptr
< component > > 
getChildComponents ()
 
shared_ptr< componentclone () const
 
void copyFrom (const component &other)
 
shared_ptr
< utility::encoder::encoder
getEncoder () const
 
- Public Member Functions inherited from headerFieldValue
size_t getGeneratedSize (const generationContext &ctx)
 
- Public Member Functions inherited from component
 component ()
 
virtual ~component ()
 
void parse (const string &buffer)
 
void parse (const parsingContext &ctx, const string &buffer)
 
void parse (shared_ptr< utility::inputStream > inputStream, const size_t length)
 
void parse (const string &buffer, const size_t position, const size_t end, size_t *newPosition=NULL)
 
void parse (const parsingContext &ctx, const string &buffer, const size_t position, const size_t end, size_t *newPosition=NULL)
 
void parse (shared_ptr< utility::inputStream > inputStream, const size_t position, const size_t end, size_t *newPosition=NULL)
 
void parse (const parsingContext &ctx, shared_ptr< utility::inputStream > inputStream, const size_t position, const size_t end, size_t *newPosition=NULL)
 
virtual const string generate (const size_t maxLineLength=lineLengthLimits::infinite, const size_t curLinePos=0) const
 
virtual void generate (utility::outputStream &outputStream, const size_t curLinePos=0, size_t *newLinePos=NULL) const
 
virtual void generate (const generationContext &ctx, utility::outputStream &outputStream, const size_t curLinePos=0, size_t *newLinePos=NULL) const
 
size_t getParsedOffset () const
 
size_t getParsedLength () const
 

Static Public Member Functions

static const encoding decide (shared_ptr< const contentHandler > data, const EncodingUsage usage=USAGE_BINARY_DATA)
 
static const encoding decide (shared_ptr< const contentHandler > data, const charset &chset, const EncodingUsage usage=USAGE_BINARY_DATA)
 

Protected Member Functions

void parseImpl (const parsingContext &ctx, const string &buffer, const size_t position, const size_t end, size_t *newPosition=NULL)
 
void generateImpl (const generationContext &ctx, utility::outputStream &os, const size_t curLinePos=0, size_t *newLinePos=NULL) const
 
- Protected Member Functions inherited from component
void setParsedBounds (const size_t start, const size_t end)
 
virtual void parseImpl (const parsingContext &ctx, shared_ptr< utility::parserInputStreamAdapter > parser, const size_t position, const size_t end, size_t *newPosition=NULL)
 
- Protected Member Functions inherited from object
 object ()
 
 object (const object &)
 
objectoperator= (const object &)
 
virtual ~object ()
 

Detailed Description

Content encoding (basic type).

Member Enumeration Documentation

Enumerator
USAGE_UNKNOWN 
USAGE_TEXT 

Use for body text.

USAGE_BINARY_DATA 

Use for attachment, image...

Constructor & Destructor Documentation

encoding ( )
encoding ( const string name)
explicit
encoding ( const string name,
const EncodingUsage  usage 
)
encoding ( const encoding enc)

Member Function Documentation

shared_ptr< component > clone ( ) const
virtual

Clone this component.

Returns
a copy of this component

Implements component.

void copyFrom ( const component other)
virtual

Replace data in this component by data in other component.

Both components must be of the same type.

Exceptions
std::bad_cast_exceptionif the components are not of the same (dynamic) type
Parameters
otherother component to copy data from

Implements component.

Referenced by encoding::operator=().

const encoding decide ( shared_ptr< const contentHandler data,
const EncodingUsage  usage = USAGE_BINARY_DATA 
)
static

Decide which encoding to use based on the specified data.

Parameters
datadata used to determine encoding
usagecontext of use of data
Returns
suitable encoding for specified data

References vmime::encodingTypes::BASE64, outputStreamStringAdapter::flush(), and encoding::setUsage().

Referenced by htmlTextPart::addObject(), encoding::decide(), fileAttachment::fileAttachment(), plainTextPart::generateIn(), and htmlTextPart::generateIn().

const encoding decide ( shared_ptr< const contentHandler data,
const charset chset,
const EncodingUsage  usage = USAGE_BINARY_DATA 
)
static

Decide which encoding to use based on the specified data and charset.

Parameters
datadata used to determine encoding
chsetcharset of data
usagecontext of use of data
Returns
suitable encoding for specified data and charset

References encoding::decide(), charset::getRecommendedEncoding(), encoding::setUsage(), and encoding::USAGE_TEXT.

void generateImpl ( const generationContext ctx,
utility::outputStream os,
const size_t  curLinePos = 0,
size_t newLinePos = NULL 
) const
protectedvirtual

Implements component.

const std::vector< shared_ptr< component > > getChildComponents ( )
virtual

Return the list of children of this component.

Returns
list of child components

Implements component.

shared_ptr< utility::encoder::encoder > getEncoder ( ) const

Use encoderFactory to obtain an encoder/decoder object for the current encoding type.

Exceptions
exceptions::no_encoder_availableif no encoder is registered for the encoding
Returns
a new encoder object for the encoding type

References component::generate(), encoderFactory::getInstance(), vmime::encodingTypes::QUOTED_PRINTABLE, and encoding::USAGE_TEXT.

Referenced by stringContentHandler::extract(), streamContentHandler::extract(), IMAPMessagePartContentHandler::generate(), stringContentHandler::generate(), streamContentHandler::generate(), and body::getGeneratedSize().

const string & getName ( ) const

Return the name of the encoding.

See the constants in vmime::encodingTypes.

Returns
name of the encoding (eg. "quoted-printable")
encoding::EncodingUsage getUsage ( ) const

Return the type of contents this encoding is used for.

See the EncodingUsage enum.

bool operator!= ( const encoding value) const
encoding & operator= ( const encoding other)

References encoding::copyFrom().

encoding & operator= ( const string name)
bool operator== ( const encoding value) const
void parseImpl ( const parsingContext ctx,
const string buffer,
const size_t  position,
const size_t  end,
size_t newPosition = NULL 
)
protectedvirtual
void setName ( const string name)

Set the name of the encoding.

See the constants in vmime::encodingTypes.

Parameters
namename of the encoding
void setUsage ( const EncodingUsage  usage)

Set the type of contents this encoding is used for.

See the EncodingUsage enum.

Parameters
usagetype of contents

Referenced by encoding::decide().


The documentation for this class was generated from the following files: