Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.  * This file is part of libdom.
  3.  * Licensed under the MIT License,
  4.  *                http://www.opensource.org/licenses/mit-license.php
  5.  * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org>
  6.  */
  7.  
  8. #ifndef dom_internal_core_namednodemap_h_
  9. #define dom_internal_core_namednodemap_h_
  10.  
  11. #include <stdbool.h>
  12.  
  13. #include <dom/core/namednodemap.h>
  14. #include <dom/core/node.h>
  15.  
  16. struct dom_document;
  17. struct dom_node;
  18. struct dom_namednodemap;
  19.  
  20. struct nnm_operation {
  21.         dom_exception (*namednodemap_get_length)(void *priv,
  22.                         uint32_t *length);
  23.  
  24.         dom_exception (*namednodemap_get_named_item)(void *priv,
  25.                         dom_string *name, struct dom_node **node);
  26.  
  27.         dom_exception (*namednodemap_set_named_item)(void *priv,
  28.                         struct dom_node *arg, struct dom_node **node);
  29.  
  30.         dom_exception (*namednodemap_remove_named_item)(
  31.                         void *priv, dom_string *name,
  32.                         struct dom_node **node);
  33.  
  34.         dom_exception (*namednodemap_item)(void *priv,
  35.                         uint32_t index, struct dom_node **node);
  36.  
  37.         dom_exception (*namednodemap_get_named_item_ns)(
  38.                         void *priv, dom_string *namespace,
  39.                         dom_string *localname, struct dom_node **node);
  40.  
  41.         dom_exception (*namednodemap_set_named_item_ns)(
  42.                         void *priv, struct dom_node *arg,
  43.                         struct dom_node **node);
  44.  
  45.         dom_exception (*namednodemap_remove_named_item_ns)(
  46.                         void *priv, dom_string *namespace,
  47.                         dom_string *localname, struct dom_node **node);
  48.  
  49.         void (*namednodemap_destroy)(void *priv);
  50.  
  51.         bool (*namednodemap_equal)(void *p1, void *p2);
  52. };
  53.  
  54. /* Create a namednodemap */
  55. dom_exception _dom_namednodemap_create(struct dom_document *doc,
  56.                 void *priv, struct nnm_operation *opt,
  57.                 struct dom_namednodemap **map);
  58.  
  59. /* Update the private data */
  60. void _dom_namednodemap_update(struct dom_namednodemap *map, void *priv);
  61.  
  62. /* Test whether two maps are equal */
  63. bool _dom_namednodemap_equal(struct dom_namednodemap *m1,
  64.                 struct dom_namednodemap *m2);
  65.  
  66. #define dom_namednodemap_equal(m1, m2) _dom_namednodemap_equal( \
  67.                 (struct dom_namednodemap *) (m1), \
  68.                 (struct dom_namednodemap *) (m2))
  69.  
  70. #endif
  71.