VMime
parameterizedHeaderField Class Reference

#include <parameterizedHeaderField.hpp>

Inheritance diagram for parameterizedHeaderField:
Collaboration diagram for parameterizedHeaderField:

Public Member Functions

 ~parameterizedHeaderField ()
void copyFrom (const component &other)
parameterizedHeaderFieldoperator= (const parameterizedHeaderField &other)
bool hasParameter (const string &paramName) const
shared_ptr< parameterfindParameter (const string &paramName) const
shared_ptr< parametergetParameter (const string &paramName)
void appendParameter (shared_ptr< parameter > param)
void insertParameterBefore (shared_ptr< parameter > beforeParam, shared_ptr< parameter > param)
void insertParameterBefore (const size_t pos, shared_ptr< parameter > param)
void insertParameterAfter (shared_ptr< parameter > afterParam, shared_ptr< parameter > param)
void insertParameterAfter (const size_t pos, shared_ptr< parameter > param)
void removeParameter (shared_ptr< parameter > param)
void removeParameter (const size_t pos)
void removeAllParameters ()
size_t getParameterCount () const
bool isEmpty () const
const shared_ptr< parametergetParameterAt (const size_t pos)
const shared_ptr< const parametergetParameterAt (const size_t pos) const
const std::vector< shared_ptr< const parameter > > getParameterList () const
const std::vector< shared_ptr< parameter > > getParameterList ()
size_t getGeneratedSize (const generationContext &ctx)
const std::vector< shared_ptr< component > > getChildComponents ()
Public Member Functions inherited from headerField
 ~headerField ()
shared_ptr< componentclone () const
headerFieldoperator= (const headerField &other)
void setName (const string &name)
const string getName () const
bool isCustom () const
virtual shared_ptr< const headerFieldValuegetValue () const
template<typename T>
shared_ptr< const T > getValue () const
virtual shared_ptr< headerFieldValuegetValue ()
template<typename T>
shared_ptr< T > getValue ()
virtual void setValue (shared_ptr< headerFieldValue > value)
virtual void setValueConst (shared_ptr< const headerFieldValue > value)
virtual void setValue (const headerFieldValue &value)
void setValue (const string &value)
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

Protected Member Functions

 parameterizedHeaderField ()
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 headerField
 headerField ()
 headerField (const string &fieldName)
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 ()

Additional Inherited Members

Static Public Member Functions inherited from headerField
static shared_ptr< headerFieldparseNext (const parsingContext &ctx, const string &buffer, const size_t position, const size_t end, size_t *newPosition=NULL)
Protected Attributes inherited from headerField
string m_name
shared_ptr< headerFieldValuem_value

Detailed Description

A header field that can also contain parameters (name=value pairs).

Parameters can be created using vmime::parameterFactory.

Constructor & Destructor Documentation

◆ parameterizedHeaderField()

◆ ~parameterizedHeaderField()

Member Function Documentation

◆ appendParameter()

void appendParameter ( shared_ptr< parameter > param)

Add a parameter at the end of the list.

Parameters
paramparameter to append

Referenced by copyFrom(), getParameter(), headerFieldFactory, and parseImpl().

◆ copyFrom()

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

Reimplemented from headerField.

References appendParameter(), vmime::clone(), headerField::copyFrom(), parameterizedHeaderField(), and removeAllParameters().

Referenced by headerFieldFactory, and operator=().

◆ findParameter()

shared_ptr< parameter > findParameter ( const string & paramName) const

Find the first parameter that matches the specified name.

Parameter name is case-insensitive. If no parameter is found, NULL is returned.

Parameters
paramNameparameter name
Returns
first parameter with the specified name, or NULL if no parameter with this name exists

References vmime::end(), and stringUtils::toLower().

Referenced by contentTypeField::getBoundary(), contentTypeField::getCharset(), contentDispositionField::getCreationDate(), contentDispositionField::getFilename(), contentDispositionField::getModificationDate(), contentDispositionField::getReadDate(), contentTypeField::getReportType(), contentDispositionField::getSize(), and headerFieldFactory.

◆ generateImpl()

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

Reimplemented from headerField.

References headerField::generateImpl().

Referenced by headerFieldFactory.

◆ getChildComponents()

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

Return the list of children of this component.

Returns
list of child components

Reimplemented from headerField.

References headerField::getChildComponents().

Referenced by headerFieldFactory.

◆ getGeneratedSize()

size_t getGeneratedSize ( const generationContext & ctx)
virtual

Get the number of bytes that will be used by this component when it is generated.

This may be a heuristically-derived estimate, but such an estimated size should always be larger than the actual generated size.

Parameters
ctxgeneration context
Returns
component size when generated

Reimplemented from headerField.

References headerField::getGeneratedSize().

Referenced by headerFieldFactory.

