From 625179d93958610fd854f4eba5b70a0aa3e6fecf Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Fri, 7 Mar 2008 12:39:12 +0000 Subject: Beginnings of a tree builder. Distinct lack of any real functionality beyond creation/destruction & option setting. svn path=/trunk/hubbub/; revision=3894 --- include/hubbub/functypes.h | 61 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) (limited to 'include/hubbub/functypes.h') diff --git a/include/hubbub/functypes.h b/include/hubbub/functypes.h index aa3e649..8d7f199 100644 --- a/include/hubbub/functypes.h +++ b/include/hubbub/functypes.h @@ -2,12 +2,13 @@ * This file is part of Hubbub. * Licensed under the MIT License, * http://www.opensource.org/licenses/mit-license.php - * Copyright 2007 John-Mark Bell + * Copyright 2007-8 John-Mark Bell */ #ifndef hubbub_functypes_h_ #define hubbub_functypes_h_ +#include #include #include @@ -32,6 +33,64 @@ typedef void (*hubbub_buffer_handler)(const uint8_t *data, typedef void (*hubbub_error_handler)(uint32_t line, uint32_t col, const char *message, void *pw); +/** + * Type of tree comment node creation function + */ +typedef int (*hubbub_tree_create_comment)(void *ctx, const hubbub_string *data, + void **result); + +/** + * Type of tree doctype node creation function + */ +typedef int (*hubbub_tree_create_doctype)(void *ctx, const hubbub_string *qname, + const hubbub_string *public_id, const hubbub_string *system_id, + void **result); + +/** + * Type of tree element node creation function + */ +typedef int (*hubbub_tree_create_element)(void *ctx, + const hubbub_string *tag_name, void **result); + +/** + * Type of tree text node creation function + */ +typedef int (*hubbub_tree_create_text)(void *ctx, const hubbub_string *data, + void **result); + +/** + * Type of tree node destruction function + */ +typedef int (*hubbub_tree_free_node)(void *ctx, void *node); + +/** + * Type of tree node appending function + */ +typedef int (*hubbub_tree_append_child)(void *ctx, void *parent, void *child, + void **result); + +/** + * Type of tree node insertion function + */ +typedef int (*hubbub_tree_insert_before)(void *ctx, void *parent, void *child, + void *ref_child, void **result); + +/** + * Type of tree node removal function + */ +typedef int (*hubbub_tree_remove_child)(void *ctx, void *parent, void *child, + void **result); + +/** + * Type of tree node cloning function + */ +typedef int (*hubbub_tree_clone_node)(void *ctx, void *node, bool deep, + void **result); + +/** + * Type of tree quirks mode notification function + */ +typedef int (*hubbub_tree_set_quirks_mode)(void *ctx, bool quirky); #endif -- cgit v1.2.3