[wsf-c-dev] svn commit r382 - wsf/php/src

svn at wso2.com svn at wso2.com
Tue Jan 9 22:45:52 PST 2007


Author: nandika
Date: Tue Jan  9 22:45:35 2007
New Revision: 382

Modified:
   wsf/php/src/util.c
   wsf/php/src/wsf.c
   wsf/php/src/wsf_util.h
Log:
env create functions moved to util.c

Modified: wsf/php/src/util.c
==============================================================================
--- wsf/php/src/util.c	(original)
+++ wsf/php/src/util.c	Tue Jan  9 22:45:35 2007
@@ -26,6 +26,119 @@
 #include <axis2_addr.h>
 #include "wsf.h"
 #include "wsf_util.h"
+#include <axis2_error_default.h>
+#include <axis2_log_default.h>
+
+/* {{{ efree wrapper */
+static void WSF_CALL wsf_free_wrapper_cli(axis2_allocator_t *allocator, void *ptr)
+{
+	efree(ptr);
+}
+/* }}} end efree wrapper */
+
+/* {{{ malloc wrapper */
+static void* WSF_CALL  wsf_malloc_wrapper_cli(axis2_allocator_t *allocator, size_t size)
+{
+    return emalloc(size);
+}
+/* }}} */
+/* {{{ realloc wrapper */
+static void* WSF_CALL  wsf_realloc_warpper_cli(axis2_allocator_t *allocator,void *ptr, size_t size)
+{
+    return erealloc(ptr, size);
+}
+/* }}} */
+
+axis2_env_t *wsf_env_create_for_client(axis2_char_t *logpath)
+{
+	axis2_allocator_t *allocator = NULL;
+    axis2_error_t *error = NULL;
+    axis2_log_t *log = NULL;
+    axis2_char_t client_log[250];
+    axis2_thread_pool_t *thread_pool = NULL;
+	const axis2_char_t *LOG_NAME = "wsf.log";
+    
+	allocator = emalloc(sizeof(axis2_allocator_t));
+    
+    allocator->free_fn = wsf_free_wrapper_cli;
+    allocator->malloc_fn = wsf_malloc_wrapper_cli;
+    allocator->realloc = wsf_realloc_warpper_cli;
+    
+    error = axis2_error_create(allocator);
+	if (logpath && 
+		0 == strcmp(logpath, "") || 
+		0 == strcmp(logpath, ".")||
+		0 == strcmp(logpath, "./")) {
+		snprintf(client_log, 256, "%s", LOG_NAME);
+	} else {
+		snprintf(client_log, 256, "%s/%s", logpath, LOG_NAME);
+	}
+
+    thread_pool = axis2_thread_pool_init(allocator);
+    log = axis2_log_create(allocator, NULL, client_log);
+	return axis2_env_create_with_error_log_thread_pool(allocator, error, log, thread_pool);
+}
+
+/* {{{ malloc wrapper */
+static void* WSF_CALL  wsf_malloc_wrapper(axis2_allocator_t *allocator, size_t size)
+{
+    return pemalloc(size,1);
+}
+/* }}} */
+/* {{{ realloc wrapper */
+static void* WSF_CALL  wsf_realloc_warpper(axis2_allocator_t *allocator,void *ptr, size_t size)
+{
+    return perealloc(ptr, size, 1);
+}
+/* }}} */
+/* {{{ free wrapper */
+static  void WSF_CALL wsf_free_wrapper(axis2_allocator_t *allocator, void *ptr)
+{
+	if (ptr)
+		pefree(ptr, 1);
+}
+/* }}} */
+
+/* {{{ axis2_environment create function */
+axis2_env_t* wsf_env_create(axis2_char_t *path_tolog)
+{
+    axis2_allocator_t *allocator = NULL;
+    axis2_error_t *error = NULL;
+    axis2_log_t *log = NULL;
+    axis2_char_t log_path[250];
+    axis2_env_t *env = NULL;
+    axis2_thread_pool_t *thread_pool = NULL;
+	const axis2_char_t *LOG_NAME = "wsf.log";
+    allocator = pemalloc(sizeof(axis2_allocator_t), 1);
+    
+    allocator->free_fn = wsf_free_wrapper;
+    allocator->malloc_fn = wsf_malloc_wrapper;
+    allocator->realloc = wsf_realloc_warpper;
+    
+    error = axis2_error_create(allocator);
+    if (path_tolog && 
+        0 == strcmp(path_tolog, "") || 
+		0 == strcmp(path_tolog, ".")||
+		0 == strcmp(path_tolog, "./")) {
+		snprintf(log_path, 256, "%s", LOG_NAME);
+	} else {
+		snprintf(log_path, 256, "%s/%s", path_tolog, LOG_NAME);
+	}
+
+    thread_pool = axis2_thread_pool_init(allocator);
+    log = axis2_log_create(allocator, NULL, log_path);
+    env = axis2_env_create_with_error_log_thread_pool(allocator, error, log, thread_pool);
+    return env;
+}
+/* }}} */
+
+void wsf_env_free(axis2_env_t *env){
+
+}
+
+
+
+
 
 ws_svc_info_t* ws_svc_info_create()
 {
@@ -996,5 +1109,48 @@
         tmp_node = AXIOM_NODE_GET_NEXT_SIBLING(tmp_node, env);
     }        
     return;    
