|
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 |
Static Public Member Functions | |
| static MimeBody * | build (const char *buf, int len, const MimeHeaderLine &type) |
| static String * | getUnfoldedLine (const char *&buf, int &len) |
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 ~MimeBody | ( | ) | [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 |
| MimeBody | ( | const MimeHeaderLine & | type | ) | [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 |
| void appendHdr | ( | MimeHeaderLine * | hdr | ) | [inline] |
Append an additional header line to this body
| hdr | The header line to append |
References ObjList::append().
Get the binary data of this MIME body without building it.
| static MimeBody* build | ( | const char * | buf, |
| int | len, | ||
| const MimeHeaderLine & | type | ||
| ) | [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 |
| virtual void buildBody | ( | ) | const [protected, pure virtual] |
Method that is called internally to build the binary encoded body
Implemented in MimeLinesBody, MimeStringBody, MimeBinaryBody, MimeSdpBody, and MimeMultipartBody.
| void buildHeaders | ( | String & | buf | ) | [inline] |
Build a string with this body's header lines
| buf | Destination string |
References MimeHeaderLine::buildHeaders().
Duplicate this MIME body
Implemented in MimeLinesBody, MimeStringBody, MimeBinaryBody, MimeSdpBody, and MimeMultipartBody.
| 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 |
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 |
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 MimeLinesBody, MimeStringBody, MimeBinaryBody, MimeSdpBody, and MimeMultipartBody.
| 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 |
| const MimeHeaderLine& getType | ( | ) | const [inline] |
Retrieve the MIME type of this body
| static String* getUnfoldedLine | ( | const char *& | buf, |
| int & | len | ||
| ) | [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 |
Retrieve the additional headers of this MIME body (other then Content-Type)
| virtual bool isMultipart | ( | ) | const [inline, virtual] |
Check if this body is multipart (can hold other MIME bodies)
Reimplemented in MimeMultipartBody.
| virtual bool isSDP | ( | ) | const [inline, virtual] |
Check if this body is a Session Description Protocol
Reimplemented in MimeSdpBody.
| void removeHdr | ( | MimeHeaderLine * | hdr, |
| bool | delobj = true |
||
| ) | [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 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 |
Block of binary data that buildBody() must fill
1.7.6.1