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
commitfb5fc222637ffb1d0cb31deb54cac0ba06a99300 (patch)
treecf278f12fdf12a8398eef417674c3c6eb1cc7d3d /src/core/attr.h
parent7f0818c80cf6aca8f50a637a0f1c3bd5e810e227 (diff)
downloadlibdom-fb5fc222637ffb1d0cb31deb54cac0ba06a99300.tar.gz
libdom-fb5fc222637ffb1d0cb31deb54cac0ba06a99300.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