-}        
+} 
 
+
+int wsf_util_set_headers(const axis2_env_t *env,
+						 axis2_svc_client_t *svc_client, zval *msg TSRMLS_DC){
+	if(!svc_client || !msg)
+		return 0;
+	{
+		zval **tmp;
+		if(zend_hash_find(Z_OBJPROP_P(msg), "headers", sizeof("headers"),
+			(void**)&tmp) == SUCCESS && Z_TYPE_PP(tmp) == IS_ARRAY){
+				HashPosition *pos =  NULL;
+				HashTable *ht = Z_ARRVAL_PP(tmp);
+		
+		}				
+	}
+	return 1;
+}
+
+char* wsf_util_serialize_om(axis2_env_t *env, axiom_node_t *ret_node)
+{
+	axiom_xml_writer_t *writer = NULL;
+	axiom_output_t *om_output = NULL;
+	axis2_char_t *buffer = NULL;
+	
+	writer = axiom_xml_writer_create_for_memory(env, NULL, AXIS2_TRUE, 0, AXIS2_XML_PARSER_TYPE_BUFFER);
+	om_output = axiom_output_create (env, writer);
+	AXIOM_NODE_SERIALIZE (ret_node, env, om_output);
+	buffer = (axis2_char_t*)AXIOM_XML_WRITER_GET_XML(writer, env);
+	return buffer;
+}
+
+xmlDocPtr wsf_util_serialize_om_to_doc(axis2_env_t *env, axiom_node_t *ret_node)
+{
+	axiom_xml_writer_t *writer = NULL;
+	axiom_output_t *om_output = NULL;
+	xmlDocPtr doc = NULL;
+	
+	writer = axiom_xml_writer_create_for_memory(env, 
+	        NULL, AXIS2_TRUE, 0, AXIS2_XML_PARSER_TYPE_DOC);
+	om_output = axiom_output_create (env, writer);
+	AXIOM_NODE_SERIALIZE (ret_node, env, om_output);
+	doc = (xmlDocPtr)AXIOM_XML_WRITER_GET_XML(writer, env);
+	return doc;
+}  

Modified: wsf/php/src/wsf.c
==============================================================================
--- wsf/php/src/wsf.c	(original)
+++ wsf/php/src/wsf.c	Tue Jan  9 22:45:35 2007
@@ -29,8 +29,7 @@
 #include "zend_objects.h"
 #include "wsf_common.h"
 #include <axis2_env.h>
-#include <axis2_error_default.h>
-#include <axis2_log_default.h>
+
 #include "wsf_util.h"
 
 #include <axis2_svc_client.h>
@@ -58,7 +57,6 @@
 
 /** WSMessage functions */
 PHP_METHOD(ws_message, __construct);
-PHP_METHOD(ws_message, __destruct);
 PHP_METHOD(ws_message, __get);
 
 ZEND_BEGIN_ARG_INFO(__ws_message_get_args, 0)
@@ -95,7 +93,6 @@
 
 /** WSParam functions */
 PHP_METHOD(ws_param, __construct);
-PHP_METHOD(ws_param, __destruct);
 PHP_FUNCTION(ws_param_get_name);
 PHP_FUNCTION(ws_param_get_value);
 PHP_FUNCTION(ws_param_get_attribute);
@@ -118,7 +115,6 @@
 
 zend_function_entry php_ws_message_class_functions[] ={
     PHP_ME(ws_message, __construct, NULL, ZEND_ACC_PUBLIC)
-    PHP_ME(ws_message, __destruct, NULL, ZEND_ACC_PUBLIC)
     PHP_ME(ws_message, __get, __ws_message_get_args , ZEND_ACC_PUBLIC)
 	{NULL , NULL, NULL}
 };
