diff options
Diffstat (limited to 'src/core/namednodemap.h')
-rw-r--r-- | src/core/namednodemap.h | 50 |
1 files changed, 45 insertions, 5 deletions
diff --git a/src/core/namednodemap.h b/src/core/namednodemap.h index 830ab6d..328e433 100644 --- a/src/core/namednodemap.h +++ b/src/core/namednodemap.h @@ -18,14 +18,54 @@ struct dom_node; struct dom_namednodemap; struct dom_string; +struct nnm_operation { + dom_exception (*namednodemap_get_length)(void *priv, + unsigned long *length); + + dom_exception (*namednodemap_get_named_item)(void *priv, + struct dom_string *name, struct dom_node **node); + + dom_exception (*namednodemap_set_named_item)(void *priv, + struct dom_node *arg, struct dom_node **node); + + dom_exception (*namednodemap_remove_named_item)( + void *priv, struct dom_string *name, + struct dom_node **node); + + dom_exception (*namednodemap_item)(void *priv, + unsigned long index, struct dom_node **node); + + dom_exception (*namednodemap_get_named_item_ns)( + void *priv, struct dom_string *namespace, + struct dom_string *localname, struct dom_node **node); + + dom_exception (*namednodemap_set_named_item_ns)( + void *priv, struct dom_node *arg, + struct dom_node **node); + + dom_exception (*namednodemap_remove_named_item_ns)( + void *priv, struct dom_string *namespace, + struct dom_string *localname, struct dom_node **node); + + void (*namednodemap_destroy)(void *priv); + + bool (*namednodemap_equal)(void *p1, void *p2); +}; + /* Create a namednodemap */ -dom_exception dom_namednodemap_create(struct dom_document *doc, - struct dom_node_internal *head, dom_node_type type, +dom_exception _dom_namednodemap_create(struct dom_document *doc, + void *priv, struct nnm_operation *opt, struct dom_namednodemap **map); +/* Update the private data */ +void _dom_namednodemap_update(struct dom_namednodemap *map, void *priv); + +/* Test whether two maps are equal */ +bool _dom_namednodemap_equal(struct dom_namednodemap *m1, + struct dom_namednodemap *m2); -/* Match a namednodemap instance against a set of creation parameters */ -bool dom_namednodemap_match(struct dom_namednodemap *map, - struct dom_node_internal *head, dom_node_type type); +#define dom_namednodemap_equal(m1, m2) _dom_namednodemap_equal( \ + (struct dom_namednodemap *) (m1), \ + (struct dom_namednodemap *) (m2)) #endif |