| Top |
A GMimeDataWrapper is a wrapper object for a GMimePart's body, allowing clients to read the content from the backing stream without having to know whether it is encoded/compressed/etc and not neding to know how to undo said encoding(s).
GMimeDataWrapper *
g_mime_data_wrapper_new (void);
Creates a new GMimeDataWrapper object.
GMimeDataWrapper * g_mime_data_wrapper_new_with_stream (GMimeStream *stream,GMimeContentEncoding encoding);
Creates a new GMimeDataWrapper object around stream
.
void g_mime_data_wrapper_set_stream (GMimeDataWrapper *wrapper,GMimeStream *stream);
Replaces the wrapper's internal stream with stream
. Don't forget,
if stream
is not of the same encoding as the old stream, you'll
want to call g_mime_data_wrapper_set_encoding() as well.
Note: caller is responsible for its own reference on
stream
.
GMimeStream *
g_mime_data_wrapper_get_stream (GMimeDataWrapper *wrapper);
Gets a reference to the stream wrapped by wrapper
.
void g_mime_data_wrapper_set_encoding (GMimeDataWrapper *wrapper,GMimeContentEncoding encoding);
Sets the encoding type of the internal stream.
GMimeContentEncoding
g_mime_data_wrapper_get_encoding (GMimeDataWrapper *wrapper);
Gets the encoding type of the stream wrapped by wrapper
.
ssize_t g_mime_data_wrapper_write_to_stream (GMimeDataWrapper *wrapper,GMimeStream *stream);
Writes the raw (decoded) data to the output stream.
struct GMimeDataWrapper {
GObject parent_object;
GMimeContentEncoding encoding;
GMimeStream *stream;
};
A wrapper for a stream which may be encoded.
GObject |
parent GObject |
|
GMimeContentEncoding |
the encoding of the content |
|
GMimeStream * |
content stream |