|  |  |  | Camel Reference Manual |  | 
|---|---|---|---|---|
struct CamelDataWrapper; CamelDataWrapper* camel_data_wrapper_new (void); ssize_t camel_data_wrapper_write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream); ssize_t camel_data_wrapper_decode_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream); void camel_data_wrapper_set_mime_type (CamelDataWrapper *data_wrapper, const char *mime_type); char* camel_data_wrapper_get_mime_type (CamelDataWrapper *data_wrapper); CamelContentType* camel_data_wrapper_get_mime_type_field (CamelDataWrapper *data_wrapper); void camel_data_wrapper_set_mime_type_field (CamelDataWrapper *data_wrapper, CamelContentType *mime_type); int camel_data_wrapper_construct_from_stream (CamelDataWrapper *data_wrapper, CamelStream *stream); gboolean camel_data_wrapper_is_offline (CamelDataWrapper *data_wrapper);
struct CamelDataWrapper {
	CamelObject parent_object;
	struct _CamelDataWrapperPrivate *priv;
	
	CamelTransferEncoding encoding;
	
	CamelContentType *mime_type;
	CamelStream *stream;
	
	unsigned int offline:1;
};
CamelDataWrapper* camel_data_wrapper_new (void);
Create a new CamelDataWrapper object.
| Returns : | a new CamelDataWrapper object | 
ssize_t camel_data_wrapper_write_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream);
Writes the content of data_wrapper to stream in a machine-independent
format appropriate for the data. It should be possible to construct an
equivalent data wrapper object later by passing this stream to
camel_data_wrapper_construct_from_stream.
| data_wrapper: | a CamelDataWrapper object | 
| stream: | a CamelStream for output | 
| Returns : | the number of bytes written, or -1on fail | 
ssize_t camel_data_wrapper_decode_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream);
Writes the decoded data content to stream.
| data_wrapper: | a CamelDataWrapper object | 
| stream: | a CamelStream for decoded data to be written to | 
| Returns : | the number of bytes written, or -1on fail | 
void camel_data_wrapper_set_mime_type (CamelDataWrapper *data_wrapper, const char *mime_type);
This sets the data wrapper's MIME type.
It might fail, but you won't know. It will allow you to set Content-Type parameters on the data wrapper, which are meaningless. You should not be allowed to change the MIME type of a data wrapper that contains data, or at least, if you do, it should invalidate the data.
| data_wrapper: | a CamelDataWrapper object | 
| mime_type: | a MIME type | 
char* camel_data_wrapper_get_mime_type (CamelDataWrapper *data_wrapper);
| data_wrapper: | a CamelDataWrapper object | 
| Returns : | the MIME type which must be freed by the caller | 
CamelContentType*   camel_data_wrapper_get_mime_type_field
                                                        (CamelDataWrapper *data_wrapper);
| data_wrapper: | a CamelDataWrapper object | 
| Returns : | the parsed form of the data wrapper's MIME type | 
void                camel_data_wrapper_set_mime_type_field
                                                        (CamelDataWrapper *data_wrapper,
                                                         CamelContentType *mime_type);
This sets the data wrapper's MIME type. It suffers from the same flaws as camel_data_wrapper_set_mime_type.
| data_wrapper: | a CamelDataWrapper object | 
| mime_type: | a CamelContentType | 
int                 camel_data_wrapper_construct_from_stream
                                                        (CamelDataWrapper *data_wrapper,
                                                         CamelStream *stream);
Constructs the content of data_wrapper from the supplied stream.
| data_wrapper: | a CamelDataWrapper object | 
| stream: | an input CamelStream | 
| Returns : | 0on success or-1on fail | 
gboolean camel_data_wrapper_is_offline (CamelDataWrapper *data_wrapper);
| data_wrapper: | a CamelDataWrapper object | 
| Returns : | whether data_wrapperis "offline" (data stored
remotely) or not. Some optional code paths may choose to not
operate on offline data. |