CamelDataWrapper

CamelDataWrapper

Synopsis

struct              CamelDataWrapper;
CamelDataWrapper *  camel_data_wrapper_new              (void);
gssize              camel_data_wrapper_write_to_stream  (CamelDataWrapper *data_wrapper,
                                                         CamelStream *stream);
gssize              camel_data_wrapper_decode_to_stream (CamelDataWrapper *data_wrapper,
                                                         CamelStream *stream);
void                camel_data_wrapper_set_mime_type    (CamelDataWrapper *data_wrapper,
                                                         const gchar *mime_type);
gchar *             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);
gint                camel_data_wrapper_construct_from_stream
                                                        (CamelDataWrapper *data_wrapper,
                                                         CamelStream *stream);
gboolean            camel_data_wrapper_is_offline       (CamelDataWrapper *data_wrapper);

Description

Details

struct CamelDataWrapper

struct CamelDataWrapper {
	CamelObject parent_object;
	struct _CamelDataWrapperPrivate *priv;

	CamelTransferEncoding encoding;

	CamelContentType *mime_type;
	CamelStream *stream;

	guint offline:1;
};


camel_data_wrapper_new ()

CamelDataWrapper *  camel_data_wrapper_new              (void);

Create a new CamelDataWrapper object.

Returns :

a new CamelDataWrapper object

camel_data_wrapper_write_to_stream ()

gssize              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 -1 on fail

camel_data_wrapper_decode_to_stream ()

gssize              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 -1 on fail

camel_data_wrapper_set_mime_type ()

void                camel_data_wrapper_set_mime_type    (CamelDataWrapper *data_wrapper,
                                                         const gchar *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

camel_data_wrapper_get_mime_type ()

gchar *             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

camel_data_wrapper_get_mime_type_field ()

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

camel_data_wrapper_set_mime_type_field ()

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

camel_data_wrapper_construct_from_stream ()

gint                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 :

0 on success or -1 on fail

camel_data_wrapper_is_offline ()

gboolean            camel_data_wrapper_is_offline       (CamelDataWrapper *data_wrapper);

data_wrapper :

a CamelDataWrapper object

Returns :

whether data_wrapper is "offline" (data stored remotely) or not. Some optional code paths may choose to not operate on offline data.