@@ -154,7 +150,6 @@
    	PHP_FALIAS(getAttribute, ws_param_get_attribute, NULL)
 	PHP_FALIAS(addAttribute, ws_param_add_attribute, NULL)
    	PHP_ME(ws_param, __construct, NULL, ZEND_ACC_PUBLIC)
-   	PHP_ME(ws_param, __destruct, NULL, ZEND_ACC_PUBLIC)
     	{NULL , NULL, NULL}
 };
 /** WSFault class entry */
@@ -196,49 +191,11 @@
 static void ws_object_dtor(void *object, 
         zend_object_handle handle TSRMLS_DC);
   
-static axis2_env_t *ws_env_create(axis2_char_t *logpath);
-static axis2_env_t *ws_env_create_for_client(axis2_char_t *logpath);
 
 
-static void ws_env_free(axis2_env_t *env);
 
-/* {{{ malloc wrapper */
-static void* WSF_CALL  ws_malloc_wrapper(axis2_allocator_t *allocator, size_t size)
-{
-    return pemalloc(size,1);
-}
-/* }}} */
-/* {{{ realloc wrapper */
-static void* WSF_CALL  ws_realloc_warpper(axis2_allocator_t *allocator,void *ptr, size_t size)
-{
-    return perealloc(ptr, size, 1);
-}
-/* }}} */
-/* {{{ free wrapper */
-static  void WSF_CALL ws_free_wrapper(axis2_allocator_t *allocator, void *ptr)
-{
-	if (ptr)
-		pefree(ptr, 1);
-}
-/* }}} */
-/* {{{ malloc wrapper */
-static void* WSF_CALL  ws_malloc_wrapper_cli(axis2_allocator_t *allocator, size_t size)
-{
-    return emalloc(size);
-}
-/* }}} */
-/* {{{ realloc wrapper */
-static void* WSF_CALL  ws_realloc_warpper_cli(axis2_allocator_t *allocator,void *ptr, size_t size)
-{
-    return erealloc(ptr, size);
-}
-/* }}} */
-/* {{{ free wrapper */
-static  void WSF_CALL ws_free_wrapper_cli(axis2_allocator_t *allocator, void *ptr)
-{
-   efree(ptr);
-}
-/* }}} */
+
+
 
 /* {{{ ws_worker_dtor() */
 static void ws_worker_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
@@ -257,15 +214,11 @@
 	xmlNodePtr nodep;
 	
 	TSRMLS_FETCH();
-			
 	object = (php_libxml_node_object *)zend_object_store_get_object(node TSRMLS_CC);
-
    	nodep = php_libxml_import_node(node TSRMLS_CC);
-
 	if (!nodep) {
 		return NULL;
 	}
-
 	if (nodep->doc == NULL) {
 		php_error_docref(NULL TSRMLS_CC, E_WARNING, "Imported Node must have \
 			associated Document");
@@ -274,19 +227,18 @@
 	if (nodep->type == XML_DOCUMENT_NODE || nodep->type == XML_HTML_DOCUMENT_NODE) {
 		nodep = xmlDocGetRootElement((xmlDocPtr) nodep);
 	}
-			
 	reader = axiom_xml_reader_create_for_memory(env,
 				(void*)nodep->doc, 0, "utf-8", AXIS2_XML_PARSER_TYPE_DOC);
 	if (!reader) {
 		return NULL;
 	}
 	om_node = ws_util_read_payload(reader, env);
-
 	return om_node;
 }
 /* }}} end ws_convert_libxml_to_om */
+
 /* {{{ proto create an WSFault object */
-static void ws_throw_soap_fault(axiom_soap_body_t *soap_body TSRMLS_DC)
+void ws_throw_soap_fault(axiom_soap_body_t *soap_body TSRMLS_DC)
 {
     
     if(soap_body)
@@ -367,72 +319,31 @@
 }
 
 /* {{{ proto ws_get_xml_node
-   */
+*/
 static xmlNodePtr ws_get_xml_node(zval *node)
 {
 	php_libxml_node_object *object;
 	xmlNodePtr nodep;
 
 	TSRMLS_FETCH();
-	
 	object = (php_libxml_node_object *)zend_object_store_get_object(node TSRMLS_CC);
-
 	nodep = php_libxml_import_node(node TSRMLS_CC);
-
     if (!nodep) {
 		return NULL;
 	}
-	
 	if (nodep->doc == NULL) {
 		php_error_docref(NULL TSRMLS_CC, E_WARNING, "Imported Node must have \
 							associated Document");
 		return NULL;
 	}
-	
 	if (nodep->type == XML_DOCUMENT_NODE || nodep->type == XML_HTML_DOCUMENT_NODE) {
 		nodep = xmlDocGetRootElement((xmlDocPtr) nodep);
 	}
-
 	return nodep;
 }
 /* }}} end ws_get_xml_node */
 
