Annotation of embedaddon/php/ext/dom/php_dom.h, revision 1.1
1.1 ! misho 1: /*
! 2: +----------------------------------------------------------------------+
! 3: | PHP Version 5 |
! 4: +----------------------------------------------------------------------+
! 5: | Copyright (c) 1997-2012 The PHP Group |
! 6: +----------------------------------------------------------------------+
! 7: | This source file is subject to version 3.01 of the PHP license, |
! 8: | that is bundled with this package in the file LICENSE, and is |
! 9: | available through the world-wide-web at the following url: |
! 10: | http://www.php.net/license/3_01.txt |
! 11: | If you did not receive a copy of the PHP license and are unable to |
! 12: | obtain it through the world-wide-web, please send a note to |
! 13: | license@php.net so we can mail you a copy immediately. |
! 14: +----------------------------------------------------------------------+
! 15: | Authors: Christian Stocker <chregu@php.net> |
! 16: | Rob Richards <rrichards@php.net> |
! 17: | Marcus Borger <helly@php.net> |
! 18: +----------------------------------------------------------------------+
! 19: */
! 20:
! 21: /* $Id: php_dom.h 321634 2012-01-01 13:15:04Z felipe $ */
! 22:
! 23: #ifndef PHP_DOM_H
! 24: #define PHP_DOM_H
! 25:
! 26: extern zend_module_entry dom_module_entry;
! 27: #define phpext_dom_ptr &dom_module_entry
! 28:
! 29: #ifdef ZTS
! 30: #include "TSRM.h"
! 31: #endif
! 32:
! 33: #include <libxml/parser.h>
! 34: #include <libxml/parserInternals.h>
! 35: #include <libxml/tree.h>
! 36: #include <libxml/uri.h>
! 37: #include <libxml/xmlerror.h>
! 38: #include <libxml/xinclude.h>
! 39: #include <libxml/hash.h>
! 40: #include <libxml/c14n.h>
! 41: #if defined(LIBXML_HTML_ENABLED)
! 42: #include <libxml/HTMLparser.h>
! 43: #include <libxml/HTMLtree.h>
! 44: #endif
! 45: #if defined(LIBXML_XPATH_ENABLED)
! 46: #include <libxml/xpath.h>
! 47: #include <libxml/xpathInternals.h>
! 48: #endif
! 49: #if defined(LIBXML_XPTR_ENABLED)
! 50: #include <libxml/xpointer.h>
! 51: #endif
! 52: #ifdef PHP_WIN32
! 53: #ifndef DOM_EXPORTS
! 54: #define DOM_EXPORTS
! 55: #endif
! 56: #endif
! 57:
! 58: #include "xml_common.h"
! 59: #include "ext/libxml/php_libxml.h"
! 60: #include "zend_exceptions.h"
! 61: #include "dom_ce.h"
! 62: /* DOM API_VERSION, please bump it up, if you change anything in the API
! 63: therefore it's easier for the script-programmers to check, what's working how
! 64: Can be checked with phpversion("dom");
! 65: */
! 66: #define DOM_API_VERSION "20031129"
! 67: /* Define a custom type for iterating using an unused nodetype */
! 68: #define DOM_NODESET XML_XINCLUDE_START
! 69:
! 70: typedef struct _dom_xpath_object {
! 71: zend_object std;
! 72: void *ptr;
! 73: php_libxml_ref_obj *document;
! 74: HashTable *prop_handler;
! 75: zend_object_handle handle;
! 76: int registerPhpFunctions;
! 77: HashTable *registered_phpfunctions;
! 78: HashTable *node_list;
! 79: } dom_xpath_object;
! 80:
! 81: typedef struct _dom_nnodemap_object {
! 82: dom_object *baseobj;
! 83: int nodetype;
! 84: xmlHashTable *ht;
! 85: xmlChar *local;
! 86: xmlChar *ns;
! 87: zval *baseobjptr;
! 88: } dom_nnodemap_object;
! 89:
! 90: typedef struct {
! 91: zend_object_iterator intern;
! 92: zval *curobj;
! 93: } php_dom_iterator;
! 94:
! 95: #include "dom_fe.h"
! 96:
! 97: dom_object *dom_object_get_data(xmlNodePtr obj);
! 98: dom_doc_propsptr dom_get_doc_props(php_libxml_ref_obj *document);
! 99: zend_object_value dom_objects_new(zend_class_entry *class_type TSRMLS_DC);
! 100: zend_object_value dom_nnodemap_objects_new(zend_class_entry *class_type TSRMLS_DC);
! 101: #if defined(LIBXML_XPATH_ENABLED)
! 102: zend_object_value dom_xpath_objects_new(zend_class_entry *class_type TSRMLS_DC);
! 103: #endif
! 104: int dom_get_strict_error(php_libxml_ref_obj *document);
! 105: void php_dom_throw_error(int error_code, int strict_error TSRMLS_DC);
! 106: void php_dom_throw_error_with_message(int error_code, char *error_message, int strict_error TSRMLS_DC);
! 107: void node_list_unlink(xmlNodePtr node TSRMLS_DC);
! 108: int dom_check_qname(char *qname, char **localname, char **prefix, int uri_len, int name_len);
! 109: xmlNsPtr dom_get_ns(xmlNodePtr node, char *uri, int *errorcode, char *prefix);
! 110: void dom_set_old_ns(xmlDoc *doc, xmlNs *ns);
! 111: xmlNsPtr dom_get_nsdecl(xmlNode *node, xmlChar *localName);
! 112: void dom_normalize (xmlNodePtr nodep TSRMLS_DC);
! 113: xmlNode *dom_get_elements_by_tag_name_ns_raw(xmlNodePtr nodep, char *ns, char *local, int *cur, int index);
! 114: void php_dom_create_implementation(zval **retval TSRMLS_DC);
! 115: int dom_hierarchy(xmlNodePtr parent, xmlNodePtr child);
! 116: int dom_has_feature(char *feature, char *version);
! 117: int dom_node_is_read_only(xmlNodePtr node);
! 118: int dom_node_children_valid(xmlNodePtr node);
! 119: void php_dom_create_interator(zval *return_value, int ce_type TSRMLS_DC);
! 120: void dom_namednode_iter(dom_object *basenode, int ntype, dom_object *intern, xmlHashTablePtr ht, xmlChar *local, xmlChar *ns TSRMLS_DC);
! 121: xmlNodePtr create_notation(const xmlChar *name, const xmlChar *ExternalID, const xmlChar *SystemID);
! 122: xmlNode *php_dom_libxml_hash_iter(xmlHashTable *ht, int index);
! 123: xmlNode *php_dom_libxml_notation_iter(xmlHashTable *ht, int index);
! 124: zend_object_iterator *php_dom_get_iterator(zend_class_entry *ce, zval *object, int by_ref TSRMLS_DC);
! 125: int dom_set_doc_classmap(php_libxml_ref_obj *document, zend_class_entry *basece, zend_class_entry *ce TSRMLS_DC);
! 126:
! 127: #define REGISTER_DOM_CLASS(ce, name, parent_ce, funcs, entry) \
! 128: INIT_CLASS_ENTRY(ce, name, funcs); \
! 129: ce.create_object = dom_objects_new; \
! 130: entry = zend_register_internal_class_ex(&ce, parent_ce, NULL TSRMLS_CC);
! 131:
! 132: #define DOM_GET_OBJ(__ptr, __id, __prtype, __intern) { \
! 133: __intern = (dom_object *)zend_object_store_get_object(__id TSRMLS_CC); \
! 134: if (__intern->ptr == NULL || !(__ptr = (__prtype)((php_libxml_node_ptr *)__intern->ptr)->node)) { \
! 135: php_error_docref(NULL TSRMLS_CC, E_WARNING, "Couldn't fetch %s", __intern->std.ce->name);\
! 136: RETURN_NULL();\
! 137: } \
! 138: }
! 139:
! 140: #define DOM_NO_ARGS() \
! 141: if (zend_parse_parameters_none() == FAILURE) { \
! 142: return; \
! 143: }
! 144:
! 145: #define DOM_NOT_IMPLEMENTED() \
! 146: php_error_docref(NULL TSRMLS_CC, E_WARNING, "Not yet implemented"); \
! 147: return;
! 148:
! 149: #define DOM_NODELIST 0
! 150: #define DOM_NAMEDNODEMAP 1
! 151:
! 152: PHP_MINIT_FUNCTION(dom);
! 153: PHP_MSHUTDOWN_FUNCTION(dom);
! 154: PHP_MINFO_FUNCTION(dom);
! 155:
! 156: #endif /* PHP_DOM_H */
! 157:
! 158: /*
! 159: * Local variables:
! 160: * tab-width: 4
! 161: * c-basic-offset: 4
! 162: * End:
! 163: * vim600: noet sw=4 ts=4 fdm=marker
! 164: * vim<600: noet sw=4 ts=4
! 165: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>