◆ getParameter()

shared_ptr< parameter > getParameter ( const string & paramName)

Find the first parameter that matches the specified name.

Parameter name is case-insensitive. If no parameter is found, one will be created and inserted into the parameter list.

Parameters
paramNameparameter name
Returns
first parameter with the specified name or a new field if no parameter is found

References appendParameter(), vmime::end(), and stringUtils::toLower().

Referenced by headerFieldFactory, contentTypeField::setBoundary(), contentTypeField::setCharset(), contentDispositionField::setCreationDate(), contentDispositionField::setFilename(), contentDispositionField::setModificationDate(), contentDispositionField::setReadDate(), contentTypeField::setReportType(), and contentDispositionField::setSize().

◆ getParameterAt() [1/2]

const shared_ptr< parameter > getParameterAt ( const size_t pos)

Return the parameter at the specified position.

Parameters
posposition
Returns
parameter at position 'pos'

Referenced by headerFieldFactory.

◆ getParameterAt() [2/2]

const shared_ptr< const parameter > getParameterAt ( const size_t pos) const

Return the parameter at the specified position.

Parameters
posposition
Returns
parameter at position 'pos'

◆ getParameterCount()

size_t getParameterCount ( ) const

Return the number of parameters in the list.

Returns
number of parameters

Referenced by headerFieldFactory.

◆ getParameterList() [1/2]

const std::vector< shared_ptr< parameter > > getParameterList ( )

Return the parameter list.

Returns
list of parameters

◆ getParameterList() [2/2]

const std::vector< shared_ptr< const parameter > > getParameterList ( ) const

Return the parameter list.

Returns
list of parameters

Referenced by headerFieldFactory.

◆ hasParameter()

bool hasParameter ( const string & paramName) const

Checks whether (at least) one parameter with this name exists.

Parameter name is case-insensitive.

Parameters
paramNameparameter name
Returns
true if at least one parameter with the specified name exists, or false otherwise

References vmime::end(), and stringUtils::toLower().

Referenced by contentTypeField::hasBoundary(), contentTypeField::hasCharset(), contentDispositionField::hasCreationDate(), contentDispositionField::hasFilename(), contentDispositionField::hasModificationDate(), contentDispositionField::hasReadDate(), contentTypeField::hasReportType(), contentDispositionField::hasSize(), headerFieldFactory, and MDNHelper::isMDN().

◆ insertParameterAfter() [1/2]

void insertParameterAfter ( const size_t pos,
shared_ptr< parameter > param )

Insert a new parameter after the specified position.

Parameters
posposition of the parameter before the new parameter
paramparameter to insert
Exceptions
std::out_of_rangeif the position is out of range

◆ insertParameterAfter() [2/2]

void insertParameterAfter ( shared_ptr< parameter > afterParam,
shared_ptr< parameter > param )

Insert a new parameter after the specified parameter.

Parameters
afterParamparameter after which the new parameter will be inserted
paramparameter to insert
Exceptions
std::out_of_rangeif the parameter is not in the list

Referenced by headerFieldFactory.

◆ insertParameterBefore() [1/2]

void insertParameterBefore ( const size_t pos,
shared_ptr< parameter > param )

Insert a new parameter before the specified position.

Parameters
posposition at which to insert the new parameter (0 to insert at the beginning of the list)
paramparameter to insert
Exceptions
std::out_of_rangeif the position is out of range

◆ insertParameterBefore() [2/2]

void insertParameterBefore ( shared_ptr< parameter > beforeParam,
shared_ptr< parameter > param )

Insert a new parameter before the specified parameter.

Parameters
beforeParamparameter before which the new parameter will be inserted
paramparameter to insert
Exceptions
std::out_of_rangeif the parameter is not in the list

Referenced by headerFieldFactory.

◆ isEmpty()

bool isEmpty ( ) const

Tests whether the list of parameters is empty.

Returns
true if there is no parameter, false otherwise

Referenced by headerFieldFactory.

◆ operator=()

◆ parseImpl()

void parseImpl ( const parsingContext & ctx,
const string & buffer,
const size_t position,
const size_t end,
size_t * newPosition = NULL )
protectedvirtual

◆ removeAllParameters()

void removeAllParameters ( )

Remove all parameters from the list.

Referenced by copyFrom(), headerFieldFactory, parseImpl(), and ~parameterizedHeaderField().

◆ removeParameter() [1/2]

void removeParameter ( const size_t pos)

Remove the parameter at the specified position.

Parameters
posposition of the parameter to remove

◆ removeParameter() [2/2]

void removeParameter ( shared_ptr< parameter > param)

Remove the specified parameter from the list.

Parameters
paramparameter to remove
Exceptions
std::out_of_rangeif the parameter is not in the list

Referenced by headerFieldFactory.


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