From 7f0818c80cf6aca8f50a637a0f1c3bd5e810e227 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Thu, 5 Mar 2009 11:00:00 +0000 Subject: Make hubbub parser binding build trees correctly (credit: Bo Yang) svn path=/trunk/dom/; revision=6711 --- bindings/hubbub/parser.h | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'bindings/hubbub/parser.h') diff --git a/bindings/hubbub/parser.h b/bindings/hubbub/parser.h index f4c2ac4..7e28916 100644 --- a/bindings/hubbub/parser.h +++ b/bindings/hubbub/parser.h @@ -19,9 +19,37 @@ struct dom_document; typedef struct dom_hubbub_parser dom_hubbub_parser; +/* The encoding source of the document */ +typedef enum dom_hubub_encoding_source { + ENCODING_SOURCE_HEADER, + ENCODING_SOURCE_DETECTED, + ENCODING_SOURCE_META +} dom_hubbub_encoding_source; + +/* The recommended way to use the parser is: + * + * dom_hubbub_parser_create(...); + * dom_hubbub_parser_parse_chunk(...); + * call _parse_chunk for all chunks of data + * + * After you have parsed the data, + * + * dom_hubbub_parser_completed(...); + * dom_bubbub_parser_get_document(...); + * dom_hubbub_parser_destroy(...); + * + * Clients must ensure that the last 3 function calls above are called in + * the order shown. dom_hubbub_parser_get_document() will pass the ownership + * of the document to the client. After that, the parser should be destroyed. + * The client must not call any method of this parser after destruction. + * + * The client must call dom_hubbub_parser_completed() before calling + * dom_hubbub_parser_get_document(). + */ + /* Create a Hubbub parser instance */ dom_hubbub_parser *dom_hubbub_parser_create(const char *aliases, - const char *enc, const char *int_enc, + const char *enc, bool fix_enc, dom_alloc alloc, void *pw, dom_msg msg, void *mctx); /* Destroy a Hubbub parser instance */ @@ -37,4 +65,7 @@ dom_hubbub_error dom_hubbub_parser_completed(dom_hubbub_parser *parser); /* Retrieve the created DOM Document */ struct dom_document *dom_hubbub_parser_get_document(dom_hubbub_parser *parser); +/* Retrieve the document's encoding */ +const char *dom_hubbub_parser_get_encoding(dom_hubbub_parser *parser, + dom_hubbub_encoding_source *source); #endif -- cgit v1.2.3