Annotation of embedaddon/php/ext/xsl/php_xsl.h, revision 1.1.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: | Author: |
16: +----------------------------------------------------------------------+
17: */
18:
19: /* $Id: php_xsl.h 321634 2012-01-01 13:15:04Z felipe $ */
20:
21: #ifndef PHP_XSL_H
22: #define PHP_XSL_H
23:
24: extern zend_module_entry xsl_module_entry;
25: #define phpext_xsl_ptr &xsl_module_entry
26:
27: #ifdef ZTS
28: #include "TSRM.h"
29: #endif
30:
31: #include <libxslt/xsltconfig.h>
32: #include <libxslt/xsltInternals.h>
33: #include <libxslt/xsltutils.h>
34: #include <libxslt/transform.h>
35: #include <libxslt/security.h>
36: #if HAVE_XSL_EXSLT
37: #include <libexslt/exslt.h>
38: #include <libexslt/exsltconfig.h>
39: #endif
40:
41: #include "../dom/xml_common.h"
42: #include "xsl_fe.h"
43:
44: #include <libxslt/extensions.h>
45: #include <libxml/xpathInternals.h>
46:
47: #define XSL_SECPREF_NONE 0
48: #define XSL_SECPREF_READ_FILE 2
49: #define XSL_SECPREF_WRITE_FILE 4
50: #define XSL_SECPREF_CREATE_DIRECTORY 8
51: #define XSL_SECPREF_READ_NETWORK 16
52: #define XSL_SECPREF_WRITE_NETWORK 32
53: /* Default == disable all write access == XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_FILE */
54: #define XSL_SECPREF_DEFAULT 44
55:
56: typedef struct _xsl_object {
57: zend_object std;
58: void *ptr;
59: HashTable *prop_handler;
60: zend_object_handle handle;
61: HashTable *parameter;
62: int hasKeys;
63: int registerPhpFunctions;
64: HashTable *registered_phpfunctions;
65: HashTable *node_list;
66: php_libxml_node_object *doc;
67: char *profiling;
68: } xsl_object;
69:
70: void php_xsl_set_object(zval *wrapper, void *obj TSRMLS_DC);
71: void xsl_objects_free_storage(void *object TSRMLS_DC);
72: zval *php_xsl_create_object(xsltStylesheetPtr obj, int *found, zval *wrapper_in, zval *return_value TSRMLS_DC);
73:
74: void xsl_ext_function_string_php(xmlXPathParserContextPtr ctxt, int nargs);
75: void xsl_ext_function_object_php(xmlXPathParserContextPtr ctxt, int nargs);
76:
77: #define REGISTER_XSL_CLASS(ce, name, parent_ce, funcs, entry) \
78: INIT_CLASS_ENTRY(ce, name, funcs); \
79: ce.create_object = xsl_objects_new; \
80: entry = zend_register_internal_class_ex(&ce, parent_ce, NULL TSRMLS_CC);
81:
82: #define XSL_DOMOBJ_NEW(zval, obj, ret) \
83: if (NULL == (zval = php_xsl_create_object(obj, ret, zval, return_value TSRMLS_CC))) { \
84: php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object"); \
85: RETURN_FALSE; \
86: }
87:
88:
89:
90: PHP_MINIT_FUNCTION(xsl);
91: PHP_MSHUTDOWN_FUNCTION(xsl);
92: PHP_RINIT_FUNCTION(xsl);
93: PHP_RSHUTDOWN_FUNCTION(xsl);
94: PHP_MINFO_FUNCTION(xsl);
95:
96:
97: /*
98: Declare any global variables you may need between the BEGIN
99: and END macros here:
100:
101: ZEND_BEGIN_MODULE_GLOBALS(xsl)
102: long global_value;
103: char *global_string;
104: ZEND_END_MODULE_GLOBALS(xsl)
105: */
106:
107: /* In every utility function you add that needs to use variables
108: in php_xsl_globals, call TSRM_FETCH(); after declaring other
109: variables used by that function, or better yet, pass in TSRMLS_CC
110: after the last function argument and declare your utility function
111: with TSRMLS_DC after the last declared argument. Always refer to
112: the globals in your function as XSL_G(variable). You are
113: encouraged to rename these macros something shorter, see
114: examples in any other php module directory.
115: */
116:
117: #ifdef ZTS
118: #define XSL_G(v) TSRMG(xsl_globals_id, zend_xsl_globals *, v)
119: #else
120: #define XSL_G(v) (xsl_globals.v)
121: #endif
122:
123: #endif /* PHP_XSL_H */
124:
125:
126: /*
127: * Local variables:
128: * tab-width: 4
129: * c-basic-offset: 4
130: * End:
131: * vim600: noet sw=4 ts=4 fdm=marker
132: * vim<600: noet sw=4 ts=4
133: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>