summaryrefslogtreecommitdiff
path: root/ext/dom/php_dom.h
diff options
context:
space:
mode:
authorRob Richards <rrichards@php.net>2003-06-20 14:08:56 +0000
committerRob Richards <rrichards@php.net>2003-06-20 14:08:56 +0000
commitc69d3959315806da31ea4cd209c71705f857889f (patch)
treec0dee89da3f7dc23c38dc626d3d4462a62de9406 /ext/dom/php_dom.h
parent015c6bacdd5ced1abe1fa0bdba2ee6f16e669e0e (diff)
downloadphp-git-c69d3959315806da31ea4cd209c71705f857889f.tar.gz
cleanup common code
Diffstat (limited to 'ext/dom/php_dom.h')
-rw-r--r--ext/dom/php_dom.h35
1 files changed, 25 insertions, 10 deletions
diff --git a/ext/dom/php_dom.h b/ext/dom/php_dom.h
index b99a15c5d0..fb0e22c08c 100644
--- a/ext/dom/php_dom.h
+++ b/ext/dom/php_dom.h
@@ -23,7 +23,13 @@
#ifndef PHP_DOM_H
#define PHP_DOM_H
-#if HAVE_DOM
+extern zend_module_entry dom_module_entry;
+#define dom_module_ptr &dom_module_entry
+
+#ifdef ZTS
+#include "TSRM.h"
+#endif
+
#include <libxml/parser.h>
#include <libxml/parserInternals.h>
#include <libxml/tree.h>
@@ -49,15 +55,12 @@
Can be checked with phpversion("dom");
*/
#define DOM_API_VERSION "20030413"
-
-extern zend_module_entry dom_module_entry;
-
-#define dom_module_ptr &dom_module_entry
#include "dom_fe.h"
void php_dom_set_object(dom_object *wrapper, void *obj TSRMLS_DC);
dom_object *dom_object_get_data(xmlNodePtr obj);
+zend_object_value dom_objects_new(zend_class_entry *class_type TSRMLS_DC);
void php_dom_throw_error(int error_code, zval **retval TSRMLS_DC);
void node_free_resource(xmlNodePtr node TSRMLS_DC);
void node_list_unlink(xmlNodePtr node TSRMLS_DC);
@@ -72,19 +75,31 @@ void php_dom_create_implementation(zval **retval TSRMLS_DC);
int dom_hierarchy(xmlNodePtr parent, xmlNodePtr child);
int dom_has_feature(char *feature, char *version);
+#define REGISTER_DOM_CLASS(ce, name, parent_ce, funcs, entry) \
+INIT_CLASS_ENTRY(ce, name, funcs); \
+ce.create_object = dom_objects_new; \
+entry = zend_register_internal_class_ex(&ce, parent_ce, NULL TSRMLS_CC);
+
+#define DOM_GET_OBJ(__ptr, __id, __prtype, __intern) { \
+ __intern = (dom_object *)zend_object_store_get_object(__id TSRMLS_CC); \
+ if (!(__ptr = (__prtype)__intern->ptr)) { \
+ php_error(E_WARNING, "Couldn't fetch %s", __intern->std.ce->name);\
+ RETURN_NULL();\
+ } \
+}
+
#define DOM_NO_ARGS() \
if (ZEND_NUM_ARGS() != 0) { \
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Expects exactly 0 parameters, %d given", ZEND_NUM_ARGS()); \
return; \
}
+#define DOM_NOT_IMPLEMENTED() \
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Not yet implemented"); \
+ return;
+
PHP_MINIT_FUNCTION(dom);
PHP_MSHUTDOWN_FUNCTION(dom);
PHP_MINFO_FUNCTION(dom);
-#else
-#define dom_module_ptr NULL
-
-#endif /* HAVE_DOM */
-#define phpext_dom_ptr dom_module_ptr
#endif /* _PHP_DIR_H */