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 na...@apache.org on 2005/12/23 07:46:21 UTC

svn commit: r358751 - /webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_header_block.c

Author: nandika
Date: Thu Dec 22 22:46:17 2005
New Revision: 358751

URL: http://svn.apache.org/viewcvs?rev=358751&view=rev
Log: (empty)

Modified:
    webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_header_block.c

Modified: webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_header_block.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_header_block.c?rev=358751&r1=358750&r2=358751&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_header_block.c (original)
+++ webservices/axis2/trunk/c/modules/xml/soap/src/axis2_soap_header_block.c Thu Dec 22 22:46:17 2005
@@ -228,10 +228,29 @@
 axis2_status_t AXIS2_CALL 
 axis2_soap_header_block_set_role(axis2_soap_header_block_t *header_block,
                                  axis2_env_t **env,
-                                 axis2_char_t *uri)
+                                 axis2_char_t *role_uri)
 {
-
-
+    axis2_soap_header_block_impl_t *header_block_impl = NULL;
+    axis2_char_t *attr_localname = NULL;
+    axis2_char_t *attr_nsuri     = NULL;
+    AXIS2_FUNC_PARAM_CHECK(header_block, env, AXIS2_FAILURE);
+    header_block_impl = AXIS2_INTF_TO_IMPL(header_block);
+    
+    if(header_block_impl->soap_version == AXIS2_SOAP_VERSION_NOT_SET)
+        return AXIS2_FAILURE;
+    if(header_block_impl->soap_version == AXIS2_SOAP11)
+    {
+        attr_localname = AXIS2_SOAP11_ATTR_ACTOR;
+        attr_nsuri     = AXIS2_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI;
+    }
+    if(header_block_impl->soap_version == AXIS2_SOAP12)
+    {
+        attr_localname = AXIS2_SOAP12_SOAP_ROLE;
+        attr_nsuri     = AXIS2_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI;
+    }        
+    axis2_soap_header_block_set_attribute(header_block, 
+                        env, attr_localname, role_uri, attr_nsuri);    
+    return AXIS2_SUCCESS;    
 }
 
 axis2_char_t* AXIS2_CALL 
@@ -239,8 +258,26 @@
                         (axis2_soap_header_block_t *header_block,
                          axis2_env_t **env)
 {
-
-
+    axis2_soap_header_block_impl_t *header_block_impl = NULL;
+    axis2_char_t *attr_localname = NULL;
+    axis2_char_t *attr_nsuri     = NULL;
+    AXIS2_FUNC_PARAM_CHECK(header_block, env, NULL);
+    header_block_impl = AXIS2_INTF_TO_IMPL(header_block);
+    
+    if(header_block_impl->soap_version == AXIS2_SOAP_VERSION_NOT_SET)
+        return NULL;
+    if(header_block_impl->soap_version == AXIS2_SOAP11)
+    {
+        attr_localname = AXIS2_SOAP11_ATTR_ACTOR;
+        attr_nsuri     = AXIS2_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI;
+    }
+    if(header_block_impl->soap_version == AXIS2_SOAP12)
+    {
+        attr_localname = AXIS2_SOAP12_SOAP_ROLE;
+        attr_nsuri     = AXIS2_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI;
+    }        
+    return axis2_soap_header_block_get_attribute(header_block, env,
+                attr_localname, attr_nsuri);
 }  
 
 axis2_status_t AXIS2_CALL 
@@ -278,7 +315,36 @@
                         axis2_char_t *attr_value,
                         axis2_char_t *soap_envelope_namespace_uri)
 {
-
+    axis2_soap_header_block_impl_t *header_block_impl = NULL;
+    axis2_om_attribute_t* om_attr = NULL;
+    axis2_qname_t *qn = NULL;
+    axis2_om_namespace_t *om_ns = NULL;
+    AXIS2_FUNC_PARAM_CHECK(header_block, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, attr_name, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, soap_envelope_namespace_uri, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, attr_value, AXIS2_FAILURE);
+    header_block_impl = AXIS2_INTF_TO_IMPL(header_block);
+    
+    qn = axis2_qname_create(env, attr_name, soap_envelope_namespace_uri, NULL);
+    if(!qn)
+        return AXIS2_FAILURE;
+    om_attr = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(header_block_impl->om_ele, env, qn);
+    if(om_attr)
+    {
+       AXIS2_OM_ATTRIBUTE_SET_VALUE(om_attr, env, attr_value);
+    }
+    else
+    {
+        om_ns = axis2_om_namespace_create(env, 
+                                          soap_envelope_namespace_uri,
+                                          AXIS2_SOAP_DEFAULT_NAMESPACE_PREFIX);
+                                            
+        om_attr = axis2_om_attribute_create(env, attr_name, attr_value, om_ns);
+        AXIS2_OM_ELEMENT_ADD_ATTRIBUTE(header_block_impl->om_ele, 
+                                env, om_attr, header_block_impl->om_ele_node);
+    }
+    AXIS2_QNAME_FREE(qn, env);
+    return AXIS2_SUCCESS;    
 }
                         
 axis2_char_t* AXIS2_CALL 
@@ -295,6 +361,7 @@
     AXIS2_FUNC_PARAM_CHECK(header_block, env, NULL);
     AXIS2_PARAM_CHECK((*env)->error, attr_name, NULL);
     AXIS2_PARAM_CHECK((*env)->error, soap_envelope_namespace_uri, NULL);
+    header_block_impl = AXIS2_INTF_TO_IMPL(header_block);
     
     qn = axis2_qname_create(env, attr_name, soap_envelope_namespace_uri, NULL);
     if(!qn)
@@ -303,7 +370,6 @@
     if(om_attr)
        attr_value = AXIS2_OM_ATTRIBUTE_GET_VALUE(om_attr, env);
     AXIS2_QNAME_FREE(qn, env);
-
     return attr_value;       
 }
                        
@@ -326,9 +392,6 @@
     return AXIS2_SUCCESS;
 }                                                                                                                                                                                    
                                                                                                                             
-                            
-
-                                                                                    
 axis2_status_t AXIS2_CALL axis2_soap_header_block_set_base_node
                         (axis2_soap_header_block_t *header_block,
                          axis2_env_t **env,
@@ -378,4 +441,6 @@
     AXIS2_PARAM_CHECK((*env)->error, soap_version, AXIS2_FAILURE);
     AXIS2_INTF_TO_IMPL(header_block)->soap_version = soap_version;
     return AXIS2_SUCCESS;
-} 
\ No newline at end of file
+}
+
+ 
\ No newline at end of file