You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sa...@apache.org on 2005/12/05 07:22:15 UTC
svn commit: r353997 [1/2] - in /webservices/axis2/trunk/c/bindings/php: ./
axis2/ axis2/tests/
Author: samisa
Date: Sun Dec 4 22:21:44 2005
New Revision: 353997
URL: http://svn.apache.org/viewcvs?rev=353997&view=rev
Log: (empty)
Added:
webservices/axis2/trunk/c/bindings/php/
webservices/axis2/trunk/c/bindings/php/axis2/
webservices/axis2/trunk/c/bindings/php/axis2/.cvsignore
webservices/axis2/trunk/c/bindings/php/axis2/CREDITS
webservices/axis2/trunk/c/bindings/php/axis2/EXPERIMENTAL
webservices/axis2/trunk/c/bindings/php/axis2/axis2.c
webservices/axis2/trunk/c/bindings/php/axis2/axis2.php
webservices/axis2/trunk/c/bindings/php/axis2/axis2_ce.h
webservices/axis2/trunk/c/bindings/php/axis2/axis2_common.h
webservices/axis2/trunk/c/bindings/php/axis2/axis2_fe.h
webservices/axis2/trunk/c/bindings/php/axis2/axis2_properties.h
webservices/axis2/trunk/c/bindings/php/axis2/config.m4
webservices/axis2/trunk/c/bindings/php/axis2/config.w32
webservices/axis2/trunk/c/bindings/php/axis2/om_attribute.c
webservices/axis2/trunk/c/bindings/php/axis2/om_comment.c
webservices/axis2/trunk/c/bindings/php/axis2/om_doctype.c
webservices/axis2/trunk/c/bindings/php/axis2/om_document.c
webservices/axis2/trunk/c/bindings/php/axis2/om_element.c
webservices/axis2/trunk/c/bindings/php/axis2/om_namespace.c
webservices/axis2/trunk/c/bindings/php/axis2/om_node.c
webservices/axis2/trunk/c/bindings/php/axis2/om_output.c
webservices/axis2/trunk/c/bindings/php/axis2/om_processing_instruction.c
webservices/axis2/trunk/c/bindings/php/axis2/om_stax_builder.c
webservices/axis2/trunk/c/bindings/php/axis2/om_text.c
webservices/axis2/trunk/c/bindings/php/axis2/output.php
webservices/axis2/trunk/c/bindings/php/axis2/php_axis2.h
webservices/axis2/trunk/c/bindings/php/axis2/qname.c
webservices/axis2/trunk/c/bindings/php/axis2/tests/
webservices/axis2/trunk/c/bindings/php/axis2/tests/001.phpt
webservices/axis2/trunk/c/bindings/php/axis2/xml_reader.c
webservices/axis2/trunk/c/bindings/php/axis2/xml_writer.c
Added: webservices/axis2/trunk/c/bindings/php/axis2/.cvsignore
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/.cvsignore?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/.cvsignore (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/.cvsignore Sun Dec 4 22:21:44 2005
@@ -0,0 +1,3 @@
+.deps
+*.lo
+*.la
Added: webservices/axis2/trunk/c/bindings/php/axis2/CREDITS
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/CREDITS?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/CREDITS (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/CREDITS Sun Dec 4 22:21:44 2005
@@ -0,0 +1 @@
+axis2
\ No newline at end of file
Added: webservices/axis2/trunk/c/bindings/php/axis2/EXPERIMENTAL
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/EXPERIMENTAL?rev=353997&view=auto
==============================================================================
(empty)
Added: webservices/axis2/trunk/c/bindings/php/axis2/axis2.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/axis2.c?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/axis2.c (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/axis2.c Sun Dec 4 22:21:44 2005
@@ -0,0 +1,426 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+/*
+ +----------------------------------------------------------------------+
+ | 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 |
+ | license@php.net 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"
+
+
+static 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_AXIS2_CLASS(ce,"Axis2XMLWriter",NULL, php_axis2_xml_writer_class_functions, axis2_xml_writer_class_entry);
+
+ REGISTER_AXIS2_CLASS(ce,"Axis2OMBuilder",NULL, php_axis2_om_stax_builder_class_functions, axis2_om_stax_builder_class_entry);
+
+ REGISTER_AXIS2_CLASS(ce,"Axis2OMDocument",NULL, php_axis2_om_document_class_functions, axis2_om_document_class_entry);
+
+ REGISTER_AXIS2_CLASS(ce,"Axis2OMOutput",NULL, php_axis2_om_output_class_functions, axis2_om_output_class_entry);
+
+
+ REGISTER_AXIS2_CLASS(ce, "Axis2OMNamespace", NULL, php_axis2_om_namespace_class_functions, axis2_om_namespace_class_entry);
+
+ REGISTER_AXIS2_CLASS(ce, "Axis2OMAttribute", NULL, php_axis2_om_attribute_class_functions, axis2_om_attribute_class_entry);
+
+ REGISTER_AXIS2_CLASS(ce, "Axis2Qname", NULL, php_axis2_qname_class_functions, axis2_qname_class_entry);
+
+ REGISTER_AXIS2_CLASS(ce, "Axis2OMNode", NULL, php_axis2_om_node_class_functions, axis2_om_node_class_entry);
+
+ REGISTER_AXIS2_CLASS(ce, "Axis2OMElement", axis2_om_node_class_entry , php_axis2_om_element_class_functions , axis2_om_element_class_entry);
+
+ REGISTER_AXIS2_CLASS(ce, "Axis2OMText", axis2_om_node_class_entry , php_axis2_om_text_class_functions , axis2_om_text_class_entry);
+
+ REGISTER_AXIS2_CLASS(ce, "Axis2OMComment", axis2_om_node_class_entry , php_axis2_om_comment_class_functions , axis2_om_comment_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);
+
+ /*TODO individual 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->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);
+}
+
+/* {{{ create_axis2_om_object */
+zval *php_axis2_create_om_object(void *obj, int obj_type, zend_class_entry *class_type TSRMLS_DC)
+{
+ zval *wrapper = NULL;
+ zend_class_entry *ce = NULL;
+ axis2_object *intern = NULL;
+ om_object *om_obj = NULL;
+
+ if(!obj)
+ {
+ return NULL;
+ }
+ ce = class_type;
+
+ ALLOC_ZVAL(wrapper);
+ /* ZVAL_NULL(wrapper); */
+ object_init_ex(wrapper,ce);
+ intern = (axis2_object_ptr)zend_objects_get_address(wrapper TSRMLS_CC);
+ ZVAL_ADDREF(wrapper);
+
+ om_obj = (om_object_ptr)emalloc(sizeof(om_object));
+ om_obj->ptr = obj;
+ om_obj->obj_type = obj_type;
+ intern->ptr = om_obj;
+ intern->obj_type = OM_OBJ;
+ return (wrapper);
+}
+
+/* }}} end create object */
+
+/* {{{ create om_node object */
+
+zval *php_axis2_create_om_node_object(void *obj, int node_type, zend_class_entry *class_type TSRMLS_DC)
+{
+ zval *wrapper = NULL;
+ zend_class_entry *ce = NULL;
+ axis2_object *intern = NULL;
+ om_node_t *node_obj = NULL;
+ if(!obj)
+ {
+ return NULL;
+ }
+ ce = class_type;
+ ALLOC_ZVAL(wrapper);
+ /* ZVAL_NULL(wrapper); */
+ object_init_ex(wrapper, ce);
+ intern = (axis2_object_ptr)zend_objects_get_address(wrapper TSRMLS_CC);
+ ZVAL_ADDREF(wrapper);
+
+ node_obj = (om_node_ptr)emalloc(sizeof(om_node_t));
+ node_obj->ptr = obj;
+ node_obj->node_type = node_type;
+ node_obj->builder = NULL;
+ node_obj->doc = NULL;
+ intern->ptr = node_obj;
+ intern->obj_type = OM_NODE_OBJ;
+ return (wrapper);
+}
+/* }}} end om_node_create obj */
+
+/* {{{ set Object */
+void php_axis2_set_object(void *obj,int obj_type, zval *wrapper_in TSRMLS_DC)
+{
+ axis2_object_ptr axis2_obj = NULL;
+
+ axis2_obj = (axis2_object_ptr)zend_object_store_get_object(wrapper_in TSRMLS_CC);
+ axis2_obj->obj_type = obj_type;
+ axis2_obj->ptr = obj;
+}
+/* }}} end set object */
+
+/* {{{ stream to buffer */
+char* php_axis2_stream_to_buffer(php_stream *stream TSRMLS_DC)
+{
+ char *buffer = NULL;
+ int size = 0;
+ char *temp_buffer = NULL;
+ size = php_stream_copy_to_mem(stream,&temp_buffer,PHP_STREAM_COPY_ALL, 0);
+ buffer = estrdup(temp_buffer);
+ pefree(temp_buffer, 0);
+ return buffer;
+}
+
+zend_class_entry* php_axis2_get_class_type(int node_type)
+{
+ zend_class_entry *ce = NULL;
+ switch(node_type)
+ {
+ case OM_ELEMENT:
+ ce = axis2_om_element_class_entry;
+ break;
+ case OM_TEXT:
+ ce = axis2_om_text_class_entry;
+ break;
+ case OM_PI:
+ ce = axis2_om_pi_class_entry;
+ break;
+ case OM_COMMENT:
+ ce = axis2_om_comment_class_entry;
+ break;
+ default:
+ ce = NULL;
+ break;
+ }
+ return ce;
+}
+/* }}} end stream to buffer */
+
+
+/*
+ * 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
+ */
Added: webservices/axis2/trunk/c/bindings/php/axis2/axis2.php
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/axis2.php?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/axis2.php (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/axis2.php Sun Dec 4 22:21:44 2005
@@ -0,0 +1,19 @@
+<?
+if(!extension_loaded('axis2')) {
+ dl('axis2.' . PHP_SHLIB_SUFFIX);
+}
+$module = 'axis2';
+$functions = get_extension_funcs($module);
+echo "Functions available in the test extension:<br>\n";
+foreach($functions as $func) {
+ echo $func."<br>\n";
+}
+echo "<br>\n";
+$function = 'confirm_' . $module . '_compiled';
+if (extension_loaded($module)) {
+ $str = $function($module);
+} else {
+ $str = "Module $module is not compiled into PHP";
+}
+echo "$str\n";
+?>
Added: webservices/axis2/trunk/c/bindings/php/axis2/axis2_ce.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/axis2_ce.h?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/axis2_ce.h (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/axis2_ce.h Sun Dec 4 22:21:44 2005
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#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_qname_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_class_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;
+zend_class_entry *axis2_om_node_class_entry;
+zend_class_entry *axis2_om_output_class_entry;
+#endif /* AXIS2_CE_H */
\ No newline at end of file
Added: webservices/axis2/trunk/c/bindings/php/axis2/axis2_common.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/axis2_common.h?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/axis2_common.h (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/axis2_common.h Sun Dec 4 22:21:44 2005
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef AXIS2_COMMON_H
+#define AXIS2_COMMON_H
+
+#include <axis2_om_node.h>
+#include <axis2_om_document.h>
+#include <axis2_om_stax_builder.h>
+
+typedef struct _om_node {
+ void *ptr;
+ axis2_om_document_t *doc;
+ axis2_om_stax_builder_t *builder;
+ int node_type;
+ int ref_count;
+}om_node_t;
+
+typedef struct _om_object{
+ void *ptr;
+ int obj_type;
+ int ref_count;
+}om_object;
+
+typedef om_node_t* om_node_ptr;
+typedef om_object* om_object_ptr;
+
+
+#define REGISTER_AXIS2_CLASS(ce, name, parent_ce, funcs, entry) \
+INIT_CLASS_ENTRY(ce, name, funcs); \
+ce.create_object = axis2_objects_new; \
+entry = zend_register_internal_class_ex(&ce, parent_ce, NULL TSRMLS_CC);
+
+#define AXIS2_GET_THIS(zval) \
+ if(NULL == (zval = getThis())) \
+ { \
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "object missing "); \
+ RETURN_FALSE; \
+ }
+
+#define AXIS2_GET_OBJ(__ptr, __id, __ptr_type, __intern) \
+ { \
+ __intern = (axis2_object *)zend_object_store_get_object(__id TSRMLS_CC); \
+ if((__intern->ptr)) \
+ { \
+ __ptr = (__ptr_type)(__intern->ptr); \
+ } \
+ }
+
+#endif /* AXIS2_COMMON_H */
\ No newline at end of file
Added: webservices/axis2/trunk/c/bindings/php/axis2/axis2_fe.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/axis2_fe.h?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/axis2_fe.h (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/axis2_fe.h Sun Dec 4 22:21:44 2005
@@ -0,0 +1,209 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#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[];
+extern zend_function_entry php_axis2_om_node_class_functions[];
+extern zend_function_entry php_axis2_qname_class_functions[];
+extern zend_function_entry php_axis2_om_output_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);
+
+/** xml_writer functions */
+
+PHP_FUNCTION(axis2_xml_writer_write_start_element);
+PHP_FUNCTION(axis2_xml_writer_end_start_element);
+PHP_FUNCTION(axis2_xml_writer_write_start_element_with_namespace);
+PHP_FUNCTION(axis2_xml_writer_write_start_element_with_namespace_prefix);
+PHP_FUNCTION(axis2_xml_writer_write_empty_element);
+PHP_FUNCTION(axis2_xml_writer_write_empty_element_with_namespace);
+PHP_FUNCTION(axis2_xml_writer_write_empty_element_with_namespace_prefix);
+PHP_FUNCTION(axis2_xml_writer_write_end_element);
+PHP_FUNCTION(axis2_xml_writer_write_end_document);
+PHP_FUNCTION(axis2_xml_writer_write_attribute);
+PHP_FUNCTION(axis2_xml_writer_write_attribute_with_namespace);
+PHP_FUNCTION(axis2_xml_writer_write_attribute_with_namespace_prefix);
+PHP_FUNCTION(axis2_xml_writer_write_namespace);
+PHP_FUNCTION(axis2_xml_writer_write_default_namespace);
+PHP_FUNCTION(axis2_xml_writer_write_comment);
+PHP_FUNCTION(axis2_xml_writer_write_processing_instruction);
+PHP_FUNCTION(axis2_xml_writer_write_processing_instruction_data);
+PHP_FUNCTION(axis2_xml_writer_write_cdata);
+PHP_FUNCTION(axis2_xml_writer_write_dtd);
+PHP_FUNCTION(axis2_xml_writer_write_entity_ref);
+PHP_FUNCTION(axis2_xml_writer_write_start_document);
+PHP_FUNCTION(axis2_xml_writer_write_start_document_with_version);
+PHP_FUNCTION(axis2_xml_writer_write_start_document_with_version_encoding);
+PHP_FUNCTION(axis2_xml_writer_write_characters);
+PHP_FUNCTION(axis2_xml_writer_get_prefix);
+PHP_FUNCTION(axis2_xml_writer_set_prefix);
+PHP_FUNCTION(axis2_xml_writer_set_default_prefix);
+PHP_FUNCTION(axis2_xml_writer_write_encoded);
+PHP_FUNCTION(axis2_xml_writer_get_xml);
+PHP_METHOD(axis2_xml_writer, __construct);
+
+/********* axis2 qname functions ***************/
+PHP_FUNCTION(axis2_qname_equals);
+PHP_FUNCTION(axis2_qname_clone);
+PHP_FUNCTION(axis2_qname_get_uri);
+PHP_FUNCTION(axis2_qname_get_prefix);
+PHP_FUNCTION(axis2_qname_get_localpart);
+PHP_METHOD(axis2_qname, __construct);
+
+/******** axis2_om_attribute functions *********/
+
+PHP_FUNCTION(axis2_om_attribute_get_qname);
+PHP_FUNCTION(axis2_om_attribute_serialize);
+PHP_FUNCTION(axis2_om_attribute_get_localname);
+PHP_FUNCTION(axis2_om_attribute_get_value);
+PHP_FUNCTION(axis2_om_attribute_set_localname);
+PHP_FUNCTION(axis2_om_attribute_set_value);
+PHP_FUNCTION(axis2_om_attribute_get_namespace);
+PHP_FUNCTION(axis2_om_attribute_set_namespace);
+PHP_METHOD(om_attribute, __construct);
+
+/******* om_namespace functions ******************/
+PHP_FUNCTION(axis2_om_namespace_equals);
+PHP_FUNCTION(axis2_om_namespace_serialize);
+PHP_FUNCTION(axis2_om_namespace_get_uri);
+PHP_FUNCTION(axis2_om_namespace_get_prefix);
+PHP_METHOD(om_namespace, __construct);
+
+/******* om_element functions ********************/
+PHP_FUNCTION(axis2_om_element_find_namespace);
+PHP_FUNCTION(axis2_om_element_declare_namespace);
+PHP_FUNCTION(axis2_om_element_find_namespace_with_qname);
+PHP_FUNCTION(axis2_om_element_add_attribute);
+PHP_FUNCTION(axis2_om_element_get_attribute);
+PHP_FUNCTION(axis2_om_element_serialize);
+PHP_FUNCTION(axis2_om_element_find_declared_namespace);
+PHP_FUNCTION(axis2_om_element_get_localname);
+PHP_FUNCTION(axis2_om_element_get_namespace);
+PHP_FUNCTION(axis2_om_element_set_namespace);
+PHP_FUNCTION(axis2_om_element_set_localname);
+PHP_METHOD(om_element, __construct);
+
+/******* om_comment functions ******************/
+
+PHP_FUNCTION(axis2_om_comment_serialize);
+PHP_FUNCTION(axis2_om_comment_get_value);
+PHP_FUNCTION(axis2_om_comment_set_value);
+PHP_METHOD(om_comment, __construct);
+
+/******** om_document functions ******************/
+
+PHP_FUNCTION(axis2_om_document_build_next);
+PHP_FUNCTION(axis2_om_document_add_child);
+PHP_FUNCTION(axis2_om_document_get_root_element);
+PHP_FUNCTION(axis2_om_document_set_root_element);
+PHP_FUNCTION(axis2_om_document_build_all);
+PHP_METHOD(om_document, __construct);
+
+
+/******* om_node_functions **********************/
+
+PHP_FUNCTION(axis2_om_node_add_child);
+PHP_FUNCTION(axis2_om_node_detach);
+PHP_FUNCTION(axis2_om_node_insert_sibling_after);
+PHP_FUNCTION(axis2_om_node_insert_sibling_before);
+PHP_FUNCTION(axis2_om_node_set_parent);
+PHP_FUNCTION(axis2_om_node_serialize);
+PHP_FUNCTION(axis2_om_node_get_parent);
+PHP_FUNCTION(axis2_om_node_get_first_child);
+PHP_FUNCTION(axis2_om_node_get_last_child);
+PHP_FUNCTION(axis2_om_node_get_previous_sibling);
+PHP_FUNCTION(axis2_om_node_get_next_sibling);
+PHP_FUNCTION(axis2_om_node_get_node_type);
+PHP_FUNCTION(axis2_om_node_get_build_status);
+PHP_METHOD(om_node, __construct);
+
+/****** om_text functions ************************/
+PHP_FUNCTION(axis2_om_text_serialize);
+PHP_FUNCTION(axis2_om_text_set_value);
+PHP_FUNCTION(axis2_om_text_get_value);
+PHP_METHOD(om_text, __construct);
+
+/***** om_stax_builder **************************/
+
+PHP_FUNCTION(axis2_om_stax_builder_next);
+PHP_FUNCTION(axis2_om_stax_builder_discard_current_element);
+PHP_METHOD(om_stax_builder, __construct);
+
+
+/******** processing instruction functions ******/
+PHP_FUNCTION(axis2_om_pi_set_value);
+PHP_FUNCTION(axis2_om_pi_set_target);
+PHP_FUNCTION(axis2_om_pi_get_value);
+PHP_FUNCTION(axis2_om_pi_getTarget);
+PHP_FUNCTION(axis2_om_pi_serialize);
+PHP_METHOD(om_pi, __construct);
+
+/******** om_output *****************************/
+PHP_METHOD(om_output, __construct);
+
+typedef enum {
+
+ NODE_INVALID = 0,
+ OM_DOCUMENT,
+ OM_ELEMENT,
+ OM_DOCTYPE,
+ OM_COMMENT,
+ OM_ATTRIBUTE,
+ OM_NAMESPACE,
+ OM_PI,
+ OM_TEXT,
+ OM_NODE,
+ AXIS2_XML_READER,
+ AXIS2_XML_WRITER,
+ OM_STAX_BUILDER,
+ AXIS2_QNAME,
+ OM_OUTPUT
+}om_obj_types;
+
+typedef enum{
+ OM_OBJ = 0,
+ OM_NODE_OBJ
+}axis2_obj_types;
+
+#endif /* AXIS2_FE_H */
\ No newline at end of file
Added: webservices/axis2/trunk/c/bindings/php/axis2/axis2_properties.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/axis2_properties.h?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/axis2_properties.h (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/axis2_properties.h Sun Dec 4 22:21:44 2005
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef AXIS2_PROPERTIES_H
+#define AXIS2_PROPERTIES_H
+
+#endif /* AXIS2_PROPERTIES_H */
\ No newline at end of file
Added: webservices/axis2/trunk/c/bindings/php/axis2/config.m4
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/config.m4?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/config.m4 (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/config.m4 Sun Dec 4 22:21:44 2005
@@ -0,0 +1,63 @@
+dnl $Id$
+dnl config.m4 for extension axis2
+
+dnl Comments in this file start with the string 'dnl'.
+dnl Remove where necessary. This file will not work
+dnl without editing.
+
+dnl If your extension references something external, use with:
+
+dnl PHP_ARG_WITH(axis2, for axis2 support,
+dnl Make sure that the comment is aligned:
+dnl [ --with-axis2 Include axis2 support])
+
+dnl Otherwise use enable:
+
+dnl PHP_ARG_ENABLE(axis2, whether to enable axis2 support,
+dnl Make sure that the comment is aligned:
+dnl [ --enable-axis2 Enable axis2 support])
+
+if test "$PHP_AXIS2" != "no"; then
+ dnl Write more examples of tests here...
+
+ dnl # --with-axis2 -> check with-path
+ dnl SEARCH_PATH="/usr/local /usr" # you might want to change this
+ dnl SEARCH_FOR="/include/axis2.h" # you most likely want to change this
+ dnl if test -r $PHP_AXIS2/$SEARCH_FOR; then # path given as parameter
+ dnl AXIS2_DIR=$PHP_AXIS2
+ dnl else # search default path list
+ dnl AC_MSG_CHECKING([for axis2 files in default path])
+ dnl for i in $SEARCH_PATH ; do
+ dnl if test -r $i/$SEARCH_FOR; then
+ dnl AXIS2_DIR=$i
+ dnl AC_MSG_RESULT(found in $i)
+ dnl fi
+ dnl done
+ dnl fi
+ dnl
+ dnl if test -z "$AXIS2_DIR"; then
+ dnl AC_MSG_RESULT([not found])
+ dnl AC_MSG_ERROR([Please reinstall the axis2 distribution])
+ dnl fi
+
+ dnl # --with-axis2 -> add include path
+ dnl PHP_ADD_INCLUDE($AXIS2_DIR/include)
+
+ dnl # --with-axis2 -> check for lib and symbol presence
+ dnl LIBNAME=axis2 # you may want to change this
+ dnl LIBSYMBOL=axis2 # you most likely want to change this
+
+ dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
+ dnl [
+ dnl PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $AXIS2_DIR/lib, AXIS2_SHARED_LIBADD)
+ dnl AC_DEFINE(HAVE_AXIS2LIB,1,[ ])
+ dnl ],[
+ dnl AC_MSG_ERROR([wrong axis2 lib version or lib not found])
+ dnl ],[
+ dnl -L$AXIS2_DIR/lib -lm -ldl
+ dnl ])
+ dnl
+ dnl PHP_SUBST(AXIS2_SHARED_LIBADD)
+
+ PHP_NEW_EXTENSION(axis2, axis2.c, $ext_shared)
+fi
Added: webservices/axis2/trunk/c/bindings/php/axis2/config.w32
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/config.w32?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/config.w32 (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/config.w32 Sun Dec 4 22:21:44 2005
@@ -0,0 +1,13 @@
+// $Id$
+// vim:ft=javascript
+
+// If your extension references something external, use ARG_WITH
+// ARG_WITH("axis2", "for axis2 support", "no");
+
+// Otherwise, use ARG_ENABLE
+// ARG_ENABLE("axis2", "enable axis2 support", "no");
+
+if (PHP_AXIS2 != "no") {
+ EXTENSION("axis2", "axis2.c");
+}
+
Added: webservices/axis2/trunk/c/bindings/php/axis2/om_attribute.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/om_attribute.c?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/om_attribute.c (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/om_attribute.c Sun Dec 4 22:21:44 2005
@@ -0,0 +1,270 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include "php.h"
+#include "php_axis2.h"
+#include "axis2_om_node.h"
+#include "axis2_om_attribute.h"
+
+zend_function_entry php_axis2_om_attribute_class_functions[]=
+{
+ PHP_FALIAS(getQname , axis2_om_attribute_get_qname, NULL)
+ PHP_FALIAS(serialize, axis2_om_attribute_serialize, NULL)
+ PHP_FALIAS(getLocalname , axis2_om_attribute_get_localname, NULL)
+ PHP_FALIAS(getValue , axis2_om_attribute_get_value, NULL)
+ PHP_FALIAS(setLocalname , axis2_om_attribute_set_localname, NULL)
+ PHP_FALIAS(setValue , axis2_om_attribute_set_value, NULL)
+ PHP_FALIAS(getNamespace , axis2_om_attribute_get_namespace, NULL)
+ PHP_FALIAS(setNamespace , axis2_om_attribute_set_namespace, NULL)
+ PHP_ME(om_attribute, __construct, NULL, ZEND_ACC_PUBLIC)
+ {NULL, NULL, NULL}
+};
+
+PHP_METHOD(om_attribute, __construct)
+{
+ axis2_object_ptr intern = NULL;
+ om_object_ptr om_obj = NULL;
+ zval *object = NULL;
+ axis2_env_t *env = NULL;
+ char *lname = NULL;
+ char *val = NULL;
+ int lname_len = 0;
+ int val_len = 0;
+ axis2_om_attribute_t *om_attr = NULL;
+
+ axis2_object_ptr intern_ns = NULL;
+ om_object_ptr om_obj_ns = NULL;
+ zval *ns_obj = NULL;
+ axis2_om_namespace_t *ns = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "OssO!",&object, axis2_om_attribute_class_entry ,&lname, &lname_len, &val, &val_len,
+ &ns_obj,axis2_om_namespace_class_entry) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+ env = php_axis2_get_env();
+ intern = (axis2_object_ptr)zend_object_store_get_object(object TSRMLS_CC);
+ om_obj = (om_object_ptr)emalloc(sizeof(om_object));
+ om_obj->obj_type = OM_ATTRIBUTE;
+ om_obj->ptr = NULL;
+
+ if(ns_obj)
+ {
+ AXIS2_GET_OBJ(om_obj_ns, ns_obj, om_object_ptr, intern_ns);
+ if(om_obj_ns && om_obj_ns->ptr)
+ ns = (axis2_om_namespace_t *)(om_obj_ns->ptr);
+ }
+
+ om_attr = axis2_om_attribute_create(&env, lname, val, ns);
+ om_obj->ptr = om_attr;
+ intern->ptr = om_obj;
+}
+
+PHP_FUNCTION(axis2_om_attribute_get_localname)
+{
+ axis2_object_ptr intern = NULL;
+ zval *object = NULL;
+ om_object_ptr om_obj = NULL;
+ axis2_env_t *env = NULL;
+ axis2_om_attribute_t *attr = NULL;
+ char *lname = NULL;
+
+ env = php_axis2_get_env();
+ AXIS2_GET_THIS(object);
+
+ AXIS2_GET_OBJ(om_obj, object, om_object_ptr, intern);
+
+ attr = (axis2_om_attribute_t *)(om_obj->ptr);
+
+ if(attr)
+ {
+ lname = AXIS2_OM_ATTRIBUTE_GET_LOCALNAME(attr, &env);
+ RETURN_STRING(lname, 1);
+ }
+ RETURN_NULL();
+}
+
+/* {{{ proto qname getValue */
+PHP_FUNCTION(axis2_om_attribute_get_value)
+{
+ axis2_object_ptr intern = NULL;
+ zval *object = NULL;
+ om_object_ptr om_obj = NULL;
+ axis2_env_t *env = NULL;
+ axis2_om_attribute_t *attr = NULL;
+ char *value = NULL;
+
+ env = php_axis2_get_env();
+ AXIS2_GET_THIS(object);
+
+ AXIS2_GET_OBJ(om_obj, object, om_object_ptr, intern);
+
+ attr = (axis2_om_attribute_t *)(om_obj->ptr);
+
+ if(attr)
+ {
+ value = AXIS2_OM_ATTRIBUTE_GET_VALUE(attr, &env);
+ RETURN_STRING(value, 1);
+ }
+ RETURN_NULL();
+}
+/* }}} end getValue */
+PHP_FUNCTION(axis2_om_attribute_get_namespace)
+{
+ axis2_object_ptr intern = NULL;
+ zval *object = NULL;
+ om_object_ptr om_obj = NULL;
+ axis2_env_t *env = NULL;
+ axis2_om_attribute_t *attr = NULL;
+ axis2_om_namespace_t *ns = NULL;
+ zval *namespace_obj = NULL;
+
+ env = php_axis2_get_env();
+ AXIS2_GET_THIS(object);
+
+ AXIS2_GET_OBJ(om_obj, object, om_object_ptr, intern);
+
+ attr = (axis2_om_attribute_t *)(om_obj->ptr);
+
+ if(attr)
+ {
+ ns = AXIS2_OM_ATTRIBUTE_GET_NAMESPACE(attr, &env);
+ namespace_obj = php_axis2_create_om_object(ns,
+ OM_NAMESPACE, axis2_om_namespace_class_entry TSRMLS_CC);
+ RETURN_ZVAL(namespace_obj, NULL, NULL);
+ }
+ RETURN_NULL();
+}
+
+
+PHP_FUNCTION(axis2_om_attribute_get_qname)
+{
+ axis2_object_ptr intern = NULL;
+ zval *object = NULL;
+ om_object_ptr om_obj = NULL;
+ axis2_env_t *env = NULL;
+ axis2_om_attribute_t *attr = NULL;
+ axis2_qname_t *qname = NULL;
+ zval *qname_obj = NULL;
+
+ env = php_axis2_get_env();
+ AXIS2_GET_THIS(object);
+
+ AXIS2_GET_OBJ(om_obj, object, om_object_ptr, intern);
+
+ attr = (axis2_om_attribute_t *)(om_obj->ptr);
+ if(attr)
+ {
+ qname = AXIS2_OM_ATTRIBUTE_GET_QNAME(attr, &env);
+ qname_obj = php_axis2_create_om_object(qname,
+ AXIS2_QNAME, axis2_qname_class_entry TSRMLS_CC);
+ RETURN_ZVAL(qname_obj, NULL, NULL);
+ }
+ RETURN_NULL();
+}
+
+
+PHP_FUNCTION(axis2_om_attribute_set_localname)
+{
+ axis2_object_ptr intern = NULL;
+ om_object_ptr om_obj = NULL;
+ zval *object = NULL;
+ axis2_env_t *env = NULL;
+ char *lname = NULL;
+ int lname_len = 0;
+ axis2_om_attribute_t *om_attr = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "Os",&object, axis2_om_attribute_class_entry ,&lname, &lname_len) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+ env = php_axis2_get_env();
+
+ AXIS2_GET_OBJ(om_obj, object, om_object_ptr, intern);
+ if(om_obj)
+ {
+ om_attr = (axis2_om_attribute_t*)(om_obj->ptr);
+ AXIS2_OM_ATTRIBUTE_SET_LOCALNAME(om_attr, &env, lname);
+ }
+}
+PHP_FUNCTION(axis2_om_attribute_set_value)
+{
+ axis2_object_ptr intern = NULL;
+ om_object_ptr om_obj = NULL;
+ zval *object = NULL;
+ axis2_env_t *env = NULL;
+ char *value = NULL;
+ int value_len = 0;
+ axis2_om_attribute_t *om_attr = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "Os",&object, axis2_om_attribute_class_entry ,&value, &value_len) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+ env = php_axis2_get_env();
+
+ AXIS2_GET_OBJ(om_obj, object, om_object_ptr, intern);
+ if(om_obj)
+ {
+ om_attr = (axis2_om_attribute_t*)(om_obj->ptr);
+ AXIS2_OM_ATTRIBUTE_SET_VALUE(om_attr, &env, value);
+ }
+
+}
+
+PHP_FUNCTION(axis2_om_attribute_set_namespace)
+{
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr ns_intern = NULL;
+ zval *object = NULL;
+ om_object_ptr om_obj = NULL;
+ om_object_ptr om_ns_obj = NULL;
+ axis2_env_t *env = NULL;
+ axis2_om_attribute_t *attr = NULL;
+ axis2_om_namespace_t *ns = NULL;
+ zval *ns_obj = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "OO",&object, axis2_om_attribute_class_entry ,&ns_obj, axis2_om_namespace_class_entry) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+
+ env = php_axis2_get_env();
+ AXIS2_GET_OBJ(om_obj, object, om_object_ptr, intern);
+ AXIS2_GET_OBJ(om_ns_obj, ns_obj, om_object_ptr, ns_intern);
+
+ attr = (axis2_om_attribute_t *)(om_obj->ptr);
+ ns = (axis2_om_namespace_t *)(om_ns_obj->ptr);
+
+ if(attr && ns)
+ {
+ AXIS2_OM_ATTRIBUTE_SET_NAMESPACE(attr, &env, ns);
+ }
+ RETURN_NULL();
+}
+
+PHP_FUNCTION(axis2_om_attribute_serialize)
+{
+}
Added: webservices/axis2/trunk/c/bindings/php/axis2/om_comment.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/om_comment.c?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/om_comment.c (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/om_comment.c Sun Dec 4 22:21:44 2005
@@ -0,0 +1,134 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "php.h"
+#include "php_axis2.h"
+#include "axis2_om_node.h"
+#include "axis2_om_comment.h"
+
+zend_function_entry php_axis2_om_comment_class_functions[]=
+{
+ /* PHP_FALIAS(serialize , axis2_om_comment_serialize, NULL) */
+ PHP_FALIAS(getValue , axis2_om_comment_get_value, NULL)
+ PHP_FALIAS(setValue , axis2_om_comment_set_value, NULL)
+ PHP_ME(om_comment, __construct, NULL, ZEND_ACC_PUBLIC)
+ { NULL, NULL, NULL}
+};
+
+PHP_METHOD(om_comment, __construct)
+{
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_parent = NULL;
+
+ om_node_ptr node_obj = NULL;
+ om_node_ptr node_obj_parent = NULL;
+
+ zval *object = NULL;
+ zval *object_parent = NULL;
+
+ axis2_env_t *env = NULL;
+ char *value = NULL;
+ int value_len = 0;
+
+ axis2_om_comment_t *om_comment = NULL;
+ axis2_om_node_t *node = NULL;
+ axis2_om_node_t *node_parent = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "OO!s",&object, axis2_om_comment_class_entry, &object_parent,
+ axis2_om_node_class_entry, &value, &value_len) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+ env = php_axis2_get_env();
+
+ intern = (axis2_object_ptr)zend_object_store_get_object(object TSRMLS_CC);
+ node_obj = (om_node_ptr)emalloc(sizeof(om_node_t));
+ node_obj->builder = NULL;
+ node_obj->doc = NULL;
+ node_obj->node_type = OM_COMMENT;
+
+ if(object_parent)
+ {
+ AXIS2_GET_OBJ(node_obj_parent, object_parent, om_node_ptr, intern_parent);
+ if(node_obj_parent && node_obj_parent->ptr)
+ node_parent = (axis2_om_node_t *)(node_obj_parent->ptr);
+ }
+
+ om_comment = axis2_om_comment_create(&env, node_parent, value, &node);
+ node_obj->ptr = node;
+ intern->obj_type = OM_NODE_OBJ;
+ intern->ptr = node_obj;
+}
+
+
+PHP_FUNCTION(axis2_om_comment_serialize){}
+
+PHP_FUNCTION(axis2_om_comment_get_value)
+{
+ axis2_object_ptr intern = NULL;
+ om_node_ptr node_obj = NULL;
+ zval *object = NULL;
+ axis2_env_t *env = NULL;
+ char *value = NULL;
+
+ axis2_om_comment_t *om_comment = NULL;
+ axis2_om_node_t *node = NULL;
+
+ env = php_axis2_get_env();
+ AXIS2_GET_THIS(object);
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+
+ node = (axis2_om_node_t *)(node_obj->ptr);
+
+ if(node)
+ {
+ om_comment = (axis2_om_comment_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(node, &env);
+ value = AXIS2_OM_COMMENT_GET_VALUE(om_comment, &env);
+ RETURN_STRING(value, 1);
+ }
+ RETURN_NULL();
+}
+PHP_FUNCTION(axis2_om_comment_set_value)
+{
+ axis2_object_ptr intern = NULL;
+ om_node_ptr node_obj = NULL;
+
+ zval *object = NULL;
+ axis2_env_t *env = NULL;
+ char *value = NULL;
+ int value_len = 0;
+
+ axis2_om_comment_t *om_comment = NULL;
+ axis2_om_node_t *node = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "Os",&object, axis2_om_comment_class_entry, &value, &value_len) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+ env = php_axis2_get_env();
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+
+ node = (axis2_om_node_t *)(node_obj->ptr);
+
+ om_comment = (axis2_om_comment_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(node, &env);
+ AXIS2_OM_COMMENT_SET_VALUE(om_comment, &env, value);
+}
Added: webservices/axis2/trunk/c/bindings/php/axis2/om_doctype.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/om_doctype.c?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/om_doctype.c (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/om_doctype.c Sun Dec 4 22:21:44 2005
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include "php.h"
+#include "php_axis2.h"
+#include "axis2_om_node.h"
+#include "axis2_om_doctype.h"
+
Added: webservices/axis2/trunk/c/bindings/php/axis2/om_document.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/om_document.c?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/om_document.c (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/om_document.c Sun Dec 4 22:21:44 2005
@@ -0,0 +1,176 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include "php.h"
+#include "php_axis2.h"
+#include "axis2_om_document.h"
+
+zend_function_entry php_axis2_om_document_class_functions[] =
+{
+ PHP_FALIAS(buildNext , axis2_om_document_build_next, NULL)
+ PHP_FALIAS(addChild , axis2_om_document_add_child, NULL)
+ PHP_FALIAS(getRootElement , axis2_om_document_get_root_element, NULL)
+ PHP_FALIAS(setRootElement , axis2_om_document_set_root_element, NULL)
+ PHP_FALIAS(buildAll , axis2_om_document_build_all, NULL)
+ PHP_ME(om_document, __construct, NULL, ZEND_ACC_PUBLIC)
+ { NULL, NULL, NULL}
+};
+
+
+PHP_METHOD(om_document, __construct)
+{
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_root = NULL;
+ axis2_object_ptr intern_builder = NULL;
+
+
+ om_object_ptr om_obj = NULL;
+ om_node_ptr node_obj_root = NULL;
+ om_object_ptr om_obj_builder = NULL;
+
+
+ zval *object = NULL;
+ zval *object_root = NULL;
+ zval *object_builder = NULL;
+
+
+ axis2_om_stax_builder_t *builder = NULL;
+ axis2_om_node_t *root = NULL;
+ axis2_om_document_t *document = NULL;
+ axis2_env_t *env = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "OO!O!",&object, axis2_om_document_class_entry, &object_root,
+ axis2_om_node_class_entry, &object_builder,
+ axis2_om_stax_builder_class_entry) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+
+ env = php_axis2_get_env();
+
+ AXIS2_GET_OBJ(om_obj_builder, object_builder, om_object_ptr, intern_builder);
+
+ AXIS2_GET_OBJ(node_obj_root, object_root, om_node_ptr, intern_root);
+
+ intern = (axis2_object_ptr)zend_object_store_get_object(object TSRMLS_CC);
+ om_obj = (om_object_ptr)emalloc(sizeof(om_object));
+ om_obj->obj_type = OM_DOCUMENT;
+ om_obj->ptr = NULL;
+
+ builder = (axis2_om_stax_builder_t *)(om_obj_builder->ptr);
+ root = (axis2_om_node_t *)(node_obj_root->ptr);
+
+ document = axis2_om_document_create(&env, root, builder);
+ om_obj->ptr = document;
+ intern->ptr = om_obj;
+}
+
+PHP_FUNCTION(axis2_om_document_build_next)
+{
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_node = NULL;
+
+
+ om_object_ptr om_obj = NULL;
+ om_node_ptr node_obj = NULL;
+
+ zval *object = NULL;
+ zval *object_node = NULL;
+
+
+ axis2_om_node_t *node = NULL;
+ axis2_om_document_t *document = NULL;
+ axis2_env_t *env = NULL;
+ int node_type = 0;
+ zend_class_entry *ce_node = NULL;
+
+ AXIS2_GET_THIS(object);
+ AXIS2_GET_OBJ(om_obj, object, om_object_ptr, intern);
+ env = php_axis2_get_env();
+
+ document = (axis2_om_document_t *)(om_obj->ptr);
+
+
+
+ if(document)
+ {
+ node = AXIS2_OM_DOCUMENT_BUILD_NEXT(document, &env);
+ if(node)
+ {
+ node_type = AXIS2_OM_NODE_GET_NODE_TYPE(node, &env);
+ ce_node = php_axis2_get_class_type(node_type);
+ object_node = php_axis2_create_om_node_object(node, node_type, ce_node TSRMLS_CC);
+ RETURN_ZVAL(object_node, NULL, NULL);
+ }
+ }
+ RETURN_NULL();
+}
+PHP_FUNCTION(axis2_om_document_add_child)
+{
+ php_printf("not implemented yet");
+}
+PHP_FUNCTION(axis2_om_document_get_root_element)
+{
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_node = NULL;
+
+
+ om_object_ptr om_obj = NULL;
+ om_node_ptr node_obj = NULL;
+
+ zval *object = NULL;
+ zval *object_node = NULL;
+
+
+ axis2_om_node_t *node = NULL;
+ axis2_om_document_t *document = NULL;
+ axis2_env_t *env = NULL;
+ int node_type = 0;
+ zend_class_entry *ce_node = NULL;
+
+ AXIS2_GET_THIS(object);
+ AXIS2_GET_OBJ(om_obj, object, om_object_ptr, intern);
+ env = php_axis2_get_env();
+
+ document = (axis2_om_document_t *)(om_obj->ptr);
+
+
+
+ if(document)
+ {
+ node = AXIS2_OM_DOCUMENT_GET_ROOT_ELEMENT(document, &env);
+ if(node)
+ {
+ node_type = AXIS2_OM_NODE_GET_NODE_TYPE(node, &env);
+ ce_node = php_axis2_get_class_type(node_type);
+ object_node = php_axis2_create_om_node_object(node, node_type, ce_node TSRMLS_CC);
+ RETURN_ZVAL(object_node, NULL, NULL);
+ }
+ }
+ RETURN_NULL();
+}
+
+PHP_FUNCTION(axis2_om_document_set_root_element)
+{
+ php_printf("not implemented yet");
+}
+PHP_FUNCTION(axis2_om_document_build_all)
+{
+ php_printf("not implemented yet");
+}
Added: webservices/axis2/trunk/c/bindings/php/axis2/om_element.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/om_element.c?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/om_element.c (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/om_element.c Sun Dec 4 22:21:44 2005
@@ -0,0 +1,322 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include "php.h"
+#include "php_axis2.h"
+#include "axis2_om_node.h"
+#include "axis2_om_element.h"
+
+zend_function_entry php_axis2_om_element_class_functions[]=
+{
+ PHP_FALIAS(findNamespace , axis2_om_element_find_namespace, NULL)
+ PHP_FALIAS(declareNamespace , axis2_om_element_declare_namespace, NULL)
+ PHP_FALIAS(findNamespaceWithQname , axis2_om_element_find_namespace_with_qname, NULL)
+ PHP_FALIAS(addAttribute , axis2_om_element_add_attribute, NULL)
+ PHP_FALIAS(getAttribute , axis2_om_element_get_attribute, NULL)
+ /* PHP_FALIAS(serialize , axis2_om_element_serialize, NULL) */
+ PHP_FALIAS(findDeclaredNamespace , axis2_om_element_find_declared_namespace, NULL)
+ PHP_FALIAS(getLocalname , axis2_om_element_get_localname, NULL)
+ PHP_FALIAS(getNamespace , axis2_om_element_get_namespace, NULL)
+ PHP_FALIAS(setNamespace , axis2_om_element_set_namespace, NULL)
+ PHP_FALIAS(setLocalname , axis2_om_element_set_localname, NULL)
+ PHP_ME(om_element, __construct, NULL, ZEND_ACC_PUBLIC)
+{NULL, NULL, NULL}
+};
+
+PHP_METHOD(om_element, __construct)
+{
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_parent = NULL;
+ axis2_object_ptr intern_ns = NULL;
+
+ om_node_ptr node_obj = NULL;
+ om_node_ptr node_obj_parent = NULL;
+ om_object_ptr om_obj_ns = NULL;
+
+ zval *object = NULL;
+ zval *object_parent = NULL;
+ zval *object_ns = NULL;
+
+ axis2_env_t *env = NULL;
+ char *lname = NULL;
+ int lname_len = 0;
+ char *n = NULL;
+
+ axis2_om_element_t *om_element = NULL;
+ axis2_om_node_t *node = NULL;
+ axis2_om_node_t *node_parent = NULL;
+ axis2_om_namespace_t *ns = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "OO!sO!",&object, axis2_om_element_class_entry, &object_parent,
+ axis2_om_node_class_entry, &lname, &lname_len,
+ &object_ns, axis2_om_namespace_class_entry) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+ env = php_axis2_get_env();
+
+ intern = (axis2_object_ptr)zend_object_store_get_object(object TSRMLS_CC);
+ node_obj = (om_node_ptr)emalloc(sizeof(om_node_t));
+ node_obj->builder = NULL;
+ node_obj->doc = NULL;
+ node_obj->node_type = OM_ELEMENT;
+
+ if(object_parent)
+ {
+ AXIS2_GET_OBJ(node_obj_parent, object_parent, om_node_ptr, intern_parent);
+ if(node_obj_parent && node_obj_parent->ptr)
+ node_parent = (axis2_om_node_t *)(node_obj_parent->ptr);
+ }
+ if(object_ns)
+ {
+ AXIS2_GET_OBJ(om_obj_ns, object_ns, om_object_ptr, intern_ns);
+ if(om_obj_ns && om_obj_ns->ptr)
+ ns = (axis2_om_namespace_t *)(om_obj_ns->ptr);
+ }
+
+ om_element = axis2_om_element_create(&env, node_parent, lname, ns, &node);
+ node_obj->ptr = node;
+ intern->obj_type = OM_NODE_OBJ;
+ intern->ptr = node_obj;
+}
+
+
+PHP_FUNCTION(axis2_om_element_get_localname)
+{
+ axis2_object_ptr intern = NULL;
+ om_node_ptr node_obj = NULL;
+
+ zval *object = NULL;
+
+ axis2_env_t *env = NULL;
+ char *localname = NULL;
+ axis2_om_element_t *om_element = NULL;
+ axis2_om_node_t *node = NULL;
+
+ AXIS2_GET_THIS(object);
+
+ env = php_axis2_get_env();
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+ node = (axis2_om_node_t*)(node_obj->ptr);
+ om_element = (axis2_om_element_t*)AXIS2_OM_NODE_GET_DATA_ELEMENT(node , &env);
+
+ localname = AXIS2_OM_ELEMENT_GET_LOCALNAME(om_element, &env);
+ if(localname)
+ {
+ RETURN_STRING(localname, 1);
+ }
+ RETURN_NULL();
+
+}
+PHP_FUNCTION(axis2_om_element_get_namespace)
+{
+ axis2_object_ptr intern = NULL;
+ om_node_ptr node_obj = NULL;
+ zval *object = NULL;
+ zval *object_ns = NULL;
+
+ axis2_env_t *env = NULL;
+ axis2_om_element_t *om_element = NULL;
+ axis2_om_node_t *node = NULL;
+ axis2_om_namespace_t *ns = NULL;
+
+ AXIS2_GET_THIS(object);
+ env = php_axis2_get_env();
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+
+ node = (axis2_om_node_t*)(node_obj->ptr);
+ om_element = (axis2_om_element_t*)AXIS2_OM_NODE_GET_DATA_ELEMENT(node , &env);
+
+ ns = AXIS2_OM_ELEMENT_GET_NAMESPACE(om_element, &env);
+ if(ns)
+ {
+ object_ns = php_axis2_create_om_object(ns, OM_OBJ, axis2_om_namespace_class_entry TSRMLS_CC);
+ RETURN_ZVAL(object_ns, NULL, NULL);
+ }
+ RETURN_NULL();
+}
+
+
+PHP_FUNCTION(axis2_om_element_get_attribute)
+{
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_qname = NULL;
+
+ om_node_ptr node_obj = NULL;
+ om_object_ptr qname_obj = NULL;
+
+ zval *object = NULL;
+ zval *object_attr = NULL;
+ zval *object_qname = NULL;
+
+ axis2_env_t *env = NULL;
+ axis2_om_element_t *om_element = NULL;
+ axis2_om_node_t *node = NULL;
+ axis2_om_attribute_t *attr = NULL;
+ axis2_qname_t *qname = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "OO",&object, axis2_om_element_class_entry, &object_qname,
+ axis2_qname_class_entry) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+ env = php_axis2_get_env();
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+ AXIS2_GET_OBJ(qname_obj, object_qname, om_object_ptr, intern_qname);
+
+ node = (axis2_om_node_t*)(node_obj->ptr);
+ om_element = (axis2_om_element_t*)AXIS2_OM_NODE_GET_DATA_ELEMENT(node , &env);
+ qname = (axis2_qname_t *)(qname_obj->ptr);
+
+ attr = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(om_element, &env, qname);
+ if(attr)
+ {
+ object_attr = php_axis2_create_om_object(attr, OM_OBJ, axis2_om_attribute_class_entry TSRMLS_CC);
+ RETURN_ZVAL(object_attr, NULL, NULL);
+ }
+ RETURN_NULL();
+}
+
+PHP_FUNCTION(axis2_om_element_add_attribute)
+{
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_attr = NULL;
+
+ om_node_ptr node_obj = NULL;
+ om_object_ptr attr_obj = NULL;
+
+ zval *object = NULL;
+ zval *object_attr = NULL;
+
+ axis2_env_t *env = NULL;
+ axis2_om_element_t *om_element = NULL;
+ axis2_om_node_t *node = NULL;
+ axis2_om_attribute_t *attr = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "OO",&object, axis2_om_element_class_entry, &object_attr,
+ axis2_om_attribute_class_entry) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+ env = php_axis2_get_env();
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+ AXIS2_GET_OBJ(attr_obj, object_attr, om_object_ptr, intern_attr);
+
+ node = (axis2_om_node_t*)(node_obj->ptr);
+ om_element = (axis2_om_element_t*)AXIS2_OM_NODE_GET_DATA_ELEMENT(node , &env);
+ attr = (axis2_om_attribute_t *)(attr_obj->ptr);
+ if(attr)
+ {
+ AXIS2_OM_ELEMENT_ADD_ATTRIBUTE(om_element, &env, attr);
+ }
+}
+
+
+PHP_FUNCTION(axis2_om_element_set_namespace)
+{
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_ns = NULL;
+
+ om_node_ptr node_obj = NULL;
+ om_object_ptr om_obj = NULL;
+
+ zval *object = NULL;
+ zval *object_ns = NULL;
+
+ axis2_env_t *env = NULL;
+ axis2_om_element_t *om_element = NULL;
+ axis2_om_node_t *node = NULL;
+ axis2_om_namespace_t *ns = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "OO",&object, axis2_om_element_class_entry, &object_ns,
+ axis2_om_namespace_class_entry) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+ env = php_axis2_get_env();
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+ AXIS2_GET_OBJ(om_obj, object_ns , om_object_ptr, intern_ns);
+
+ node = (axis2_om_node_t*)(node_obj->ptr);
+ om_element = (axis2_om_element_t*)AXIS2_OM_NODE_GET_DATA_ELEMENT(node , &env);
+ ns = (axis2_om_namespace_t *)(om_obj->ptr);
+ if(ns)
+ {
+ AXIS2_OM_ELEMENT_SET_NAMESPACE(om_element, &env, ns, node);
+ }
+}
+
+
+PHP_FUNCTION(axis2_om_element_set_localname)
+{
+ axis2_object_ptr intern = NULL;
+ om_node_ptr node_obj = NULL;
+ zval *object = NULL;
+
+ char *localname = NULL;
+ int lnamelen = 0;
+
+ axis2_env_t *env = NULL;
+ axis2_om_element_t *om_element = NULL;
+ axis2_om_node_t *node = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "Os",&object, axis2_om_element_class_entry, &localname,
+ &lnamelen) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+ env = php_axis2_get_env();
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+
+ node = (axis2_om_node_t*)(node_obj->ptr);
+ om_element = (axis2_om_element_t*)AXIS2_OM_NODE_GET_DATA_ELEMENT(node , &env);
+ if(om_element)
+ {
+ AXIS2_OM_ELEMENT_SET_LOCALNAME(om_element, &env, localname);
+ }
+}
+
+
+PHP_FUNCTION(axis2_om_element_serialize)
+{
+
+}
+
+
+PHP_FUNCTION(axis2_om_element_find_namespace)
+{}
+PHP_FUNCTION(axis2_om_element_declare_namespace)
+{}
+
+PHP_FUNCTION(axis2_om_element_find_namespace_with_qname)
+{}
+PHP_FUNCTION(axis2_om_element_find_declared_namespace){}
Added: webservices/axis2/trunk/c/bindings/php/axis2/om_namespace.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/om_namespace.c?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/om_namespace.c (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/om_namespace.c Sun Dec 4 22:21:44 2005
@@ -0,0 +1,165 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#include "php.h"
+#include "php_axis2.h"
+#include "axis2_om_node.h"
+#include "axis2_om_namespace.h"
+
+zend_function_entry php_axis2_om_namespace_class_functions[]=
+{
+ PHP_FALIAS(equals , axis2_om_namespace_equals, NULL)
+ PHP_FALIAS(serialize , axis2_om_namespace_serialize, NULL)
+ PHP_FALIAS(getUri , axis2_om_namespace_get_uri, NULL)
+ PHP_FALIAS(getPrefix , axis2_om_namespace_get_prefix, NULL)
+ PHP_ME(om_namespace, __construct, NULL, ZEND_ACC_PUBLIC)
+ {NULL, NULL, NULL}
+};
+
+/* {{{ om_namespace __construct [ string, string ] */
+PHP_METHOD(om_namespace, __construct)
+{
+ axis2_object_ptr intern = NULL;
+ zval *object = NULL;
+ om_object_ptr om_obj = NULL;
+ axis2_env_t *env = NULL;
+ char *ns_uri = NULL;
+ char *prefix = NULL;
+ int urilen = 0;
+ int prefixlen = 0;
+ axis2_om_namespace_t *om_namespace = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "Oss",&object, axis2_om_namespace_class_entry ,&ns_uri, &urilen, &prefix, &prefixlen) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+
+ env = php_axis2_get_env();
+ intern = (axis2_object_ptr)zend_object_store_get_object(object TSRMLS_CC);
+ om_obj = (om_object_ptr)emalloc(sizeof(om_object));
+ om_obj->obj_type = OM_NAMESPACE;
+ om_obj->ptr = NULL;
+
+ om_namespace = axis2_om_namespace_create (&env, ns_uri, prefix);
+ if(!om_namespace)
+ {
+ php_error_docref(NULL TSRMLS_CC, E_OUTOFMEMORY, " namespace create failure ");
+ }
+
+ om_obj->ptr = om_namespace;
+
+ intern->obj_type = OM_OBJ;
+ intern->ptr = om_obj;
+}
+
+/* }}} end om_namespace __construct */
+
+/* {{{ om_namespace equals */
+PHP_FUNCTION(axis2_om_namespace_equals)
+{
+ axis2_object_ptr intern= NULL;
+ axis2_object_ptr intern1 = NULL;
+ zval *object = NULL;
+ zval *ns_obj = NULL;
+ om_object_ptr this_ns = NULL;
+ om_object_ptr ns_to_cmp = NULL;
+ axis2_env_t *env = NULL;
+ axis2_om_namespace_t *ns1 = NULL;
+ axis2_om_namespace_t *ns2 = NULL;
+ axis2_bool_t equals = AXIS2_FALSE;
+
+ env = php_axis2_get_env();
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "OO",&object, axis2_om_namespace_class_entry , &ns_obj, axis2_om_namespace_class_entry) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+
+ AXIS2_GET_OBJ(this_ns, object, om_object_ptr, intern);
+ AXIS2_GET_OBJ(ns_to_cmp, ns_obj, om_object_ptr, intern1);
+
+ ns1 = (axis2_om_namespace_t *)(this_ns->ptr);
+ ns2 = (axis2_om_namespace_t *)(ns_to_cmp->ptr);
+
+ equals = AXIS2_OM_NAMESPACE_EQUALS(ns1, &env, ns2);
+
+ if(equals == AXIS2_TRUE)
+ {
+ RETURN_BOOL(1);
+ }
+ if(equals == AXIS2_FALSE)
+ {
+ RETURN_BOOL(0);
+ }
+}
+/* }}} end om_namespace equals */
+
+
+
+PHP_FUNCTION(axis2_om_namespace_get_uri)
+{
+ axis2_object_ptr intern = NULL;
+ zval *object = NULL;
+ om_object_ptr om_obj = NULL;
+ axis2_env_t *env = NULL;
+ axis2_om_namespace_t *ns = NULL;
+ char *uri;
+
+ env = php_axis2_get_env();
+ AXIS2_GET_THIS(object);
+
+ AXIS2_GET_OBJ(om_obj, object, om_object_ptr, intern);
+
+ ns = (axis2_om_namespace_t *)(om_obj->ptr);
+
+ if(ns)
+ {
+ uri = AXIS2_OM_NAMESPACE_GET_URI(ns, &env);
+ RETURN_STRING(uri, 1);
+ }
+ RETURN_NULL();
+}
+
+
+PHP_FUNCTION(axis2_om_namespace_get_prefix)
+{
+ axis2_object_ptr intern = NULL;
+ zval *object = NULL;
+ om_object_ptr om_obj = NULL;
+ axis2_env_t *env = NULL;
+ axis2_om_namespace_t *ns = NULL;
+ char *prefix;
+
+ env = php_axis2_get_env();
+ AXIS2_GET_THIS(object);
+
+ AXIS2_GET_OBJ(om_obj, object, om_object_ptr, intern);
+
+ ns = (axis2_om_namespace_t *)(om_obj->ptr);
+
+ if(ns)
+ {
+ prefix = AXIS2_OM_NAMESPACE_GET_PREFIX(ns, &env);
+ RETURN_STRING(prefix, 1);
+ }
+ RETURN_NULL();
+}
+
+PHP_FUNCTION(axis2_om_namespace_serialize){}
Added: webservices/axis2/trunk/c/bindings/php/axis2/om_node.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/om_node.c?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/om_node.c (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/om_node.c Sun Dec 4 22:21:44 2005
@@ -0,0 +1,419 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "php.h"
+#include "php_axis2.h"
+#include "axis2_om_node.h"
+#include "axis2_om_element.h"
+
+zend_function_entry php_axis2_om_node_class_functions[] =
+{
+ PHP_FALIAS(addChild , axis2_om_node_add_child, NULL)
+ PHP_FALIAS(detach , axis2_om_node_detach, NULL)
+ PHP_FALIAS(insertSiblingAfter , axis2_om_node_insert_sibling_after, NULL)
+ PHP_FALIAS(insertSiblingBefore , axis2_om_node_insert_sibling_before, NULL)
+ PHP_FALIAS(setParent , axis2_om_node_set_parent, NULL)
+ PHP_FALIAS(serialize , axis2_om_node_serialize, NULL)
+ PHP_FALIAS(getParent , axis2_om_node_get_parent, NULL)
+ PHP_FALIAS(getFirstChild , axis2_om_node_get_first_child, NULL)
+ PHP_FALIAS(getLastChild , axis2_om_node_get_last_child, NULL)
+ PHP_FALIAS(getPreviousSibling , axis2_om_node_get_previous_sibling, NULL)
+ PHP_FALIAS(getNextSibling , axis2_om_node_get_next_sibling, NULL)
+ PHP_FALIAS(getNodeType , axis2_om_node_get_node_type, NULL)
+ PHP_FALIAS(isComplete , axis2_om_node_get_build_status, NULL)
+ PHP_ME(om_node, __construct, NULL, ZEND_ACC_PRIVATE)
+ { NULL, NULL, NULL}
+};
+/*
+static zend_class_entry* php_axis2_get_class_type(int node_type)
+{
+ zend_class_entry *ce = NULL;
+ switch(node_type)
+ {
+ case OM_ELEMENT:
+ ce = axis2_om_element_class_entry;
+ break;
+ case OM_TEXT:
+ ce = axis2_om_text_class_entry;
+ break;
+ case OM_PI:
+ ce = axis2_om_pi_class_entry;
+ break;
+ case OM_COMMENT:
+ ce = axis2_om_comment_class_entry;
+ break;
+ default:
+ ce = NULL;
+ break;
+ }
+ return ce;
+}
+*/
+PHP_METHOD(om_node, __construct)
+{
+
+}
+
+/* {{{ proto void Axis2OMNode::addChild */
+PHP_FUNCTION(axis2_om_node_add_child)
+{
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_child = NULL;
+
+ zval *object = NULL;
+ zval *obj_child = NULL;
+
+ om_node_ptr node_obj = NULL;
+ om_node_ptr node_obj_child = NULL;
+
+ axis2_om_node_t *om_node = NULL;
+ axis2_om_node_t *child = NULL;
+ axis2_env_t *env = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "OO",&object, axis2_om_node_class_entry ,&obj_child,axis2_om_node_class_entry) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+
+ env = php_axis2_get_env();
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+
+ AXIS2_GET_OBJ(node_obj_child, obj_child, om_node_ptr, intern_child);
+
+ om_node = (axis2_om_node_t *)(node_obj->ptr);
+ child = (axis2_om_node_t *)(node_obj_child->ptr);
+ /* this should be fixed */
+ AXIS2_OM_NODE_ADD_CHILD(child, &env, om_node);
+
+}
+/* }}} */
+
+PHP_FUNCTION(axis2_om_node_detach)
+{
+ axis2_object_ptr intern = NULL;
+ zval *object = NULL;
+ om_node_ptr node_obj = NULL;
+ axis2_om_node_t *om_node = NULL;
+ axis2_env_t *env = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "OO",&object, axis2_om_node_class_entry ) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+
+ env = php_axis2_get_env();
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+ om_node = (axis2_om_node_t *)(node_obj->ptr);
+ AXIS2_OM_NODE_DETACH(om_node, &env);
+}
+
+PHP_FUNCTION(axis2_om_node_set_parent)
+{
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_parent = NULL;
+
+ zval *object = NULL;
+ zval *obj_parent = NULL;
+
+ om_node_ptr node_obj = NULL;
+ om_node_ptr node_obj_parent = NULL;
+
+ axis2_om_node_t *om_node = NULL;
+ axis2_om_node_t *parent = NULL;
+ axis2_env_t *env = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "OO",&object, axis2_om_node_class_entry ,&obj_parent,axis2_om_node_class_entry) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+
+ env = php_axis2_get_env();
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+
+ AXIS2_GET_OBJ(node_obj_parent, obj_parent, om_node_ptr, intern_parent);
+
+ om_node = (axis2_om_node_t *)(node_obj->ptr);
+ parent = (axis2_om_node_t *)(node_obj_parent->ptr);
+ AXIS2_OM_NODE_SET_PARENT(om_node, &env, parent);
+}
+
+PHP_FUNCTION(axis2_om_node_get_node_type)
+{
+ axis2_object_ptr intern = NULL;
+ zval *object = NULL;
+ om_node_ptr node_obj = NULL;
+ axis2_env_t *env = NULL;
+ axis2_om_node_t *om_node = NULL;
+ int node_type = 0;
+
+ env = php_axis2_get_env();
+ AXIS2_GET_THIS(object);
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+
+ om_node = (axis2_om_node_t *)(node_obj->ptr);
+ node_type = AXIS2_OM_NODE_GET_NODE_TYPE(om_node, &env);
+ RETURN_LONG(node_type);
+}
+
+PHP_FUNCTION(axis2_om_node_get_build_status)
+{
+ axis2_object_ptr intern = NULL;
+ zval *object = NULL;
+ om_node_ptr node_obj = NULL;
+ axis2_env_t *env = NULL;
+ axis2_om_node_t *om_node = NULL;
+ axis2_bool_t status = AXIS2_FALSE;
+
+ env = php_axis2_get_env();
+ AXIS2_GET_THIS(object);
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+
+ om_node = (axis2_om_node_t *)(node_obj->ptr);
+ status = AXIS2_OM_NODE_GET_BUILD_STATUS(om_node, &env);
+ RETURN_BOOL(status);
+}
+
+PHP_FUNCTION(axis2_om_node_get_parent)
+{
+ zend_class_entry *parent_ce = NULL;
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_parent = NULL;
+
+ zval *object = NULL;
+ zval *obj_parent = NULL;
+
+ om_node_ptr node_obj = NULL;
+
+ axis2_om_node_t *om_node = NULL;
+ axis2_om_node_t *parent = NULL;
+ axis2_env_t *env = NULL;
+ int parent_node_type = 0;
+
+ env = php_axis2_get_env();
+
+ AXIS2_GET_THIS(object);
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+
+ om_node = (axis2_om_node_t *)(node_obj->ptr);
+ parent = AXIS2_OM_NODE_GET_PARENT(om_node, &env);
+ if(parent)
+ {
+ parent_node_type = AXIS2_OM_NODE_GET_NODE_TYPE(parent, &env);
+ parent_ce = php_axis2_get_class_type(parent_node_type);
+ obj_parent = php_axis2_create_om_node_object(parent,
+ parent_node_type, parent_ce TSRMLS_CC);
+ RETURN_ZVAL(obj_parent, NULL, NULL);
+ }
+ RETURN_NULL();
+}
+PHP_FUNCTION(axis2_om_node_get_first_child)
+{
+ zend_class_entry *child_ce = NULL;
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_child = NULL;
+
+ zval *object = NULL;
+ zval *obj_child = NULL;
+
+ om_node_ptr node_obj = NULL;
+
+ axis2_om_node_t *om_node = NULL;
+ axis2_om_node_t *child = NULL;
+ axis2_env_t *env = NULL;
+ int child_node_type = 0;
+ axis2_om_element_t *e = NULL;
+
+ env = php_axis2_get_env();
+
+ AXIS2_GET_THIS(object);
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+
+ om_node = (axis2_om_node_t *)(node_obj->ptr);
+
+ child = AXIS2_OM_NODE_GET_FIRST_CHILD(om_node, &env);
+ if(child)
+ {
+ child_node_type = AXIS2_OM_NODE_GET_NODE_TYPE(child, &env);
+ child_ce = php_axis2_get_class_type(child_node_type);
+ obj_child = php_axis2_create_om_node_object(child,
+ child_node_type, child_ce TSRMLS_CC);
+ RETURN_ZVAL(obj_child, NULL, NULL);
+
+ }
+ RETURN_NULL();
+
+}
+
+PHP_FUNCTION(axis2_om_node_get_last_child)
+{
+ zend_class_entry *child_ce = NULL;
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_child = NULL;
+
+ zval *object = NULL;
+ zval *obj_child = NULL;
+
+ om_node_ptr node_obj = NULL;
+
+ axis2_om_node_t *om_node = NULL;
+ axis2_om_node_t *child = NULL;
+ axis2_env_t *env = NULL;
+ int child_node_type = 0;
+
+ env = php_axis2_get_env();
+
+ AXIS2_GET_THIS(object);
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+
+ om_node = (axis2_om_node_t *)(node_obj->ptr);
+ child = AXIS2_OM_NODE_GET_LAST_CHILD(om_node, &env);
+ if(child)
+ {
+ child_node_type = AXIS2_OM_NODE_GET_NODE_TYPE(child, &env);
+ child_ce = php_axis2_get_class_type(child_node_type);
+ obj_child = php_axis2_create_om_node_object(child,
+ child_node_type, child_ce TSRMLS_CC);
+ RETURN_ZVAL(obj_child, NULL, NULL);
+ }
+ RETURN_NULL();
+}
+
+PHP_FUNCTION(axis2_om_node_get_previous_sibling)
+{
+ zend_class_entry *sibling_ce = NULL;
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_sibling = NULL;
+
+ zval *object = NULL;
+ zval *obj_sibling = NULL;
+
+ om_node_ptr node_obj = NULL;
+
+ axis2_om_node_t *om_node = NULL;
+ axis2_om_node_t *sibling = NULL;
+ axis2_env_t *env = NULL;
+ int sibling_node_type = 0;
+
+ env = php_axis2_get_env();
+
+ AXIS2_GET_THIS(object);
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+
+ om_node = (axis2_om_node_t *)(node_obj->ptr);
+ sibling = AXIS2_OM_NODE_GET_PREVIOUS_SIBLING(om_node, &env);
+ if(sibling)
+ {
+ sibling_node_type = AXIS2_OM_NODE_GET_NODE_TYPE(sibling, &env);
+ sibling_ce = php_axis2_get_class_type(sibling_node_type);
+ obj_sibling = php_axis2_create_om_node_object(sibling,
+ sibling_node_type, sibling_ce TSRMLS_CC);
+ RETURN_ZVAL(obj_sibling, NULL, NULL);
+ }
+ RETURN_NULL();
+}
+
+PHP_FUNCTION(axis2_om_node_get_next_sibling)
+{
+ zend_class_entry *sibling_ce = NULL;
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_sibling = NULL;
+
+ zval *object = NULL;
+ zval *obj_sibling = NULL;
+
+ om_node_ptr node_obj = NULL;
+
+ axis2_om_node_t *om_node = NULL;
+ axis2_om_node_t *sibling = NULL;
+ axis2_env_t *env = NULL;
+ int sibling_node_type = 0;
+
+ env = php_axis2_get_env();
+
+ AXIS2_GET_THIS(object);
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+
+ om_node = (axis2_om_node_t *)(node_obj->ptr);
+ sibling = AXIS2_OM_NODE_GET_NEXT_SIBLING(om_node, &env);
+ if(sibling)
+ {
+ sibling_node_type = AXIS2_OM_NODE_GET_NODE_TYPE(sibling, &env);
+ sibling_ce = php_axis2_get_class_type(sibling_node_type);
+ obj_sibling = php_axis2_create_om_node_object(sibling,
+ sibling_node_type, sibling_ce TSRMLS_CC);
+ RETURN_ZVAL(obj_sibling, NULL, NULL);
+ }
+ RETURN_NULL();
+}
+PHP_FUNCTION(axis2_om_node_serialize)
+{
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_output = NULL;
+
+ zval *object = NULL;
+ zval *object_output = NULL;
+
+ om_node_ptr node_obj = NULL;
+ om_object_ptr om_obj_output = NULL;
+
+ axis2_om_output_t *output = NULL;
+ axis2_om_node_t *node = NULL;
+ axis2_env_t *env = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "OO",&object, axis2_om_node_class_entry,
+ &object_output , axis2_om_output_class_entry ) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+
+ env = php_axis2_get_env();
+
+ AXIS2_GET_OBJ(node_obj, object, om_node_ptr, intern);
+ AXIS2_GET_OBJ(om_obj_output, object_output, om_object_ptr, intern_output);
+
+ node = (axis2_om_node_t *)(node_obj->ptr);
+ output = (axis2_om_output_t *)(om_obj_output->ptr);
+
+ AXIS2_OM_NODE_SERIALIZE(node, &env, output);
+}
+PHP_FUNCTION(axis2_om_node_insert_sibling_after)
+{
+ php_printf("not implemented yet");
+}
+PHP_FUNCTION(axis2_om_node_insert_sibling_before)
+{
+ php_printf("not implemented yet");
+}
+
+
+
Added: webservices/axis2/trunk/c/bindings/php/axis2/om_output.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/bindings/php/axis2/om_output.c?rev=353997&view=auto
==============================================================================
--- webservices/axis2/trunk/c/bindings/php/axis2/om_output.c (added)
+++ webservices/axis2/trunk/c/bindings/php/axis2/om_output.c Sun Dec 4 22:21:44 2005
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "php.h"
+#include "php_axis2.h"
+#include "axis2_om_output.h"
+#include "axis2_xml_writer.h"
+
+extern zend_function_entry php_axis2_om_output_class_functions[] =
+{
+ PHP_ME(om_output, __construct, NULL, ZEND_ACC_PUBLIC)
+ { NULL, NULL, NULL}
+};
+
+PHP_METHOD(om_output, __construct)
+{
+ axis2_object_ptr intern = NULL;
+ axis2_object_ptr intern_writer = NULL;
+
+ zval *object = NULL;
+ zval *object_writer = NULL;
+
+ om_object_ptr om_obj = NULL;
+ om_object_ptr om_obj_writer = NULL;
+
+ axis2_om_output_t *om_output = NULL;
+ axis2_xml_writer_t *writer = NULL;
+ axis2_env_t *env = NULL;
+
+ if(zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
+ getThis(), "OO",&object, axis2_om_output_class_entry,
+ &object_writer, axis2_xml_writer_class_entry) == FAILURE)
+ {
+ php_std_error_handling();
+ return;
+ }
+
+ env = php_axis2_get_env();
+ intern = (axis2_object_ptr)zend_object_store_get_object(object TSRMLS_CC);
+ om_obj = (om_object_ptr)emalloc(sizeof(om_object));
+ om_obj->obj_type = OM_OUTPUT;
+ om_obj->ptr = NULL;
+
+ AXIS2_GET_OBJ(om_obj_writer, object_writer, om_object_ptr, intern_writer);
+ writer = (axis2_xml_writer_t *)(om_obj_writer->ptr);
+
+ om_output = axis2_om_output_create(&env, writer);
+ om_obj->ptr = om_output;
+
+ intern->obj_type = OM_OBJ;
+ intern->ptr = om_obj;
+}
\ No newline at end of file