On 12/5/05, Damitha Kumarage <[EMAIL PROTECTED]> wrote: > Hi Samisa > Samisa Abeysinghe wrote: > > > Samisa Abeysinghe wrote: > > > >> I have been looking into getting this PHP binding code working on Linux. > >> The PHP source depends on autoconf-2.13 and automake-1.5. > >> > >> Our build system is based on autoconf-2.59 and automake-1.9 > > > > > > Changing the line in configure.ac > > AC_PREREQ(2.59) to > > AC_PREREQ(2.13) > > does *not* solve this problem. :( > > > > autoconf 2.13 requres a different syntax in configure.ac. > > I'll see whether it is possible to change configure.ac to work with any > version > from 2.13
Cool. :) Thanks, Samisa... > > damitha > > > > > Samisa... > > > >> > >> This is a problem when it comes to working on both axis2c and PHP > >> extentions on the same machine :( > >> > >> Thanks, > >> Samisa... > >> > >> nandika jayawardana wrote: > >> > >>> Hi all, > >>> > >>> I have started writing a php extension for axis2c starting with om. > >>> > >>> For that I have added axis2_xml_reader api in this extension. > >>> Lot has to be done before everything in axis2 is supported. > >>> > >>> Pls commit this code. > >>> I think we can put it in a folder named c/bindings/php . > >>> > >>> Thanks > >>> nandika > >>> > >>> ------------------------------------------------------------------------ > >>> > >>> > >>> #ifndef AXIS2_CE_H > >>> #define AXIS2_CE_H > >>> > >>> zend_class_entry *axis2_xml_reader_class_entry; > >>> zend_class_entry *axis2_xml_writer_class_entry; > >>> zend_class_entry *axis2_om_element_class_entry; > >>> zend_class_entry *axis2_om_comment_class_entry; > >>> zend_class_entry *axis2_om_text_class_entry; > >>> zend_class_entry *axis2_om_pi_entry; > >>> zend_class_entry *axis2_om_stax_builder_class_entry; > >>> zend_class_entry *axis2_om_document_class_entry; > >>> zend_class_entry *axis2_om_attribute_class_entry; > >>> zend_class_entry *axis2_om_namespace_class_entry; > >>> > >>> > >>> #endif /* AXIS2_CE_H */ > >>> > >>> ------------------------------------------------------------------------ > >>> > >>> > >>> #ifndef AXIS2_PROPERTIES_H > >>> #define AXIS2_PROPERTIES_H > >>> > >>> #endif /* AXIS2_PROPERTIES_H */ > >>> > >>> ------------------------------------------------------------------------ > >>> > >>> > >>> /* > >>> +----------------------------------------------------------------------+ > >>> > >>> | PHP Version > >>> 5 | > >>> +----------------------------------------------------------------------+ > >>> > >>> | Copyright (c) 1997-2004 The PHP > >>> Group | > >>> +----------------------------------------------------------------------+ > >>> > >>> | This source file is subject to version 3.0 of the PHP > >>> license, | > >>> | that is bundled with this package in the file LICENSE, and > >>> is | > >>> | available through the world-wide-web at the following > >>> url: | > >>> | > >>> http://www.php.net/license/3_0.txt. | > >>> | If you did not receive a copy of the PHP license and are unable > >>> to | > >>> | obtain it through the world-wide-web, please send a note > >>> to | > >>> | [EMAIL PROTECTED] so we can mail you a copy > >>> immediately. | > >>> +----------------------------------------------------------------------+ > >>> > >>> | > >>> Author: | > >>> +----------------------------------------------------------------------+ > >>> > >>> */ > >>> > >>> /* $Id: header,v 1.15 2004/01/08 16:46:52 sniper Exp $ */ > >>> > >>> #ifdef HAVE_CONFIG_H > >>> #include "config.h" > >>> #endif > >>> > >>> #include "php.h" > >>> #include "php_ini.h" > >>> #include "ext/standard/info.h" > >>> #include "php_axis2.h" > >>> #include "axis2_env.h" > >>> #include "axis2_error_default.h" > >>> #include "axis2_stream_default.h" > >>> #include "axis2_log_default.h" > >>> > >>> > >>> zend_object_value axis2_objects_new(zend_class_entry *class_type > >>> TSRMLS_DC ); > >>> > >>> > >>> > >>> /* If you declare any globals in php_axis2.h uncomment this: > >>> */ > >>> ZEND_DECLARE_MODULE_GLOBALS(axis2) > >>> > >>> > >>> /* True global resources - no need for thread safety here */ > >>> static int le_axis2; > >>> > >>> static zend_object_handlers axis2_object_handlers; > >>> > >>> /* {{{ axis2_functions[] > >>> * > >>> * Every user visible function must have an entry in axis2_functions[]. > >>> */ > >>> function_entry axis2_functions[] = { > >>> PHP_FE(axis2_helloworld, NULL) {NULL, NULL, > >>> NULL} /* Must be the last line in axis2_functions[] */ > >>> }; > >>> /* }}} */ > >>> > >>> /* {{{ axis2_module_entry > >>> */ > >>> zend_module_entry axis2_module_entry = { > >>> #if ZEND_MODULE_API_NO >= 20010901 > >>> STANDARD_MODULE_HEADER, > >>> #endif > >>> "axis2", > >>> axis2_functions, > >>> PHP_MINIT(axis2), > >>> PHP_MSHUTDOWN(axis2), > >>> PHP_RINIT(axis2), /* Replace with NULL if there's nothing > >>> to do at request start */ > >>> PHP_RSHUTDOWN(axis2), /* Replace with NULL if there's nothing > >>> to do at request end */ > >>> PHP_MINFO(axis2), > >>> #if ZEND_MODULE_API_NO >= 20010901 > >>> "0.1", /* Replace with version number for your extension */ > >>> #endif > >>> STANDARD_MODULE_PROPERTIES > >>> }; > >>> /* }}} */ > >>> > >>> #ifdef COMPILE_DL_AXIS2 > >>> ZEND_GET_MODULE(axis2) > >>> #endif > >>> > >>> /* {{{ PHP_INI > >>> */ > >>> /* Remove comments and fill if you need to have entries in php.ini > >>> PHP_INI_BEGIN() > >>> STD_PHP_INI_ENTRY("axis2.global_value", "42", PHP_INI_ALL, > >>> OnUpdateLong, global_value, zend_axis2_globals, axis2_globals) > >>> STD_PHP_INI_ENTRY("axis2.global_string", "foobar", PHP_INI_ALL, > >>> OnUpdateString, global_string, zend_axis2_globals, axis2_globals) > >>> PHP_INI_END() > >>> */ > >>> /* }}} */ > >>> > >>> /* {{{ php_axis2_init_globals > >>> */ > >>> > >>> static void php_axis2_init_globals(zend_axis2_globals *axis2_globals) > >>> { > >>> axis2_allocator_t *allocator = NULL; > >>> axis2_error_t *err = NULL; > >>> axis2_log_t *log = NULL; > >>> axis2_stream_t *stream = NULL; > >>> axis2_env_t *environment = NULL; > >>> allocator = axis2_allocator_init (NULL); > >>> log = axis2_log_create(allocator, NULL); > >>> stream = axis2_stream_create(allocator, NULL); > >>> err = axis2_error_create(allocator); > >>> environment= axis2_env_create_with_error_stream_log(allocator, > >>> err,stream, log); > >>> axis2_globals->global_value = 0; > >>> axis2_globals->global_string = NULL; > >>> axis2_globals->env = environment; > >>> axis2_globals->allocator = allocator; > >>> } > >>> > >>> /* }}} */ > >>> > >>> /* {{{ PHP_MINIT_FUNCTION > >>> */ > >>> PHP_MINIT_FUNCTION(axis2) > >>> { > >>> zend_class_entry ce; > >>> ZEND_INIT_MODULE_GLOBALS(axis2, php_axis2_init_globals, NULL); > >>> /* If you have INI entries, uncomment these lines > >>> REGISTER_INI_ENTRIES(); > >>> */ > >>> memcpy(&axis2_object_handlers, > >>> zend_get_std_object_handlers(), sizeof(zend_object_handlers)); > >>> axis2_object_handlers.clone_obj = NULL; > >>> REGISTER_AXIS2_CLASS(ce,"Axis2XMLReader",NULL, > >>> php_axis2_xml_reader_class_functions, axis2_xml_reader_class_entry); > >>> > >>> REGISTER_LONG_CONSTANT("AXIS2_XML_READER_START_DOCUMENT", > >>> AXIS2_XML_READER_START_DOCUMENT, CONST_CS | CONST_PERSISTENT); > >>> REGISTER_LONG_CONSTANT("AXIS2_XML_READER_START_ELEMENT", > >>> AXIS2_XML_READER_START_ELEMENT , CONST_CS | CONST_PERSISTENT); > >>> REGISTER_LONG_CONSTANT("AXIS2_XML_READER_END_ELEMENT", > >>> AXIS2_XML_READER_END_ELEMENT, CONST_CS | CONST_PERSISTENT); > >>> REGISTER_LONG_CONSTANT("AXIS2_XML_READER_SPACE", > >>> AXIS2_XML_READER_SPACE, CONST_CS | > >>> CONST_PERSISTENT); > >>> REGISTER_LONG_CONSTANT("AXIS2_XML_READER_EMPTY_ELEMENT", > >>> AXIS2_XML_READER_EMPTY_ELEMENT, CONST_CS | > >>> CONST_PERSISTENT); > >>> REGISTER_LONG_CONSTANT("AXIS2_XML_READER_CHARACTER", > >>> AXIS2_XML_READER_CHARACTER, CONST_CS | > >>> CONST_PERSISTENT); > >>> REGISTER_LONG_CONSTANT("AXIS2_XML_READER_ENTITY_REFERANCE", > >>> AXIS2_XML_READER_ENTITY_REFERANCE, CONST_CS | CONST_PERSISTENT); > >>> REGISTER_LONG_CONSTANT("AXIS2_XML_READER_COMMENT", > >>> AXIS2_XML_READER_COMMENT, CONST_CS | CONST_PERSISTENT); > >>> > >>> REGISTER_LONG_CONSTANT("AXIS2_XML_READER_PROCESSING_INSTRUCTION", > >>> AXIS2_XML_READER_PROCESSING_INSTRUCTION, CONST_CS | > >>> CONST_PERSISTENT); > >>> REGISTER_LONG_CONSTANT("AXIS2_XML_READER_CDATA", > >>> AXIS2_XML_READER_CDATA, CONST_CS | CONST_PERSISTENT); > >>> REGISTER_LONG_CONSTANT("AXIS2_XML_READER_DOCUMENT_TYPE", > >>> AXIS2_XML_READER_DOCUMENT_TYPE, CONST_CS | CONST_PERSISTENT); > >>> return SUCCESS; > >>> } > >>> /* }}} */ > >>> > >>> /* {{{ PHP_MSHUTDOWN_FUNCTION > >>> */ > >>> PHP_MSHUTDOWN_FUNCTION(axis2) > >>> { > >>> /* uncomment this line if you have INI entries > >>> UNREGISTER_INI_ENTRIES(); > >>> */ > >>> php_axis2_destroy_env(); > >>> return SUCCESS; > >>> } > >>> /* }}} */ > >>> > >>> > >>> > >>> void php_axis2_objects_free_storage(void *object TSRMLS_DC) > >>> { > >>> axis2_object *intern = (axis2_object_ptr)object; > >>> zend_hash_destroy(intern->std.properties); > >>> FREE_HASHTABLE(intern->std.properties); > >>> if(intern->node_list) > >>> { > >>> zend_hash_destroy(intern->node_list); > >>> FREE_HASHTABLE(intern->node_list); > >>> } > >>> /*TODO individaul objects must be freed */ > >>> if(intern->ptr) > >>> { > >>> } > >>> } > >>> > >>> > >>> static zend_object_value axis2_objects_new(zend_class_entry > >>> *class_type TSRMLS_DC ) > >>> { > >>> zend_object_value retval; > >>> axis2_object *intern = NULL; > >>> zval *tmp = NULL; > >>> intern = emalloc(sizeof(axis2_object)); > >>> intern->std.ce = class_type; > >>> intern->std.in_get = 0; > >>> intern->std.in_set = 0; > >>> intern->ptr = NULL; > >>> intern->prop_handler = NULL; > >>> ALLOC_HASHTABLE(intern->std.properties); > >>> zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0); > >>> zend_hash_copy(intern->std.properties, > >>> &class_type->default_properties, > >>> (copy_ctor_func_t)zval_add_ref, (void*)tmp, sizeof(zval > >>> *)); > >>> retval.handle = zend_objects_store_put(intern, NULL, > >>> ( > >>> zend_objects_free_object_storage_t)php_axis2_objects_free_storage,NULL > >>> TSRMLS_CC); > >>> intern->handle = retval.handle; > >>> retval.handlers = &axis2_object_handlers; return > >>> retval; > >>> } > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> /* Remove if there's nothing to do at request start */ > >>> /* {{{ PHP_RINIT_FUNCTION > >>> */ > >>> PHP_RINIT_FUNCTION(axis2) > >>> { > >>> return SUCCESS; > >>> } > >>> /* }}} */ > >>> > >>> /* Remove if there's nothing to do at request end */ > >>> /* {{{ PHP_RSHUTDOWN_FUNCTION > >>> */ > >>> PHP_RSHUTDOWN_FUNCTION(axis2) > >>> { > >>> return SUCCESS; > >>> } > >>> /* }}} */ > >>> > >>> /* {{{ PHP_MINFO_FUNCTION > >>> */ > >>> PHP_MINFO_FUNCTION(axis2) > >>> { > >>> php_info_print_table_start(); > >>> php_info_print_table_header(2, "axis2 support", "enabled"); > >>> php_info_print_table_end(); > >>> > >>> /* Remove comments if you have entries in php.ini > >>> DISPLAY_INI_ENTRIES(); > >>> */ > >>> } > >>> /* }}} */ > >>> > >>> > >>> > >>> > >>> > >>> /* {{{ proto string axis2_helloworld() > >>> say welcome note */ > >>> PHP_FUNCTION(axis2_helloworld) > >>> { > >>> php_printf(" welcome axis2"); > >>> } > >>> /* }}} */ > >>> > >>> > >>> > >>> void php_axis2_destroy_env() > >>> { > >>> TSRMLS_FETCH(); > >>> axis2_env_free(AXIS2_G(env)); > >>> AXIS2_G(env) = NULL; > >>> AXIS2_G(allocator) = NULL; > >>> } > >>> > >>> axis2_env_t *php_axis2_get_env() > >>> { > >>> TSRMLS_FETCH(); > >>> return AXIS2_G(env); > >>> } > >>> > >>> /* > >>> * Local variables: > >>> * tab-width: 4 > >>> * c-basic-offset: 4 > >>> * End: > >>> * vim600: noet sw=4 ts=4 fdm=marker > >>> * vim<600: noet sw=4 ts=4 > >>> */ > >>> > >>> > >>> ------------------------------------------------------------------------ > >>> > >>> > >>> #ifndef AXIS2_FE_H > >>> #define AXIS2_FE_H > >>> > >>> extern zend_function_entry php_axis2_xml_reader_class_functions[]; > >>> extern zend_function_entry php_axis2_xml_writer_class_functions[]; > >>> extern zend_function_entry php_axis2_om_element_class_functions[]; > >>> extern zend_function_entry php_axis2_om_comment_class_functions[]; > >>> extern zend_function_entry php_axis2_om_text_class_functions[]; > >>> extern zend_function_entry php_axis2_om_pi_class_functions[]; > >>> extern zend_function_entry php_axis2_om_stax_builder_class_functions[]; > >>> extern zend_function_entry php_axis2_om_document_class_functions[]; > >>> extern zend_function_entry php_axis2_om_attribute_class_functions[]; > >>> extern zend_function_entry php_axis2_om_namespace_class_functions[]; > >>> > >>> /** axis2_xml_reader functions */ > >>> PHP_METHOD(xml_reader, __construct); > >>> PHP_FUNCTION(axis2_xml_reader_next); > >>> PHP_FUNCTION(axis2_xml_reader_get_attribute_count); > >>> PHP_FUNCTION(axis2_xml_reader_get_attribute_name_by_number); > >>> PHP_FUNCTION(axis2_xml_reader_get_attribute_prefix_by_number); > >>> PHP_FUNCTION(axis2_xml_reader_get_attribute_namespace_by_number); > >>> PHP_FUNCTION(axis2_xml_reader_get_attribute_value_by_number); > >>> PHP_FUNCTION(axis2_xml_reader_get_name); > >>> PHP_FUNCTION(axis2_xml_reader_get_value); > >>> PHP_FUNCTION(axis2_xml_reader_get_prefix); > >>> PHP_FUNCTION(axis2_xml_reader_get_namespace_count); > >>> PHP_FUNCTION(axis2_xml_reader_get_namespace_uri_by_number); > >>> PHP_FUNCTION(axis2_xml_reader_get_namespace_prefix_by_number); > >>> PHP_FUNCTION(axis2_xml_reader_get_pi_target); > >>> PHP_FUNCTION(axis2_xml_reader_get_pi_data); > >>> > >>> > >>> typedef enum { > >>> > >>> OM_ELEMENT = 0, > >>> OM_NODE, > >>> OM_PI, > >>> OM_COMMENT, > >>> OM_TEXT, > >>> OM_DOCTYPE, > >>> AXIS2_XML_READER, > >>> AXIS2_XML_WRITER, > >>> OM_DOCUMENT, > >>> OM_STAX_BUILDER > >>> }om_obj_types; > >>> > >>> > >>> #endif /* AXIS2_FE_H */ > >>> > >>> ------------------------------------------------------------------------ > >>> > >>> > >>> /* > >>> +----------------------------------------------------------------------+ > >>> > >>> | PHP Version > >>> 5 | > >>> +----------------------------------------------------------------------+ > >>> > >>> | Copyright (c) 1997-2004 The PHP > >>> Group | > >>> +----------------------------------------------------------------------+ > >>> > >>> | This source file is subject to version 3.0 of the PHP > >>> license, | > >>> | that is bundled with this package in the file LICENSE, and > >>> is | > >>> | available through the world-wide-web at the following > >>> url: | > >>> | > >>> http://www.php.net/license/3_0.txt. | > >>> | If you did not receive a copy of the PHP license and are unable > >>> to | > >>> | obtain it through the world-wide-web, please send a note > >>> to | > >>> | [EMAIL PROTECTED] so we can mail you a copy > >>> immediately. | > >>> +----------------------------------------------------------------------+ > >>> > >>> | > >>> Author: | > >>> +----------------------------------------------------------------------+ > >>> > >>> */ > >>> > >>> /* $Id: header,v 1.15 2004/01/08 16:46:52 sniper Exp $ */ > >>> > >>> #ifndef PHP_AXIS2_H > >>> #define PHP_AXIS2_H > >>> > >>> extern zend_module_entry axis2_module_entry; > >>> #define phpext_axis2_ptr &axis2_module_entry > >>> > >>> #ifdef PHP_WIN32 > >>> #define PHP_AXIS2_API __declspec(dllexport) > >>> #else > >>> #define PHP_AXIS2_API > >>> #endif > >>> > >>> #ifdef ZTS > >>> #include "TSRM.h" > >>> #endif > >>> > >>> #include "axis2_ce.h" > >>> #include "axis2_fe.h" > >>> #include "axis2_common.h" > >>> > >>> #include <axis2.h> > >>> #include <axis2_env.h> > >>> > >>> > >>> > >>> > >>> > >>> PHP_MINIT_FUNCTION(axis2); > >>> PHP_MSHUTDOWN_FUNCTION(axis2); > >>> PHP_RINIT_FUNCTION(axis2); > >>> PHP_RSHUTDOWN_FUNCTION(axis2); > >>> PHP_MINFO_FUNCTION(axis2); > >>> > >>> PHP_FUNCTION(axis2_helloworld); /* For testing, remove later. */ > >>> > >>> > >>> > >>> typedef struct axis2_object{ > >>> zend_object std; > >>> void *ptr; > >>> int obj_type; > >>> HashTable *prop_handler; > >>> zend_object_handle handle; > >>> HashTable *node_list; > >>> }axis2_object; > >>> > >>> typedef axis2_object *axis2_object_ptr; > >>> > >>> void php_axis2_objects_free_storage(void *object TSRMLS_DC); > >>> void php_axis2_destroy_env(); > >>> axis2_env_t *php_axis2_get_env(); > >>> > >>> /* Declare any global variables you may need between the BEGIN > >>> and END macros here: */ > >>> > >>> ZEND_BEGIN_MODULE_GLOBALS(axis2) > >>> long global_value; > >>> char *global_string; > >>> axis2_env_t *env; > >>> axis2_allocator_t *allocator; > >>> ZEND_END_MODULE_GLOBALS(axis2) > >>> > >>> > >>> /* In every utility function you add that needs to use variables > >>> in php_axis2_globals, call TSRMLS_FETCH(); after declaring other > >>> variables used by that function, or better yet, pass in TSRMLS_CC > >>> after the last function argument and declare your utility function > >>> with TSRMLS_DC after the last declared argument. Always refer to > >>> the globals in your function as AXIS2_G(variable). You are > >>> encouraged to rename these macros something shorter, see > >>> examples in any other php module directory. > >>> */ > >>> > >>> #ifdef ZTS > >>> #define AXIS2_G(v) TSRMG(axis2_globals_id, zend_axis2_globals *, v) > >>> #else > >>> #define AXIS2_G(v) (axis2_globals.v) > >>> #endif > >>> > >>> #endif /* PHP_AXIS2_H */ > >>> > >>> > >>> /* > >>> * Local variables: > >>> * tab-width: 4 > >>> * c-basic-offset: 4 > >>> * End: > >>> * vim600: noet sw=4 ts=4 fdm=marker > >>> * vim<600: noet sw=4 ts=4 > >>> */ > >>> > >>> > >>> ------------------------------------------------------------------------ > >>> > >>> > >>> > >>> #include "php.h" > >>> #include "php_axis2.h" > >>> #include "axis2_xml_reader.h" > >>> > >>> zend_function_entry php_axis2_xml_reader_class_functions[]= > >>> { > >>> PHP_FALIAS(next, axis2_xml_reader_next, NULL) > >>> PHP_FALIAS(getAttributeCount, > >>> axis2_xml_reader_get_attribute_count, NULL) > >>> PHP_FALIAS(getAttributeName , > >>> axis2_xml_reader_get_attribute_name_by_number, NULL) > >>> PHP_FALIAS(getAttributePrefix, > >>> axis2_xml_reader_get_attribute_prefix_by_number, NULL) > >>> PHP_FALIAS(getAttributeNamespace, > >>> axis2_xml_reader_get_attribute_namespace_by_number, NULL) > >>> PHP_FALIAS(getAttributeValue, > >>> axis2_xml_reader_get_attribute_value_by_number, NULL) > >>> PHP_FALIAS(getName, axis2_xml_reader_get_name, NULL) > >>> PHP_FALIAS(getValue, axis2_xml_reader_get_value, NULL) > >>> PHP_FALIAS(getPrefix, axis2_xml_reader_get_prefix, NULL) > >>> PHP_FALIAS(getNamespaceCount, > >>> axis2_xml_reader_get_namespace_count, NULL) > >>> PHP_FALIAS(getNamespaceUri, > >>> axis2_xml_reader_get_namespace_uri_by_number, NULL) > >>> PHP_FALIAS(getNamespacePrefix, > >>> axis2_xml_reader_get_namespace_prefix_by_number, NULL) > >>> PHP_FALIAS(getPITarget , axis2_xml_reader_get_pi_target, NULL) > >>> PHP_FALIAS(getPIData, axis2_xml_reader_get_pi_data, NULL) > >>> PHP_ME(xml_reader, __construct, NULL, ZEND_ACC_PUBLIC) > >>> {NULL, NULL, NULL} }; > >>> > >>> PHP_METHOD(xml_reader , __construct) > >>> { > >>> zval *object = NULL; > >>> axis2_object_ptr axis2_obj = NULL; > >>> om_object_ptr om_obj = NULL; > >>> char *path; > >>> int length; > >>> axis2_env_t *env; > >>> if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, > >>> getThis(), "Os", &object, axis2_xml_reader_class_entry, &path, > >>> &length) == FAILURE) > >>> { > >>> php_std_error_handling(); > >>> return; > >>> } > >>> env = php_axis2_get_env(); > >>> om_obj = emalloc(sizeof(om_object)); > >>> om_obj->ptr = NULL; > >>> om_obj->obj_type = AXIS2_XML_READER; > >>> om_obj->ptr = axis2_xml_reader_create_for_file(&env, path, NULL); > >>> om_obj->ref_count = 1; > >>> if(om_obj->ptr == NULL) > >>> { > >>> php_printf("reader null"); > >>> } > >>> axis2_obj = > >>> (axis2_object_ptr)zend_object_store_get_object(object TSRMLS_CC); > >>> axis2_obj->ptr = om_obj; > >>> } > >>> > >>> PHP_FUNCTION(axis2_xml_reader_next) > >>> { > >>> axis2_object_ptr axis2_obj = NULL; > >>> zval *obj = NULL; > >>> axis2_xml_reader_t *reader = NULL; > >>> axis2_env_t *env = NULL; > >>> long i = 0; > >>> obj = getThis(); > >>> env = php_axis2_get_env(); > >>> axis2_obj = (axis2_object_ptr)zend_object_store_get_object(obj > >>> TSRMLS_CC); > >>> reader =(axis2_xml_reader_t*) > >>> (((om_object_ptr)(axis2_obj->ptr))->ptr); > >>> i = AXIS2_XML_READER_NEXT(reader, &env); > >>> RETURN_LONG(i); > >>> } > >>> PHP_FUNCTION(axis2_xml_reader_get_attribute_count) > >>> { > >>> axis2_object_ptr axis2_obj = NULL; > >>> zval *obj = NULL; > >>> axis2_xml_reader_t *reader = NULL; > >>> axis2_env_t *env = NULL; > >>> int i = 0; > >>> obj = getThis(); > >>> env = php_axis2_get_env(); > >>> axis2_obj = (axis2_object_ptr)zend_object_store_get_object(obj > >>> TSRMLS_CC); > >>> reader =(axis2_xml_reader_t*) > >>> (((om_object_ptr)(axis2_obj->ptr))->ptr); > >>> i = AXIS2_XML_READER_GET_ATTRIBUTE_COUNT(reader, &env); > >>> RETURN_LONG(i); > >>> } > >>> PHP_FUNCTION(axis2_xml_reader_get_attribute_name_by_number) > >>> { > >>> axis2_object_ptr axis2_obj = NULL; > >>> zval *obj = NULL; > >>> axis2_xml_reader_t *reader = NULL; > >>> axis2_env_t *env = NULL; > >>> char *attr_name = NULL; > >>> char *name; > >>> long i = 0; > >>> if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, > >>> getThis(), "Ol", &obj, axis2_xml_reader_class_entry, &i) == FAILURE) > >>> { > >>> php_std_error_handling(); > >>> return; > >>> } > >>> env = php_axis2_get_env(); > >>> axis2_obj = (axis2_object_ptr)zend_object_store_get_object(obj > >>> TSRMLS_CC); > >>> reader =(axis2_xml_reader_t*) > >>> (((om_object_ptr)(axis2_obj->ptr))->ptr); > >>> attr_name = AXIS2_XML_READER_GET_ATTRIBUTE_NAME_BY_NUMBER(reader, > >>> &env, i); > >>> if(!attr_name) > >>> { > >>> RETURN_NULL(); > >>> } > >>> else > >>> { > >>> name = estrdup(attr_name); > >>> AXIS2_XML_READER_XML_FREE(reader, &env, attr_name); > >>> } > >>> RETURN_STRING(name, 0); > >>> } > >>> PHP_FUNCTION(axis2_xml_reader_get_attribute_prefix_by_number) > >>> { > >>> axis2_object_ptr axis2_obj = NULL; > >>> zval *obj = NULL; > >>> axis2_xml_reader_t *reader = NULL; > >>> axis2_env_t *env = NULL; > >>> char *attr_prefix = NULL; > >>> char *prefix; > >>> long i = 0; > >>> if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, > >>> getThis(), "Ol", &obj, axis2_xml_reader_class_entry, &i) == FAILURE) > >>> { > >>> php_std_error_handling(); > >>> return; > >>> } > >>> env = php_axis2_get_env(); > >>> axis2_obj = (axis2_object_ptr)zend_object_store_get_object(obj > >>> TSRMLS_CC); > >>> reader =(axis2_xml_reader_t*) > >>> (((om_object_ptr)(axis2_obj->ptr))->ptr); > >>> attr_prefix = > >>> AXIS2_XML_READER_GET_ATTRIBUTE_PREFIX_BY_NUMBER(reader, &env, i); > >>> if(!attr_prefix) > >>> { > >>> RETURN_NULL(); > >>> } > >>> else > >>> { > >>> prefix = estrdup(attr_prefix); > >>> AXIS2_XML_READER_XML_FREE(reader, &env, attr_prefix); > >>> } > >>> RETURN_STRING(prefix, 0); > >>> > >>> } > >>> PHP_FUNCTION(axis2_xml_reader_get_attribute_namespace_by_number) > >>> { > >>> axis2_object_ptr axis2_obj = NULL; > >>> zval *obj = NULL; > >>> axis2_xml_reader_t *reader = NULL; > >>> axis2_env_t *env = NULL; > >>> char *attr_ns_uri = NULL; > >>> char *uri; > >>> long i = 0; > >>> if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, > >>> getThis(), "Ol", &obj, axis2_xml_reader_class_entry, &i) == FAILURE) > >>> { > >>> php_std_error_handling(); > >>> return; > >>> } > >>> env = php_axis2_get_env(); > >>> axis2_obj = (axis2_object_ptr)zend_object_store_get_object(obj > >>> TSRMLS_CC); > >>> reader =(axis2_xml_reader_t*) > >>> (((om_object_ptr)(axis2_obj->ptr))->ptr); > >>> attr_ns_uri = > >>> AXIS2_XML_READER_GET_ATTRIBUTE_NAMESPACE_BY_NUMBER(reader, &env, i); > >>> if(!attr_ns_uri) > >>> { > >>> RETURN_NULL(); > >>> } else > >>> { > >>> uri = estrdup(attr_ns_uri); > >>> AXIS2_XML_READER_XML_FREE(reader, &env, attr_ns_uri); > >>> } > >>> RETURN_STRING(uri, 0); > >>> } > >>> PHP_FUNCTION(axis2_xml_reader_get_attribute_value_by_number) > >>> { > >>> axis2_object_ptr axis2_obj = NULL; > >>> zval *obj = NULL; > >>> axis2_xml_reader_t *reader = NULL; > >>> axis2_env_t *env = NULL; > >>> char *attr_value = NULL; > >>> char *value; > >>> long i = 0; > >>> if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, > >>> getThis(), "Ol", &obj, axis2_xml_reader_class_entry, &i) == FAILURE) > >>> { > >>> php_std_error_handling(); > >>> return; > >>> } > >>> env = php_axis2_get_env(); > >>> axis2_obj = (axis2_object_ptr)zend_object_store_get_object(obj > >>> TSRMLS_CC); > >>> reader =(axis2_xml_reader_t*) > >>> (((om_object_ptr)(axis2_obj->ptr))->ptr); > >>> attr_value = > >>> AXIS2_XML_READER_GET_ATTRIBUTE_VALUE_BY_NUMBER(reader, &env, i); > >>> if(!attr_value) > >>> { > >>> RETURN_NULL(); > >>> } > >>> else > >>> { value = estrdup(attr_value); > >>> AXIS2_XML_READER_XML_FREE(reader, &env, attr_value); > >>> } > >>> RETURN_STRING(value, 0); > >>> > >>> } > >>> PHP_FUNCTION(axis2_xml_reader_get_name) > >>> { > >>> axis2_object_ptr axis2_obj = NULL; > >>> zval *obj = NULL; > >>> axis2_xml_reader_t *reader = NULL; > >>> axis2_env_t *env = NULL; > >>> char *name = NULL; > >>> char *na = NULL; > >>> obj = getThis(); > >>> env = php_axis2_get_env(); > >>> axis2_obj = (axis2_object_ptr)zend_object_store_get_object(obj > >>> TSRMLS_CC); > >>> reader =(axis2_xml_reader_t*) > >>> (((om_object_ptr)(axis2_obj->ptr))->ptr); > >>> name = AXIS2_XML_READER_GET_NAME(reader, &env); > >>> if(!name) > >>> { > >>> RETURN_NULL(); > >>> } > >>> else > >>> { na = estrdup(name); > >>> if(name) > >>> AXIS2_XML_READER_XML_FREE(reader, &env, name); > >>> } > >>> RETURN_STRING(na, 0); > >>> > >>> } > >>> PHP_FUNCTION(axis2_xml_reader_get_value) > >>> { > >>> axis2_object_ptr axis2_obj = NULL; > >>> zval *obj = NULL; > >>> axis2_xml_reader_t *reader = NULL; > >>> axis2_env_t *env = NULL; > >>> char *value = NULL; > >>> char *val = NULL; > >>> obj = getThis(); > >>> env = php_axis2_get_env(); > >>> axis2_obj = (axis2_object_ptr)zend_object_store_get_object(obj > >>> TSRMLS_CC); > >>> reader =(axis2_xml_reader_t*) > >>> (((om_object_ptr)(axis2_obj->ptr))->ptr); > >>> value = AXIS2_XML_READER_GET_VALUE(reader, &env); > >>> if(!value) > >>> { > >>> RETURN_NULL(); > >>> } > >>> else > >>> { > >>> val = estrdup(value); > >>> if(value) > >>> AXIS2_XML_READER_XML_FREE(reader, &env, value); > >>> } > >>> RETURN_STRING(val, 0); > >>> > >>> } > >>> PHP_FUNCTION(axis2_xml_reader_get_prefix) > >>> { > >>> axis2_object_ptr axis2_obj = NULL; > >>> zval *obj = NULL; > >>> axis2_xml_reader_t *reader = NULL; > >>> axis2_env_t *env = NULL; > >>> char *prefix = NULL; > >>> char *pre = NULL; > >>> obj = getThis(); > >>> env = php_axis2_get_env(); > >>> axis2_obj = (axis2_object_ptr)zend_object_store_get_object(obj > >>> TSRMLS_CC); > >>> reader =(axis2_xml_reader_t*) > >>> (((om_object_ptr)(axis2_obj->ptr))->ptr); > >>> prefix = AXIS2_XML_READER_GET_PREFIX(reader, &env); > >>> if(!prefix) > >>> { > >>> RETURN_NULL(); > >>> } > >>> else > >>> { > >>> pre = estrdup(prefix); > >>> if(prefix) > >>> AXIS2_XML_READER_XML_FREE(reader, &env, prefix); > >>> } > >>> RETURN_STRING(pre, 0); > >>> > >>> } > >>> PHP_FUNCTION(axis2_xml_reader_get_namespace_count) > >>> { > >>> axis2_object_ptr axis2_obj = NULL; > >>> zval *obj = NULL; > >>> axis2_xml_reader_t *reader = NULL; > >>> axis2_env_t *env = NULL; > >>> long i =0; > >>> obj = getThis(); > >>> env = php_axis2_get_env(); > >>> axis2_obj = (axis2_object_ptr)zend_object_store_get_object(obj > >>> TSRMLS_CC); > >>> reader =(axis2_xml_reader_t*) > >>> (((om_object_ptr)(axis2_obj->ptr))->ptr); > >>> i = AXIS2_XML_READER_GET_NAMESPACE_COUNT(reader, &env); > >>> RETURN_LONG(i); > >>> > >>> } > >>> PHP_FUNCTION(axis2_xml_reader_get_namespace_uri_by_number) > >>> { > >>> axis2_object_ptr axis2_obj = NULL; > >>> zval *obj = NULL; > >>> axis2_xml_reader_t *reader = NULL; > >>> axis2_env_t *env = NULL; > >>> char *ns_uri = NULL; > >>> char *uri = NULL; > >>> long i = 0; > >>> if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, > >>> getThis(), "Ol", &obj, axis2_xml_reader_class_entry, &i) == FAILURE) > >>> { > >>> php_std_error_handling(); > >>> return; > >>> } > >>> env = php_axis2_get_env(); > >>> axis2_obj = (axis2_object_ptr)zend_object_store_get_object(obj > >>> TSRMLS_CC); > >>> reader =(axis2_xml_reader_t*) > >>> (((om_object_ptr)(axis2_obj->ptr))->ptr); > >>> ns_uri = AXIS2_XML_READER_GET_NAMESPACE_URI_BY_NUMBER(reader, > >>> &env, i); > >>> if(!ns_uri) > >>> { > >>> RETURN_NULL(); > >>> } > >>> else > >>> { > >>> uri = estrdup(ns_uri); > >>> AXIS2_XML_READER_XML_FREE(reader, &env, ns_uri); > >>> } > >>> RETURN_STRING(uri, 0); > >>> > >>> } > >>> PHP_FUNCTION(axis2_xml_reader_get_namespace_prefix_by_number) > >>> { > >>> axis2_object_ptr axis2_obj = NULL; > >>> zval *obj = NULL; > >>> axis2_xml_reader_t *reader = NULL; > >>> axis2_env_t *env = NULL; > >>> char *ns_prefix = NULL; > >>> char *prefix = NULL; > >>> long i = 0; > >>> if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, > >>> getThis(), "Ol", &obj, axis2_xml_reader_class_entry, &i) == FAILURE) > >>> { > >>> php_std_error_handling(); > >>> return; > >>> } > >>> env = php_axis2_get_env(); > >>> axis2_obj = (axis2_object_ptr)zend_object_store_get_object(obj > >>> TSRMLS_CC); > >>> reader =(axis2_xml_reader_t*) > >>> (((om_object_ptr)(axis2_obj->ptr))->ptr); > >>> ns_prefix = > >>> AXIS2_XML_READER_GET_NAMESPACE_PREFIX_BY_NUMBER(reader, &env, i); > >>> if(!ns_prefix) > >>> { > >>> RETURN_NULL(); > >>> } > >>> else > >>> { > >>> prefix = estrdup(ns_prefix); > >>> AXIS2_XML_READER_XML_FREE(reader, &env, ns_prefix); > >>> } > >>> RETURN_STRING(prefix, 0); > >>> } > >>> PHP_FUNCTION(axis2_xml_reader_get_pi_target) > >>> { > >>> axis2_object_ptr axis2_obj = NULL; > >>> zval *obj = NULL; > >>> axis2_xml_reader_t *reader = NULL; > >>> axis2_env_t *env = NULL; > >>> char *pi_target = NULL; > >>> char *target = NULL; > >>> obj = getThis(); > >>> env = php_axis2_get_env(); > >>> axis2_obj = (axis2_object_ptr)zend_object_store_get_object(obj > >>> TSRMLS_CC); > >>> reader =(axis2_xml_reader_t*) > >>> (((om_object_ptr)(axis2_obj->ptr))->ptr); > >>> pi_target = AXIS2_XML_READER_GET_PI_TARGET(reader, &env); > >>> if(!pi_target) > >>> { > >>> RETURN_NULL(); > >>> } > >>> else > >>> { > >>> target = estrdup(pi_target); > >>> if(pi_target) > >>> AXIS2_XML_READER_XML_FREE(reader, &env, pi_target); > >>> } > >>> RETURN_STRING(target, 0); > >>> > >>> } > >>> PHP_FUNCTION(axis2_xml_reader_get_pi_data) > >>> { > >>> axis2_object_ptr axis2_obj = NULL; > >>> zval *obj = NULL; > >>> axis2_xml_reader_t *reader = NULL; > >>> axis2_env_t *env = NULL; > >>> char *pi_data = NULL; > >>> char *data = NULL; > >>> obj = getThis(); > >>> env = php_axis2_get_env(); > >>> axis2_obj = (axis2_object_ptr)zend_object_store_get_object(obj > >>> TSRMLS_CC); > >>> reader =(axis2_xml_reader_t*) > >>> (((om_object_ptr)(axis2_obj->ptr))->ptr); > >>> pi_data = AXIS2_XML_READER_GET_PI_DATA(reader, &env); > >>> if(!pi_data) > >>> { > >>> RETURN_NULL(); > >>> } > >>> else > >>> { > >>> data = estrdup(pi_data); > >>> if(pi_data) > >>> AXIS2_XML_READER_XML_FREE(reader, &env, pi_data); > >>> } > >>> RETURN_STRING(data, 0); > >>> } > >>> > >> > >> > > > > > >
