VMime
parameterizedHeaderField Class Reference
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 ( )
protected

◆ ~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 parameterizedHeaderField::copyFrom(), and parameterizedHeaderField::getParameter().

◆ 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 parameterizedHeaderField::appendParameter(), vmime::clone(), headerField::copyFrom(), and parameterizedHeaderField::removeAllParameters().

Referenced by parameterizedHeaderField::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(), and contentDispositionField::getSize().

◆ 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().

◆ 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().

◆ 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().

◆ 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 parameterizedHeaderField::appendParameter(), vmime::end(), and stringUtils::toLower().

Referenced by 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'

◆ 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

◆ 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< parameter > > getParameterList ( ) const

Return the parameter list.

Returns
list of parameters

◆ 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(), 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

◆ 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

◆ isEmpty()

bool isEmpty ( ) const

Tests whether the list of parameters is empty.

Returns
true if there is no parameter, false otherwise

◆ 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 parameterizedHeaderField::copyFrom(), and parameterizedHeaderField::~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

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