You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by na...@apache.org on 2006/04/03 06:35:13 UTC

svn commit: r390950 - in /webservices/axis2/trunk/c: include/axis2_soap_body.h modules/xml/soap/soap_body.c

Author: nandika
Date: Sun Apr  2 21:35:08 2006
New Revision: 390950

URL: http://svn.apache.org/viewcvs?rev=390950&view=rev
Log:
soap_body_add_child method added

Modified:
    webservices/axis2/trunk/c/include/axis2_soap_body.h
    webservices/axis2/trunk/c/modules/xml/soap/soap_body.c

Modified: webservices/axis2/trunk/c/include/axis2_soap_body.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_body.h?rev=390950&r1=390949&r2=390950&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_body.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_body.h Sun Apr  2 21:35:08 2006
@@ -124,7 +124,21 @@
         axis2_status_t (AXIS2_CALL *
 		build)(axis2_soap_body_t *body, 
                axis2_env_t **env);                                                 
-                                                       
+
+       /** add an om node as the child to this soap_body 
+        * the child is added to as the first child 
+        * @param body pointer to soap_body struct
+        * @param env axis2_environment struct MUST not be NULL
+        * @returns status code , AXIS2_SUCCESS on success , AXIS2_ERROR
+        * otherwise
+        */
+
+        axis2_status_t (AXIS2_CALL *
+        add_child)(axis2_soap_body_t *body,
+                   axis2_env_t **env,
+                   axis2_om_node_t *child);
+                   
+
 };                                                      
 
   /**
@@ -150,25 +164,27 @@
 /******************** Macros **************************************************/
     
 /** free soap_body */
-#define AXIS2_SOAP_BODY_FREE(body , env) \
-        ((body)->ops->free(body, env))
+#define AXIS2_SOAP_BODY_FREE( body, env) \
+        ((body)->ops->free( body, env))
         
 /** indecate whether soap_body has a fault or not*/        
-#define AXIS2_SOAP_BODY_HAS_FAULT(body, env) \
-        ((body)->ops->has_fault(body, env))
+#define AXIS2_SOAP_BODY_HAS_FAULT( body, env) \
+        ((body)->ops->has_fault( body, env))
         
-#define AXIS2_SOAP_BODY_GET_FAULT(body, env) \
-        ((body)->ops->get_fault(body, env))
+#define AXIS2_SOAP_BODY_GET_FAULT( body, env) \
+        ((body)->ops->get_fault( body, env))
         
-#define AXIS2_SOAP_BODY_GET_BASE_NODE(body, env) \
-        ((body)->ops->get_base_node(body, env))
+#define AXIS2_SOAP_BODY_GET_BASE_NODE( body, env) \
+        ((body)->ops->get_base_node( body, env))
                                    
-#define AXIS2_SOAP_BODY_GET_SOAP_VERSION(body, env) \
-        ((body)->ops->get_soap_version(body, env))
+#define AXIS2_SOAP_BODY_GET_SOAP_VERSION( body, env) \
+        ((body)->ops->get_soap_version( body, env))
 
-#define AXIS2_SOAP_BODY_BUILD(body, env) \
-        ((body)->ops->build(body, env))
+#define AXIS2_SOAP_BODY_BUILD( body, env) \
+        ((body)->ops->build( body, env))
 
+#define AXIS2_SOAP_BODY_ADD_CHILD( body, env, child) \
+        ((body)->ops->add_child( body, env, child);
 /** @} */
 #ifdef __cplusplus
 }

Modified: webservices/axis2/trunk/c/modules/xml/soap/soap_body.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/soap_body.c?rev=390950&r1=390949&r2=390950&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/soap_body.c (original)
+++ webservices/axis2/trunk/c/modules/xml/soap/soap_body.c Sun Apr  2 21:35:08 2006
@@ -70,6 +70,11 @@
                       
                      
 
+axis2_status_t AXIS2_CALL
+axis2_soap_body_add_child(axis2_soap_body_t *body,
+                          axis2_env_t **env,
+                          axis2_om_node_t *child);
+                          
 /*************** function implementations *************************************/
 axis2_soap_body_t* AXIS2_CALL
 axis2_soap_body_create(axis2_env_t **env)
@@ -91,7 +96,7 @@
     body_impl->soap_builder = NULL;
     body_impl->has_fault = AXIS2_FALSE;
     body_impl->soap_fault = NULL; 
-
+   
     body_impl->soap_body.ops = (axis2_soap_body_ops_t*) AXIS2_MALLOC(
                                (*env)->allocator, sizeof(axis2_soap_body_ops_t));
 
@@ -117,6 +122,9 @@
         
     body_impl->soap_body.ops->build = 
         axis2_soap_body_build;
+    
+    body_impl->soap_body.ops->add_child = 
+        axis2_soap_body_add_child;
         
     return &(body_impl->soap_body);
     
@@ -376,7 +384,6 @@
     This is an internal function 
 
 */
-
 axis2_status_t AXIS2_CALL 
 axis2_soap_body_set_fault(axis2_soap_body_t *body,
                           axis2_env_t **env,
@@ -398,3 +405,20 @@
     }
     return AXIS2_SUCCESS;
 }
+
+axis2_status_t AXIS2_CALL
+axis2_soap_body_add_child(axis2_soap_body_t *body,
+                          axis2_env_t **env,
+                          axis2_om_node_t *child)
+{
+    axis2_soap_body_impl_t *body_impl = NULL;
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, child, AXIS2_FAILURE);
+
+    body_impl = AXIS2_INTF_TO_IMPL(body);
+    if(NULL != body_impl->om_ele_node)
+    {
+        return AXIS2_OM_NODE_ADD_CHILD(body_impl->om_ele_node, env, child);
+    }
+    return AXIS2_FAILURE;
+}