Yate
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
MimeHeaderLine Class Reference

MIME header line. More...

#include <yatemime.h>

Inheritance diagram for MimeHeaderLine:
NamedString String GenObject MimeAuthLine

Public Member Functions

 MimeHeaderLine (const char *name, const String &value, char sep=0)
 
 MimeHeaderLine (const MimeHeaderLine &original, const char *newName=0)
 
virtual ~MimeHeaderLine ()
 
virtual void * getObject (const String &name) const
 
virtual MimeHeaderLineclone (const char *newName=0) const
 
virtual void buildLine (String &line, bool header=true) const
 
MimeHeaderLineoperator= (const char *value)
 
const ObjListparams () const
 
char separator () const
 
void setParam (const char *name, const char *value=0)
 
void delParam (const char *name)
 
const NamedStringgetParam (const char *name) const
 
- Public Member Functions inherited from NamedString
 NamedString (const char *name, const char *value=0)
 
const Stringname () const
 
virtual const StringtoString () const
 
NamedStringoperator= (const char *value)
 
- Public Member Functions inherited from String
 String ()
 
 String (const char *value, int len=-1)
 
 String (char value, unsigned int repeat=1)
 
 String (int32_t value)
 
 String (uint32_t value)
 
 String (int64_t value)
 
 String (uint64_t value)
 
 String (bool value)
 
 String (double value)
 
 String (const String &value)
 
 String (const String *value)
 
virtual ~String ()
 
const char * c_str () const
 
const char * safe () const
 
const char * safe (const char *defStr) const
 
unsigned int length () const
 
bool null () const
 
int lenUtf8 (uint32_t maxChar=0x10ffff, bool overlong=false) const
 
int fixUtf8 (const char *replace=0, uint32_t maxChar=0x10ffff, bool overlong=false)
 
bool checkBOM () const
 
bool stripBOM ()
 
unsigned int hash () const
 
void clear ()
 
char at (int index) const
 
String substr (int offs, int len=-1) const
 
StringtrimBlanks ()
 
StringtrimSpaces ()
 
int toInteger (int defvalue=0, int base=0, int minvalue=INT_MIN, int maxvalue=INT_MAX, bool clamp=true) const
 
int toInteger (const TokenDict *tokens, int defvalue=0, int base=0) const
 
long int toLong (long int defvalue=0, int base=0, long int minvalue=LONG_MIN, long int maxvalue=LONG_MAX, bool clamp=true) const
 
int64_t toInt64 (int64_t defvalue=0, int base=0, int64_t minvalue=LLONG_MIN, int64_t maxvalue=LLONG_MAX, bool clamp=true) const
 
double toDouble (double defvalue=0.0) const
 
bool toBoolean (bool defvalue=false) const
 
bool isBoolean () const
 
StringtoUpper ()
 
StringtoLower ()
 
char operator[] (signed int index) const
 
char operator[] (unsigned int index) const
 
 operator const char * () const
 
Stringassign (const char *value, int len=-1)
 
Stringassign (char value, unsigned int repeat=1)
 
Stringhexify (void *data, unsigned int len, char sep=0, bool upCase=false)
 
Stringoperator= (const String &value)
 
Stringoperator= (const String *value)
 
Stringoperator= (const char *value)
 
Stringoperator= (char value)
 
Stringoperator= (int32_t value)
 
Stringoperator= (uint32_t value)
 
Stringoperator= (int64_t value)
 
Stringoperator= (uint64_t value)
 
Stringoperator= (bool value)
 
Stringoperator= (double value)
 
Stringoperator+= (const char *value)
 
Stringoperator+= (char value)
 
Stringoperator+= (int32_t value)
 
Stringoperator+= (uint32_t value)
 
Stringoperator+= (int64_t value)
 
Stringoperator+= (uint64_t value)
 
Stringoperator+= (bool value)
 
Stringoperator+= (double value)
 
bool operator== (const char *value) const
 
bool operator!= (const char *value) const
 
bool operator== (const String &value) const
 
bool operator!= (const String &value) const
 
bool operator&= (const char *value) const
 
bool operator|= (const char *value) const
 
Stringoperator<< (const char *value)
 
Stringoperator<< (char value)
 