-static void delete_hashtable(void *data)
-{
-	HashTable *ht = (HashTable*)data;
-	zend_hash_destroy(ht);
-	efree(ht);
-}
-
-/* {{{ serialize om to string */
-static char* serialize_om(axis2_env_t *env, axiom_node_t *ret_node)
-{
-	axiom_xml_writer_t *writer = NULL;
-	axiom_output_t *om_output = NULL;
-	axis2_char_t *buffer = NULL;
-	
-	writer = axiom_xml_writer_create_for_memory(env, NULL, AXIS2_TRUE, 0, AXIS2_XML_PARSER_TYPE_BUFFER);
-	om_output = axiom_output_create (env, writer);
-	AXIOM_NODE_SERIALIZE (ret_node, env, om_output);
-	buffer = (axis2_char_t*)AXIOM_XML_WRITER_GET_XML(writer, env);
-	return buffer;
-}
-/* }}} */
-
 /* {{{ serialize om to Dom */
-static xmlDocPtr serialize_om_to_doc(axis2_env_t *env, axiom_node_t *ret_node)
-{
-	axiom_xml_writer_t *writer = NULL;
-	axiom_output_t *om_output = NULL;
-	xmlDocPtr doc = NULL;
-	
-	writer = axiom_xml_writer_create_for_memory(env, 
-	        NULL, AXIS2_TRUE, 0, AXIS2_XML_PARSER_TYPE_DOC);
-	om_output = axiom_output_create (env, writer);
-	AXIOM_NODE_SERIALIZE (ret_node, env, om_output);
-	doc = (xmlDocPtr)AXIOM_XML_WRITER_GET_XML(writer, env);
-	return doc;
-}  
 /* }}} */
               
 /* {{{ wsf_module_entry */
@@ -537,7 +448,7 @@
 	REGISTER_LONG_CONSTANT("WS_SOAP_ROLE_NONE", WS_SOAP_ROLE_NONE, CONST_CS | CONST_PERSISTENT);
 	REGISTER_LONG_CONSTANT("WS_SOAP_ROLE_ULTIMATE_RECEIVER", WS_SOAP_ROLE_ULTIMATE_RECEIVER, CONST_CS | CONST_PERSISTENT);
 
-	env = ws_env_create(WSF_GLOBAL(log_path));
+	env = wsf_env_create(WSF_GLOBAL(log_path));
 
 	if (WSF_GLOBAL(home))
         home_folder = WSF_GLOBAL(home);
@@ -654,69 +565,6 @@
     FREE_HASHTABLE(intern->std.properties);
     
 }    
