1 | /* |
2 | +----------------------------------------------------------------------+ |
3 | | PHP Version 5 | |
4 | +----------------------------------------------------------------------+ |
5 | | Copyright (c) 1997-2015 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 | | Author: Sterling Hughes <sterling@php.net> | |
16 | +----------------------------------------------------------------------+ |
17 | */ |
18 | |
19 | /* $Id$ */ |
20 | |
21 | #ifndef PHP_SIMPLEXML_H |
22 | #define PHP_SIMPLEXML_H |
23 | |
24 | extern zend_module_entry simplexml_module_entry; |
25 | #define phpext_simplexml_ptr &simplexml_module_entry |
26 | |
27 | #ifdef ZTS |
28 | #include "TSRM.h" |
29 | #endif |
30 | |
31 | #include "ext/libxml/php_libxml.h" |
32 | #include <libxml/parser.h> |
33 | #include <libxml/parserInternals.h> |
34 | #include <libxml/tree.h> |
35 | #include <libxml/uri.h> |
36 | #include <libxml/xmlerror.h> |
37 | #include <libxml/xinclude.h> |
38 | #include <libxml/xpath.h> |
39 | #include <libxml/xpathInternals.h> |
40 | #include <libxml/xpointer.h> |
41 | #include <libxml/xmlschemas.h> |
42 | |
43 | PHP_MINIT_FUNCTION(simplexml); |
44 | PHP_MSHUTDOWN_FUNCTION(simplexml); |
45 | #ifdef HAVE_SPL |
46 | PHP_RINIT_FUNCTION(simplexml); |
47 | #endif |
48 | PHP_MINFO_FUNCTION(simplexml); |
49 | |
50 | typedef enum { |
51 | SXE_ITER_NONE = 0, |
52 | SXE_ITER_ELEMENT = 1, |
53 | SXE_ITER_CHILD = 2, |
54 | SXE_ITER_ATTRLIST = 3 |
55 | } SXE_ITER; |
56 | |
57 | typedef struct { |
58 | zend_object zo; |
59 | php_libxml_node_ptr *node; |
60 | php_libxml_ref_obj *document; |
61 | HashTable *properties; |
62 | xmlXPathContextPtr xpath; |
63 | struct { |
64 | xmlChar *name; |
65 | xmlChar *nsprefix; |
66 | int isprefix; |
67 | SXE_ITER type; |
68 | zval *data; |
69 | } iter; |
70 | zval *tmp; |
71 | zend_function *fptr_count; |
72 | } php_sxe_object; |
73 | |
74 | #ifdef ZTS |
75 | #define SIMPLEXML_G(v) TSRMG(simplexml_globals_id, zend_simplexml_globals *, v) |
76 | #else |
77 | #define SIMPLEXML_G(v) (simplexml_globals.v) |
78 | #endif |
79 | |
80 | #ifdef PHP_WIN32 |
81 | # ifdef PHP_SIMPLEXML_EXPORTS |
82 | # define PHP_SXE_API __declspec(dllexport) |
83 | # else |
84 | # define PHP_SXE_API __declspec(dllimport) |
85 | # endif |
86 | #else |
87 | # define PHP_SXE_API ZEND_API |
88 | #endif |
89 | |
90 | PHP_SXE_API zend_class_entry *sxe_get_element_class_entry(); |
91 | |
92 | #endif |
93 | |
94 | /* |
95 | * Local variables: |
96 | * tab-width: 4 |
97 | * c-basic-offset: 4 |
98 | * indent-tabs-mode: t |
99 | * End: |
100 | * vim600: fdm=marker |
101 | * vim: noet sw=4 ts=4 |
102 | */ |
103 | |