Stringoperator<< (int32_t value)
 
Stringoperator<< (uint32_t value)
 
Stringoperator<< (int64_t value)
 
Stringoperator<< (uint64_t value)
 
Stringoperator<< (bool value)
 
Stringoperator<< (double value)
 
Stringoperator>> (const char *skip)
 
Stringoperator>> (char &store)
 
Stringoperator>> (UChar &store)
 
Stringoperator>> (int &store)
 
Stringoperator>> (unsigned int &store)
 
Stringoperator>> (bool &store)
 
Stringappend (const char *value, int len)
 
Stringappend (const char *value, const char *separator=0, bool force=false)
 
Stringappend (const ObjList *list, const char *separator=0, bool force=false)
 
Stringappend (const ObjList &list, const char *separator=0, bool force=false)
 
Stringappend (double value, unsigned int decimals=3)
 
Stringprintf (const char *format,...)
 
Stringprintf (unsigned int length, const char *format,...)
 
StringappendFixed (unsigned int fixedLength, const char *str, unsigned int len=-1, char fill= ' ', int align=Left)
 
StringappendFixed (unsigned int fixedLength, const String &str, char fill= ' ', int align=Left)
 
int find (char what, unsigned int offs=0) const
 
int find (const char *what, unsigned int offs=0) const
 
int rfind (char what) const
 
int rfind (const char *what) const
 
bool startsWith (const char *what, bool wordBreak=false, bool caseInsensitive=false) const
 
bool endsWith (const char *what, bool wordBreak=false, bool caseInsensitive=false) const
 
bool startSkip (const char *what, bool wordBreak=true, bool caseInsensitive=false)
 
StringextractTo (const char *sep, String &store)
 
StringextractTo (const char *sep, bool &store)
 
StringextractTo (const char *sep, int &store, int base=0)
 
StringextractTo (const char *sep, int &store, const TokenDict *tokens, int base=0)
 
StringextractTo (const char *sep, double &store)
 
virtual bool matches (const String &value) const
 
bool matches (const Regexp &rexp)
 
int matchOffset (int index=0) const
 
int matchLength (int index=0) const
 
String matchString (int index=0) const
 
String replaceMatches (const String &templ) const
 
int matchCount () const
 
ObjListsplit (char separator, bool emptyOK=true) const
 
String msgEscape (char extraEsc=0) const
 
String msgUnescape (int *errptr=0, char extraEsc=0) const
 
String sqlEscape (char extraEsc=0) const
 
String uriEscape (char extraEsc=0, const char *noEsc=0) const
 
String uriUnescape (int *errptr=0) const
 
- Public Member Functions inherited from GenObject
 GenObject ()
 
virtual ~GenObject ()
 
virtual bool alive () const
 
virtual void destruct ()
 
NamedCountergetObjCounter () const
 
NamedCountersetObjCounter (NamedCounter *counter)
 

Static Public Member Functions

static void addQuotes (String &str, bool force=false)
 
static void delQuotes (String &str, bool force=false)
 
static String quote (const String &str, bool force=false)
 
static String unquote (const String &str, bool force=false)
 
static int findSep (const char *str, char sep, int offs=0)
 
static void buildHeaders (String &buf, const ObjList &headers)
 
- Static Public Member Functions inherited from String
static const Stringempty ()
 
static const char * boolText (bool value)
 
static int lenUtf8 (const char *value, uint32_t maxChar=0x10ffff, bool overlong=false)
 
static bool checkBOM (const char *str)
 
static bool stripBOM (const char *&str)
 
static bool stripBOM (char *&str)
 
static unsigned int hash (const char *value, unsigned int h=0)
 
static String msgEscape (const char *str, char extraEsc=0)
 
static String msgUnescape (const char *str, int *errptr=0, char extraEsc=0)
 
static String sqlEscape (const char *str, char extraEsc=0)
 
static String uriEscape (const char *str, char extraEsc=0, const char *noEsc=0)
 
static String uriEscape (const char *str, const char *extraEsc, const char *noEsc=0)
 
static String uriUnescape (const char *str, int *errptr=0)
 
static const Stringatom (const String *&str, const char *val)
 
- Static Public Member Functions inherited from GenObject
static void * getObject (const String &name, const GenObject *obj)
 
