# class MimeMultipartBody

MIME multipart container. More...

Full name | `TelEngine::MimeMultipartBody`
Definition | `#include <yatemime.h>`
Inherits | TelEngine::MimeBody [public ]
List of all Methods

Annotated List
Files
Globals
Hierarchy
Index

#### Public Methods

- explicit MimeMultipartBody (const char* subtype = "mixed", const char* boundary = 0)
- MimeMultipartBody (const String& type, const char* buf, int len)
- MimeMultipartBody (const MimeHeaderLine& type, const char* buf, int len)
- virtual ~MimeMultipartBody ()
- inline const ObjList& bodies () const
- inline void appendBody (MimeBody* body)
- inline void removeBody (MimeBody* body, bool delobj = true)
- MimeBody* findBody (const String& content, MimeBody** start = 0) const
- virtual void* getObject (const String& name) const
- virtual bool isMultipart () const
- virtual MimeBody* clone () const

#### Protected Methods

- MimeMultipartBody (const MimeMultipartBody& original)
- virtual void buildBody () const
- void parse (const char* buf, int len)

## Detailed Description

An object holding the bodies of a multipart MIME

explicit MimeMultipartBody (const char* subtype = "mixed", const char* boundary = 0)

### MimeMultipartBody

Constructor to build an empty multipart body

Parameters:

subtype | The multipart subtype
boundary | The string used as separator for enclosed bodies. A random one will be created if missing. The length will be truncated to 70 if this value is exceeded

MimeMultipartBody (const String& type, const char* buf, int len)

### MimeMultipartBody

Constructor from block of data

Parameters:

type | The value of the Content-Type header line
buf | Pointer to buffer of data
len | Length of data in buffer

MimeMultipartBody (const MimeHeaderLine& type, const char* buf, int len)

### MimeMultipartBody

Constructor from block of data

Parameters:

type | The content type header line
buf | Pointer to buffer of data
len | Length of data in buffer

~MimeMultipartBody ()

### ~MimeMultipartBody

[virtual]

Destructor

inline const ObjList& bodies ()

### bodies

[const]

Get the list of bodies enclosed contained in this multipart

Returns: The list of bodies enclosed contained in this multipart

inline void appendBody (MimeBody* body)

### appendBody

Append a body to this multipart

Parameters:

body | The body to append

inline void removeBody (MimeBody* body, bool delobj = true)

### removeBody

Remove a body from this multipart

Parameters:

body | The body to remove
delobj | True to delete the body, false to remove from list without deleting it

MimeBody* findBody (const String& content, MimeBody** start = 0)

### findBody

[const]

Find a body. Enclosed multiparts are also searched for the requested body

Parameters:

content | The value of the body to find. Must be lower case
start | The starting point in the list. 0 to start from the beginning. Be aware that this parameter is used internally to search within enclosed multipart bodies and set to 0 when the starting point is found

Returns: Pointer to MimeBody or 0 if not found

void* getObject (const String& name)

### getObject

[const virtual]

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

Parameters:

name | Name of the class we are asking for

Returns: Pointer to the requested class or NULL if this object doesn't implement it

Reimplemented from MimeBody.

bool isMultipart ()

### isMultipart

[const virtual]

Check if this body is multipart (can hold other MIME bodies)

Returns: True if this body is multipart

Reimplemented from MimeBody.

MimeBody* clone ()

### clone

[const virtual]

Duplicate this MIME body

Returns: Copy of this MIME body

Reimplemented from MimeBody.

MimeMultipartBody (const MimeMultipartBody& original)

### MimeMultipartBody

[protected]

Copy constructor

void buildBody ()

### buildBody

[protected const virtual]

Method that is called internally to build the binary encoded body

Reimplemented from MimeBody.

void parse (const char* buf, int len)

### parse

[protected]

Parse a data buffer and append any valid body to this multipart Ignore prolog, epilog and invalid bodies

Parameters:

buf | Pointer to buffer of data
len | Length of data in buffer

Generated by: paulc on bussard on Fri Dec 21 16:28:34 2012, using kdoc 2.0a54.