summaryrefslogtreecommitdiff
path: root/src/core/attr.h
diff options
context:
space:
mode:
authorBo Yang <struggleyb.nku@gmail.com>2009-03-12 10:25:49 +0000
committerBo Yang <struggleyb.nku@gmail.com>2009-03-12 10:25:49 +0000
commit2d5b33c9d7a8b3b5f7cc1a952e0a4c21a222ab7f (patch)
treecf278f12fdf12a8398eef417674c3c6eb1cc7d3d /src/core/attr.h
parent2a8f109871049a5b2376c95e91eeaed4172f89c2 (diff)
downloadlibdom-2d5b33c9d7a8b3b5f7cc1a952e0a4c21a222ab7f.tar.gz
libdom-2d5b33c9d7a8b3b5f7cc1a952e0a4c21a222ab7f.tar.bz2
Change the our dom to use vtable method. The first step:
convert the dom_node/dom_attr. And, this is my first commit. Great && Exciting! svn path=/trunk/dom/; revision=6780
Diffstat (limited to 'src/core/attr.h')
-rw-r--r--src/core/attr.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/core/attr.h b/src/core/attr.h
index bf5a606..4106dbe 100644
--- a/src/core/attr.h
+++ b/src/core/attr.h
@@ -18,5 +18,30 @@ dom_exception dom_attr_create(struct dom_document *doc,
struct dom_string *name, struct dom_string *namespace,
struct dom_string *prefix, struct dom_attr **result);
void dom_attr_destroy(struct dom_document *doc, struct dom_attr *attr);
+/* The virtual destroy function */
+void _dom_attr_destroy(dom_node_internal *node);
+
+/* Virtual functions for dom attr */
+dom_exception _dom_attr_get_name(struct dom_attr *attr,
+ struct dom_string **result);
+dom_exception _dom_attr_get_specified(struct dom_attr *attr, bool *result);
+dom_exception _dom_attr_get_value(struct dom_attr *attr,
+ struct dom_string **result);
+dom_exception _dom_attr_set_value(struct dom_attr *attr,
+ struct dom_string *value);
+dom_exception _dom_attr_get_owner(struct dom_attr *attr,
+ struct dom_element **result);
+dom_exception _dom_attr_get_schema_type_info(struct dom_attr *attr,
+ struct dom_type_info **result);
+dom_exception _dom_attr_is_id(struct dom_attr *attr, bool *result);
+
+#define DOM_ATTR_VTABLE \
+ _dom_attr_get_name, \
+ _dom_attr_get_specified, \
+ _dom_attr_get_value, \
+ _dom_attr_set_value, \
+ _dom_attr_get_owner, \
+ _dom_attr_get_schema_type_info, \
+ _dom_attr_is_id
#endif