Annotation of embedaddon/php/ext/libxml/php_libxml.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: Shane Caraveo <shane@php.net> |
! 16: | Wez Furlong <wez@thebrainroom.com> |
! 17: +----------------------------------------------------------------------+
! 18: */
! 19:
! 20: /* $Id: php_libxml.h 321634 2012-01-01 13:15:04Z felipe $ */
! 21:
! 22: #ifndef PHP_LIBXML_H
! 23: #define PHP_LIBXML_H
! 24:
! 25: #if HAVE_LIBXML
! 26: extern zend_module_entry libxml_module_entry;
! 27: #define libxml_module_ptr &libxml_module_entry
! 28:
! 29: #ifdef PHP_WIN32
! 30: # define PHP_LIBXML_API __declspec(dllexport)
! 31: #elif defined(__GNUC__) && __GNUC__ >= 4
! 32: # define PHP_LIBXML_API __attribute__ ((visibility("default")))
! 33: #else
! 34: # define PHP_LIBXML_API
! 35: #endif
! 36:
! 37: #include "ext/standard/php_smart_str.h"
! 38: #include <libxml/tree.h>
! 39:
! 40: #define LIBXML_SAVE_NOEMPTYTAG 1<<2
! 41:
! 42: ZEND_BEGIN_MODULE_GLOBALS(libxml)
! 43: zval *stream_context;
! 44: smart_str error_buffer;
! 45: zend_llist *error_list;
! 46: ZEND_END_MODULE_GLOBALS(libxml)
! 47:
! 48: typedef struct _libxml_doc_props {
! 49: int formatoutput;
! 50: int validateonparse;
! 51: int resolveexternals;
! 52: int preservewhitespace;
! 53: int substituteentities;
! 54: int stricterror;
! 55: int recover;
! 56: HashTable *classmap;
! 57: } libxml_doc_props;
! 58:
! 59: typedef struct _php_libxml_ref_obj {
! 60: void *ptr;
! 61: int refcount;
! 62: libxml_doc_props *doc_props;
! 63: } php_libxml_ref_obj;
! 64:
! 65: typedef struct _php_libxml_node_ptr {
! 66: xmlNodePtr node;
! 67: int refcount;
! 68: void *_private;
! 69: } php_libxml_node_ptr;
! 70:
! 71: typedef struct _php_libxml_node_object {
! 72: zend_object std;
! 73: php_libxml_node_ptr *node;
! 74: php_libxml_ref_obj *document;
! 75: HashTable *properties;
! 76: } php_libxml_node_object;
! 77:
! 78: typedef void * (*php_libxml_export_node) (zval *object TSRMLS_DC);
! 79:
! 80: PHP_LIBXML_API int php_libxml_increment_node_ptr(php_libxml_node_object *object, xmlNodePtr node, void *private_data TSRMLS_DC);
! 81: PHP_LIBXML_API int php_libxml_decrement_node_ptr(php_libxml_node_object *object TSRMLS_DC);
! 82: PHP_LIBXML_API int php_libxml_increment_doc_ref(php_libxml_node_object *object, xmlDocPtr docp TSRMLS_DC);
! 83: PHP_LIBXML_API int php_libxml_decrement_doc_ref(php_libxml_node_object *object TSRMLS_DC);
! 84: PHP_LIBXML_API xmlNodePtr php_libxml_import_node(zval *object TSRMLS_DC);
! 85: PHP_LIBXML_API int php_libxml_register_export(zend_class_entry *ce, php_libxml_export_node export_function);
! 86: /* When an explicit freeing of node and children is required */
! 87: PHP_LIBXML_API void php_libxml_node_free_resource(xmlNodePtr node TSRMLS_DC);
! 88: /* When object dtor is called as node may still be referenced */
! 89: PHP_LIBXML_API void php_libxml_node_decrement_resource(php_libxml_node_object *object TSRMLS_DC);
! 90: PHP_LIBXML_API void php_libxml_error_handler(void *ctx, const char *msg, ...);
! 91: PHP_LIBXML_API void php_libxml_ctx_warning(void *ctx, const char *msg, ...);
! 92: PHP_LIBXML_API void php_libxml_ctx_error(void *ctx, const char *msg, ...);
! 93: PHP_LIBXML_API int php_libxml_xmlCheckUTF8(const unsigned char *s);
! 94: PHP_LIBXML_API zval *php_libxml_switch_context(zval *context TSRMLS_DC);
! 95: PHP_LIBXML_API void php_libxml_issue_error(int level, const char *msg TSRMLS_DC);
! 96:
! 97: /* Init/shutdown functions*/
! 98: PHP_LIBXML_API void php_libxml_initialize(void);
! 99: PHP_LIBXML_API void php_libxml_shutdown(void);
! 100:
! 101: #ifdef ZTS
! 102: #define LIBXML(v) TSRMG(libxml_globals_id, zend_libxml_globals *, v)
! 103: #else
! 104: #define LIBXML(v) (libxml_globals.v)
! 105: #endif
! 106:
! 107: #else /* HAVE_LIBXML */
! 108: #define libxml_module_ptr NULL
! 109: #endif
! 110:
! 111: #define phpext_libxml_ptr libxml_module_ptr
! 112:
! 113: #endif /* PHP_LIBXML_H */
! 114:
! 115: /*
! 116: * Local variables:
! 117: * tab-width: 4
! 118: * c-basic-offset: 4
! 119: * End:
! 120: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>