1 /* 2 +----------------------------------------------------------------------+ 3 | PHP Version 5 | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) 1997-2014 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 | Marcus Boerger <helly@php.net> | 17 | Rob Richards <rrichards@php.net> | 18 +----------------------------------------------------------------------+ 19 */ 20 21 /* $Id$ */ 22 23 #ifndef PHP_SIMPLEXML_EXPORTS_H 24 #define PHP_SIMPLEXML_EXPORTS_H 25 26 #include "php_simplexml.h" 27 28 #define SKIP_TEXT(__p) \ 29 if ((__p)->type == XML_TEXT_NODE) { \ 30 goto next_iter; \ 31 } 32 33 #define GET_NODE(__s, __n) { \ 34 if ((__s)->node && (__s)->node->node) { \ 35 __n = (__s)->node->node; \ 36 } else { \ 37 __n = NULL; \ 38 php_error_docref(NULL TSRMLS_CC, E_WARNING, "Node no longer exists"); \ 39 } \ 40 } 41 42 PHP_SXE_API zend_object_value sxe_object_new(zend_class_entry *ce TSRMLS_DC); 43 /* {{{ php_sxe_fetch_object() 44 */ 45 static inline php_sxe_object * php_sxe_fetch_object(zval * object TSRMLS_DC)46php_sxe_fetch_object(zval *object TSRMLS_DC) 47 { 48 return (php_sxe_object *) zend_object_store_get_object(object TSRMLS_CC); 49 } 50 /* }}} */ 51 52 typedef struct { 53 zend_object_iterator intern; 54 php_sxe_object *sxe; 55 } php_sxe_iterator; 56 57 #endif /* PHP_SIMPLEXML_EXPORTS_H */ 58 59 /** 60 * Local Variables: 61 * c-basic-offset: 4 62 * tab-width: 4 63 * indent-tabs-mode: t 64 * End: 65 * vim600: fdm=marker 66 * vim: noet sw=4 ts=4 67 */ 68