summaryrefslogtreecommitdiff
path: root/bindings/hubbub/parser.h
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2009-03-05 11:00:00 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2009-03-05 11:00:00 +0000
commit2a8f109871049a5b2376c95e91eeaed4172f89c2 (patch)
treee8264a3440a4eb921b2621a21ff325db6ba121bb /bindings/hubbub/parser.h
parent44e5b337b4c26216e2e85fca0e9ccabed58d8564 (diff)
downloadlibdom-2a8f109871049a5b2376c95e91eeaed4172f89c2.tar.gz
libdom-2a8f109871049a5b2376c95e91eeaed4172f89c2.tar.bz2
Make hubbub parser binding build trees correctly (credit: Bo Yang)
svn path=/trunk/dom/; revision=6711
Diffstat (limited to 'bindings/hubbub/parser.h')
-rw-r--r--bindings/hubbub/parser.h33
1 files changed, 32 insertions, 1 deletions
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