|
Yate
|
Abstract MIME data holder. More...
#include <yatemime.h>
Public Member Functions | |
| virtual | ~MimeBody () |
| virtual void * | getObject (const String &name) const |
| const MimeHeaderLine & | getType () const |
| MimeBody * | getFirst (const String &type) const |
| const ObjList & | headers () const |
| void | appendHdr (MimeHeaderLine *hdr) |
| void | removeHdr (MimeHeaderLine *hdr, bool delobj=true) |
| MimeHeaderLine * | findHdr (const String &name, const MimeHeaderLine *start=0) const |
| void | buildHeaders (String &buf) |
| bool | setParam (const char *name, const char *value=0, const char *header=0) |
| bool | delParam (const char *name, const char *header=0) |
| const NamedString * | getParam (const char *name, const char *header=0) const |
| const DataBlock & | getBody () const |
| const DataBlock & | body () const |
| virtual bool | isSDP () const |
| virtual bool | isMultipart () const |
| virtual MimeBody * | clone () const =0 |
Public Member Functions inherited from GenObject | |
| GenObject () | |
| virtual | ~GenObject () |
| virtual bool | alive () const |
| virtual void | destruct () |
| virtual const String & | toString () const |
| virtual const String & | traceId () const |
| NamedCounter * | getObjCounter () const |
| NamedCounter * | setObjCounter (NamedCounter *counter) |
Static Public Member Functions | |
| static MimeBody * | build (const char *buf, int len, const MimeHeaderLine &type) |
| static String * | getUnfoldedLine (const char *&buf, int &len) |
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 NamedCounter * | getObjCounter (const String &name, bool create=true) |
| static ObjList & | getObjCounters () |
Protected Member Functions | |
| MimeBody (const String &type) | |
| MimeBody (const MimeHeaderLine &type) | |
| virtual void | buildBody () const =0 |
Protected Attributes | |
| DataBlock | m_body |
| ObjList | m_headers |
Abstract MIME data holder.
Abstract base class for holding Multipurpose Internet Mail Extensions data. Keeps a Content-Type header line with body type and parameters and any additional header lines the body may have. The body type contains lower case characters.
|
virtual |
Destructor
Constructor to be used only by derived classes. Converts the MIME type string to lower case
| type | The value of the Content-Type header line |
|
protected |
Constructor to be used only by derived classes. Builds this body from a header line. Converts the MIME type string to lower case
| type | The content type header line |
|
inline |
Append an additional header line to this body
| hdr | The header line to append |
References ObjList::append(), and MimeBody::m_headers.
|
inline |
Get the binary data of this MIME body without building it.
References MimeBody::m_body.
Referenced by MimeMultipartBody::appendBody(), and MimeMultipartBody::removeBody().
|
static |
Method to build a MIME body from a type and data buffer. Unknown body types are built into a binary body. Exactly 1 leading CRLF is removed from the beginning of the buffer if found before building it
| buf | Pointer to buffer of data just after the body headers |
| len | Length of data in buffer |
| type | The header line declaring the body's content. Usually this is a Content-Type header line |
|
protectedpure virtual |
Method that is called internally to build the binary encoded body
Implemented in MimeBinaryBody, MimeLinesBody, MimeMultipartBody, MimeSdpBody, and MimeStringBody.
|
inline |
Build a string with this body's header lines
| buf | Destination string |
References MimeHeaderLine::buildHeaders(), MimeHeaderLine::buildLine(), and MimeBody::m_headers.
|
pure virtual |
Duplicate this MIME body
Implemented in MimeBinaryBody, MimeLinesBody, MimeMultipartBody, MimeSdpBody, and MimeStringBody.
| bool delParam | ( | const char * | name, |
| const char * | header = 0 ) |
Remove a header parameter
| name | Parameter's name |
| header | Header whose parameter will be removed. Set to 0 to use the body's content type header |
| MimeHeaderLine * findHdr | ( | const String & | name, |
| const MimeHeaderLine * | start = 0 ) const |
Find an additional header line by its name. The names are compared case insensitive
| name | The name of the header to find |
| start | The starting point in the list. 0 to start from the beginning |
| const DataBlock & getBody | ( | ) | const |
Retrieve the binary encoding of this MIME body. Build the body if empty. The body doesn't contain the Content-Type header or the additional headers
Get the first body that matches a requested type, descends into multiparts
| type | Name of the MIME type to search for |
|
virtual |
RTTI method, get a pointer to a derived class given the class name
| name | Name of the class we are asking for |
Reimplemented from GenObject.
Reimplemented in MimeBinaryBody, MimeLinesBody, MimeMultipartBody, MimeSdpBody, and MimeStringBody.
| const NamedString * getParam | ( | const char * | name, |
| const char * | header = 0 ) const |
Get a header parameter
| name | Parameter's name |
| header | Header whose parameter will be retrieved. Set to 0 to use the body's content type header |
|
inline |
Retrieve the MIME type of this body
|
static |
Utility method, returns an unfolded line and advances the pointer
| buf | Reference to pointer to start of buffer data |
| len | Reference to variable holding buffer length |
|
inline |
Retrieve the additional headers of this MIME body (other then Content-Type)
References MimeBody::m_headers.
|
inlinevirtual |
Check if this body is multipart (can hold other MIME bodies)
Reimplemented in MimeMultipartBody.
|
inlinevirtual |
Check if this body is a Session Description Protocol
Reimplemented in MimeSdpBody.
|
inline |
Remove an additional header line from this body
| hdr | The header line to remove |
| delobj | True to delete the header, false to remove from list without deleting it |
References MimeBody::m_headers, and ObjList::remove().
| bool setParam | ( | const char * | name, |
| const char * | value = 0, | ||
| const char * | header = 0 ) |
Replace the value of an existing parameter or add a new one
| name | Parameter's name |
| value | Parameter's value |
| header | Header whose parameter will be changed. Set to 0 to use the body's content type header |
|
mutableprotected |
Block of binary data that buildBody() must fill
Referenced by MimeBody::body().
|
protected |
Additional body headers (other then Content-Type)
Referenced by MimeBody::appendHdr(), MimeBody::buildHeaders(), MimeBody::headers(), and MimeBody::removeHdr().