-/* {{{ axis2_environment create function */
-static axis2_env_t* ws_env_create(axis2_char_t *path_tolog)
-{
-    axis2_allocator_t *allocator = NULL;
-    axis2_error_t *error = NULL;
-    axis2_log_t *log = NULL;
-    axis2_char_t log_path[250];
-    axis2_env_t *env = NULL;
-    axis2_thread_pool_t *thread_pool = NULL;
-	const axis2_char_t *LOG_NAME = "wsf.log";
-    allocator = pemalloc(sizeof(axis2_allocator_t), 1);
-    
-    allocator->free_fn = ws_free_wrapper;
-    allocator->malloc_fn = ws_malloc_wrapper;
-    allocator->realloc = ws_realloc_warpper;
-    
-    error = axis2_error_create(allocator);
-    if (path_tolog && 
-        0 == strcmp(path_tolog, "") || 
-		0 == strcmp(path_tolog, ".")||
-		0 == strcmp(path_tolog, "./")) {
-		snprintf(log_path, 256, "%s", LOG_NAME);
-	} else {
-		snprintf(log_path, 256, "%s/%s", path_tolog, LOG_NAME);
-	}
-
-    thread_pool = axis2_thread_pool_init(allocator);
-    log = axis2_log_create(allocator, NULL, log_path);
-    env = axis2_env_create_with_error_log_thread_pool(allocator, error, log, thread_pool);
-    return env;
-}
-/* }}} */
-    
-static axis2_env_t *ws_env_create_for_client(axis2_char_t *logpath)
-{
-	axis2_allocator_t *allocator = NULL;
-    axis2_error_t *error = NULL;
-    axis2_log_t *log = NULL;
-    axis2_char_t client_log[250];
-    axis2_thread_pool_t *thread_pool = NULL;
-	const axis2_char_t *LOG_NAME = "wsf.log";
-    
-	allocator = emalloc(sizeof(axis2_allocator_t));
-    
-    allocator->free_fn = ws_free_wrapper_cli;
-    allocator->malloc_fn = ws_malloc_wrapper_cli;
-    allocator->realloc = ws_realloc_warpper_cli;
-    
-    error = axis2_error_create(allocator);
-	if (logpath && 
-		0 == strcmp(logpath, "") || 
-		0 == strcmp(logpath, ".")||
-		0 == strcmp(logpath, "./")) {
-		snprintf(client_log, 256, "%s", LOG_NAME);
-	} else {
-		snprintf(client_log, 256, "%s/%s", logpath, LOG_NAME);
-	}
-
-    thread_pool = axis2_thread_pool_init(allocator);
-    log = axis2_log_create(allocator, NULL, client_log);
-	return axis2_env_create_with_error_log_thread_pool(allocator, error, log, thread_pool);
-}
-    
     
 PHP_FUNCTION(is_ws_fault)
 {
@@ -907,7 +755,7 @@
     	            payload = ws_util_read_payload(reader, env);
 	                if(payload){
 	                    axis2_char_t *res_text = NULL;
-	                    res_text = serialize_om(env, payload);
+						res_text = wsf_util_serialize_om(env, payload);
 	                    if(res_text){
 	                        add_property_string(object, AXIS2_MSG_P_STR, res_text, 1);
 	                        RETURN_STRING(res_text, 1);
@@ -938,7 +786,7 @@
 	                    int ret;
 	                    zval *value = NULL;
 	                    xmlDocPtr doc = NULL;
-                        doc = serialize_om_to_doc(env, payload);
+						doc = wsf_util_serialize_om_to_doc(env, payload);
     		                if (!doc) {
 	    		                RETURN_NULL();
                             }	    		
@@ -1315,7 +1163,7 @@
 	    	zval *rfault = NULL;
 		    MAKE_STD_ZVAL(rfault);
     		object_init_ex(rfault, ws_fault_class_entry);
-	    	res_text = serialize_om(env, res_payload);
+			res_text = wsf_util_serialize_om(env, res_payload);
 		    add_property_stringl(rfault, "str", res_text, strlen(res_text), 1);
     		RETURN_ZVAL(rfault, NULL, NULL);
 	    }
@@ -1342,7 +1190,7 @@
 		        }
 		    }
 	    
-      	    res_text = serialize_om(env , res_payload);
+			res_text = wsf_util_serialize_om(env , res_payload);
             add_property_stringl(rmsg, AXIS2_MSG_P_STR, res_text, strlen(res_text), 1); 
   		    RETURN_ZVAL(rmsg, NULL, NULL);
 	    }
@@ -2175,13 +2023,7 @@
 }
 /* }}} end WSParam::__construct */
 
-/* {{{ proto void WSParam::__destruct()
-   destructor
-	*/
-PHP_METHOD(ws_param, __destruct)
-{
 
-}
 /* }}} end WSParam::__destruct */
 
 /* {{{ proto string getName()

Modified: wsf/php/src/wsf_util.h
==============================================================================
--- wsf/php/src/wsf_util.h	(original)
+++ wsf/php/src/wsf_util.h	Tue Jan  9 22:45:35 2007
@@ -26,6 +26,7 @@
 #include "wsf_common.h"
 #include <axiom_soap_body.h>
 #include <TSRM.h>
+#include "ext/libxml/php_libxml.h"
 
 axiom_node_t* ws_util_read_payload(
     axiom_xml_reader_t *reader,
@@ -77,6 +78,16 @@
 void ws_util_get_attachments(const axis2_env_t *env,
         axiom_node_t *payload_node, zval *cid2str,zval *cid2contentType TSRMLS_DC);  
         
+int wsf_util_set_headers(const axis2_env_t *env,
+						 axis2_svc_client_t *svc_client,
+						 zval *msg);
 
+char* wsf_util_serialize_om(axis2_env_t *env, axiom_node_t *ret_node);
 
+xmlDocPtr wsf_util_serialize_om_to_doc(axis2_env_t *env, axiom_node_t *ret_node);
+
+axis2_env_t* wsf_env_create(axis2_char_t *logpath);
+void wsf_env_free(axis2_env_t *env);
+
+axis2_env_t* wsf_env_create_for_client(axis2_char_t *cli_logpath);
 #endif /* WS_UTIL_H */




More information about the Wsf-c-dev mailing list