summaryrefslogtreecommitdiff
path: root/bindings/hubbub/parser.h
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2012-07-06 18:57:22 +0100
committerVincent Sanders <vince@netsurf-browser.org>2012-07-06 18:57:22 +0100
commitd75d3600ad235c70d36a0789382046b4904ad5d2 (patch)
tree1fd2e1e515a66a2e3aa4770c7e18d736ba10c5d0 /bindings/hubbub/parser.h
parent66ab4b45554726cdd4e109a96251604096fd73da (diff)
downloadlibdom-d75d3600ad235c70d36a0789382046b4904ad5d2.tar.gz
libdom-d75d3600ad235c70d36a0789382046b4904ad5d2.tar.bz2
update dom hubbub binding to allow for script control
Diffstat (limited to 'bindings/hubbub/parser.h')
-rw-r--r--bindings/hubbub/parser.h28
1 files changed, 18 insertions, 10 deletions
diff --git a/bindings/hubbub/parser.h b/bindings/hubbub/parser.h
index fe6204a..7af0dd0 100644
--- a/bindings/hubbub/parser.h
+++ b/bindings/hubbub/parser.h
@@ -17,17 +17,22 @@
#include "errors.h"
+/**
+ * Type of script completion function
+ */
+typedef dom_hubbub_error (*dom_script)(void *ctx, struct dom_node *node);
+
typedef struct dom_hubbub_parser dom_hubbub_parser;
/* The encoding source of the document */
-typedef enum dom_hubbub_encoding_source {
- DOM_HUBBUB_ENCODING_SOURCE_HEADER,
+typedef enum dom_hubbub_encoding_source {
+ DOM_HUBBUB_ENCODING_SOURCE_HEADER,
DOM_HUBBUB_ENCODING_SOURCE_DETECTED,
- DOM_HUBBUB_ENCODING_SOURCE_META
+ DOM_HUBBUB_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
@@ -39,18 +44,18 @@ typedef enum dom_hubbub_encoding_source {
* 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
+ * 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
+ * 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 *enc, bool fix_enc,
- dom_msg msg, void *mctx);
+dom_hubbub_parser *dom_hubbub_parser_create(const char *enc, bool fix_enc,
+ bool enable_script, dom_msg msg,
+ dom_script script, void *mctx);
/* Destroy a Hubbub parser instance */
void dom_hubbub_parser_destroy(dom_hubbub_parser *parser);
@@ -59,6 +64,9 @@ void dom_hubbub_parser_destroy(dom_hubbub_parser *parser);
dom_hubbub_error dom_hubbub_parser_parse_chunk(dom_hubbub_parser *parser,
const uint8_t *data, size_t len);
+/* insert data into the parse stream but do not parse it */
+dom_hubbub_error dom_hubbub_parser_insert_chunk(dom_hubbub_parser *parser, const uint8_t *data, size_t length);
+
/* Notify parser that datastream is empty */
dom_hubbub_error dom_hubbub_parser_completed(dom_hubbub_parser *parser);
@@ -66,7 +74,7 @@ dom_hubbub_error dom_hubbub_parser_completed(dom_hubbub_parser *parser);
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,
+const char *dom_hubbub_parser_get_encoding(dom_hubbub_parser *parser,
dom_hubbub_encoding_source *source);
#endif