From 399da01ae4eb5c5e3e9349bacc2063c946c3d4a1 Mon Sep 17 00:00:00 2001 From: Bo Yang Date: Tue, 11 Aug 2009 11:17:23 +0000 Subject: Merge the branches/struggleyb/libdom-remain back to trunk. svn path=/trunk/dom/; revision=9191 --- src/core/characterdata.h | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) (limited to 'src/core/characterdata.h') diff --git a/src/core/characterdata.h b/src/core/characterdata.h index 7076988..b5886ea 100644 --- a/src/core/characterdata.h +++ b/src/core/characterdata.h @@ -19,15 +19,17 @@ struct dom_characterdata { struct dom_node_internal base; /**< Base node */ }; -dom_characterdata *dom_characterdata_create(struct dom_document *doc); -dom_exception dom_characterdata_initialise(struct dom_characterdata *cdata, +/* The CharacterData is a intermediate node type, so the following function + * may never be used */ +dom_characterdata *_dom_characterdata_create(struct dom_document *doc); +dom_exception _dom_characterdata_initialise(struct dom_characterdata *cdata, struct dom_document *doc, dom_node_type type, - struct dom_string *name, struct dom_string *value); + struct lwc_string_s *name, struct dom_string *value); -void dom_characterdata_finalise(struct dom_document *doc, +void _dom_characterdata_finalise(struct dom_document *doc, struct dom_characterdata *cdata); -/* The virtual functions for characterdata */ +/* The virtual functions for dom_characterdata */ dom_exception _dom_characterdata_get_data(struct dom_characterdata *cdata, struct dom_string **data); dom_exception _dom_characterdata_set_data(struct dom_characterdata *cdata, @@ -57,4 +59,21 @@ dom_exception _dom_characterdata_replace_data(struct dom_characterdata *cdata, _dom_characterdata_delete_data, \ _dom_characterdata_replace_data +/* Following comes the protected vtable + * + * Only the _copy function can be used by sub-class of this. + */ +void _dom_characterdata_destroy(struct dom_node_internal *node); +dom_exception _dom_characterdata_alloc(struct dom_document *doc, + struct dom_node_internal *n, struct dom_node_internal **ret); +dom_exception _dom_characterdata_copy(struct dom_node_internal *new, + struct dom_node_internal *old); + +#define DOM_CHARACTERDATA_PROTECT_VTABLE \ + _dom_characterdata_destroy, \ + _dom_characterdata_alloc, \ + _dom_characterdata_copy + +extern struct dom_characterdata_vtable characterdata_vtable; + #endif -- cgit v1.2.3