static bool getObjCounting ()
 
static void setObjCounting (bool enable)
 
static NamedCountergetObjCounter (const String &name, bool create=true)
 
static ObjListgetObjCounters ()
 

Protected Attributes

ObjList m_params
 
char m_separator
 

Additional Inherited Members

- Public Types inherited from String
enum  Align { Left = 0, Center, Right }
 
- Protected Member Functions inherited from String
virtual void changed ()
 

Detailed Description

MIME header line.

A MIME header line. The NamedString's value contain the first parameter after the header name

Constructor & Destructor Documentation

MimeHeaderLine ( const char *  name,
const String value,
char  sep = 0 
)

Constructor. Builds a MIME header line from a string buffer. Splits the value into header parameters

Parameters
nameThe header name
valueThe header value
sepOptional parameter separator. If 0, the default ';' will be used
MimeHeaderLine ( const MimeHeaderLine original,
const char *  newName = 0 
)

Constructor. Builds this MIME header line from another one

Parameters
originalOriginal header line to build from.
newNameOptional new header name. If 0, the original name will be used
virtual ~MimeHeaderLine ( )
virtual

Destructor.

Member Function Documentation

static void addQuotes ( String str,
bool  force = false 
)
static

Utility function, puts quotes around a string.

Parameters
strString to put quotes around.
forceTrue to force quoting even if was already quoted
static void buildHeaders ( String buf,
const ObjList headers 
)
static

Build a string from a list of MIME header lines. Add a CR/LF terminator after each line

Parameters
bufDestination string
headersThe list with the header lines

Referenced by MimeBody::buildHeaders().

virtual void buildLine ( String line,
bool  header = true 
) const
virtual

Build a string line from this MIME header without adding a line separator

Parameters
lineDestination string
headerTrue to add the header in front of line text

Reimplemented in MimeAuthLine.

Referenced by MimeBody::buildHeaders().

virtual MimeHeaderLine* clone ( const char *  newName = 0) const
virtual

Duplicate this MIME header line.

Parameters
newNameOptional new header name. If 0, this header's name will be used
Returns
Copy of this MIME header line

Reimplemented in MimeAuthLine.

void delParam ( const char *  name)

Remove a parameter from list

Parameters
nameParameter's name
static void delQuotes ( String str,
bool  force = false 
)
static

Utility function, removes quotes around a string.

Parameters
strString to remove quotes.
forceTrue to force unquoting even if wasn't properly quoted
static int findSep ( const char *  str,
char  sep,
int  offs = 0 
)
static

Utility function to find a separator not in "quotes" or inside <uri>.

Parameters
strInput string used to find the separator.
sepThe separator to find.
offsStarting offset in input string.
Returns
The position of the separator in input string or -1 if not found.
virtual void* getObject ( const String name) const
virtual

RTTI method, get a pointer to a derived class given the class name.

Parameters
nameName of the class we are asking for
Returns
Pointer to the requested class or NULL if this object doesn't implement it

Reimplemented from NamedString.

Reimplemented in MimeAuthLine.

const NamedString* getParam ( const char *  name) const

Get a header parameter

Parameters
nameParameter's name
Returns
Pointer to the desired parameter or 0 if not found
MimeHeaderLine& operator= ( const char *  value)
inline

Assignement operator. Set the header's value

Parameters
valueThe new headr value

References NamedString::operator=().

const ObjList& params ( ) const
inline

Get the header's parameters

Returns
This header's list of parameters
static String quote ( const String str,
bool  force = false 
)
static

Utility function, puts quotes around a string.

Parameters
strString to put quotes around.
forceTrue to force quoting even if was already quoted
Returns
The input string enclosed in quotes.
char separator ( ) const
inline

Get the character used as separator in header line

Returns
This header's separator
void setParam ( const char *  name,
const char *  value = 0 
)

Replace the value of an existing parameter or add a new one

Parameters
nameParameter's name
valueParameter's value
static String unquote ( const String str,
bool  force = false 
)
static

Utility function, removes quotes around a string.

Parameters
strString to remove quotes around.
forceTrue to force unquoting even if wasn't properly quoted
Returns
The input string with enclosing quotes removed.

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