Top |
Functions
void | (*GMimeParserHeaderRegexFunc) () |
GMimeParser * | g_mime_parser_new () |
GMimeParser * | g_mime_parser_new_with_stream () |
void | g_mime_parser_init_with_stream () |
gboolean | g_mime_parser_get_persist_stream () |
void | g_mime_parser_set_persist_stream () |
GMimeFormat | g_mime_parser_get_format () |
void | g_mime_parser_set_format () |
gboolean | g_mime_parser_get_respect_content_length () |
void | g_mime_parser_set_respect_content_length () |
void | g_mime_parser_set_header_regex () |
gint64 | g_mime_parser_tell () |
gboolean | g_mime_parser_eos () |
GMimeObject * | g_mime_parser_construct_part () |
GMimeMessage * | g_mime_parser_construct_message () |
char * | g_mime_parser_get_mbox_marker () |
gint64 | g_mime_parser_get_mbox_marker_offset () |
gint64 | g_mime_parser_get_headers_begin () |
gint64 | g_mime_parser_get_headers_end () |
Description
A GMimeParser parses a stream into a GMimeMessage or other GMimeObject and can also handle parsing MBox formatted streams into multiple GMimeMessage objects.
Functions
GMimeParserHeaderRegexFunc ()
void (*GMimeParserHeaderRegexFunc) (GMimeParser *parser
,const char *header
,const char *value
,gint64 offset
,gpointer user_data
);
Function signature for the callback to
g_mime_parser_set_header_regex()
.
Parameters
parser |
The GMimeParser object. |
|
header |
The header field matched. |
|
value |
The header field value. |
|
offset |
The header field offset. |
|
user_data |
The user-supplied callback data. |
g_mime_parser_new_with_stream ()
GMimeParser *
g_mime_parser_new_with_stream (GMimeStream *stream
);
Creates a new parser object preset to parse stream
.
g_mime_parser_init_with_stream ()
void g_mime_parser_init_with_stream (GMimeParser *parser
,GMimeStream *stream
);
Initializes parser
to use stream
.
WARNING: Initializing a parser with a stream is comparable to
selling your soul (stream
) to the devil (parser
). You are
basically giving the parser complete control of the stream, this
means that you had better not touch the stream so long as the
parser is still using it. This means no reading, writing, seeking,
or resetting of the stream. Anything that will/could change the
current stream's offset is PROHIBITED.
It is also recommended that you not use g_mime_stream_tell()
because it will not necessarily give you the current parser
offset
since parser
handles its own internal read-ahead buffer. Instead,
it is recommended that you use g_mime_parser_tell()
if you have a
reason to need the current offset of the parser
.
g_mime_parser_get_persist_stream ()
gboolean
g_mime_parser_get_persist_stream (GMimeParser *parser
);
Gets whether or not the underlying stream is persistent.
g_mime_parser_set_persist_stream ()
void g_mime_parser_set_persist_stream (GMimeParser *parser
,gboolean persist
);
Sets whether or not the parser
's underlying stream is persistent.
If persist
is TRUE
, the parser
will attempt to construct
messages/parts whose content will remain on disk rather than being
loaded into memory so as to reduce memory usage. This is the default.
If persist
is FALSE
, the parser
will always load message content
into memory.
Note: This attribute only serves as a hint to the parser
. If the
underlying stream does not support seeking, then this attribute
will be ignored.
By default, this feature is enabled if the underlying stream is seekable.
g_mime_parser_get_format ()
GMimeFormat
g_mime_parser_get_format (GMimeParser *parser
);
Gets the format that the parser is set to parse.
g_mime_parser_set_format ()
void g_mime_parser_set_format (GMimeParser *parser
,GMimeFormat format
);
Sets the format that the parser should expect the stream to be in.
g_mime_parser_get_respect_content_length ()
gboolean
g_mime_parser_get_respect_content_length
(GMimeParser *parser
);
Gets whether or not parser
is set to use Content-Length for
determining the offset of the end of the message.
g_mime_parser_set_respect_content_length ()
void g_mime_parser_set_respect_content_length (GMimeParser *parser
,gboolean respect_content_length
);
Sets whether or not parser
should respect Content-Length headers
when deciding where to look for the start of the next message. Only
used when the parser is also set to scan for From-lines.
Most notably useful when parsing broken Solaris mbox files (See http://www.jwz.org/doc/content-length.html for details).
By default, this feature is disabled.
Parameters
parser |
a GMimeParser context |
|
respect_content_length |
|
g_mime_parser_set_header_regex ()
void g_mime_parser_set_header_regex (GMimeParser *parser
,const char *regex
,GMimeParserHeaderRegexFunc header_cb
,gpointer user_data
);
Sets the regular expression pattern regex
on parser
. Whenever a
header matching the pattern regex
is parsed, header_cb
is called
with user_data
as the user_data argument.
If regex
is NULL
, then the previously registered regex callback
is unregistered and no new callback is set.
[skip]
Parameters
parser |
a GMimeParser context |
|
regex |
regular expression |
|
header_cb |
callback function |
|
user_data |
user data |
g_mime_parser_tell ()
gint64
g_mime_parser_tell (GMimeParser *parser
);
Gets the current stream offset from the parser's internal stream.
g_mime_parser_eos ()
gboolean
g_mime_parser_eos (GMimeParser *parser
);
Tests the end-of-stream indicator for parser
's internal stream.
g_mime_parser_construct_part ()
GMimeObject * g_mime_parser_construct_part (GMimeParser *parser
,GMimeParserOptions *options
);
Constructs a MIME part from parser
.
g_mime_parser_construct_message ()
GMimeMessage * g_mime_parser_construct_message (GMimeParser *parser
,GMimeParserOptions *options
);
Constructs a MIME message from parser
.
g_mime_parser_get_mbox_marker ()
char *
g_mime_parser_get_mbox_marker (GMimeParser *parser
);
Gets the mbox-style From-line of the most recently parsed message
(gotten from g_mime_parser_construct_message()
).
g_mime_parser_get_mbox_marker_offset ()
gint64
g_mime_parser_get_mbox_marker_offset (GMimeParser *parser
);
Gets the offset of the most recently parsed mbox-style From-line
(gotten from g_mime_parser_construct_message()
).
g_mime_parser_get_headers_begin ()
gint64
g_mime_parser_get_headers_begin (GMimeParser *parser
);
Gets the stream offset of the beginning of the headers of the most recently parsed message.
g_mime_parser_get_headers_end ()
gint64
g_mime_parser_get_headers_end (GMimeParser *parser
);
Gets the stream offset of the end of the headers of the most recently parsed message.