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 2006/04/11 20:50:50 UTC

svn commit: r393291 - in /webservices/axis/trunk/c/src: soap/SoapDeSerializer.cpp wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java

Author: nadiramra
Date: Tue Apr 11 11:50:45 2006
New Revision: 393291

URL: http://svn.apache.org/viewcvs?rev=393291&view=rev
Log:
C support fixes/enhancements.

Modified:
    webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java

Modified: webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp?rev=393291&r1=393290&r2=393291&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp (original)
+++ webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp Tue Apr 11 11:50:45 2006
@@ -369,13 +369,6 @@
 SoapDeSerializer::checkMessageBody (const AxisChar * pName,
                                     const AxisChar * pNamespace)
 {
-    /* check and skip the soap body tag */
-    /*if (AXIS_SUCCESS != getBody ())
-    {
-    //return AXIS_FAIL;    
-    throw AxisGenException (SERVER_UNKNOWN_ERROR);
-    }*/
-
     if (!m_pNode)
         m_pNode = m_pParser->next ();
 
@@ -866,20 +859,10 @@
     
             if (pObject && pDZFunct)
             {
-                if (C_DOC_PROVIDER == getCurrentProviderType ())
-                {
-                    // Disable C support
-                    //IWrapperSoapDeSerializer_C cWSD;
-                    //cWSD._object = this;
-                    //cWSD._functions = &IWrapperSoapDeSerializer::ms_VFtable;
-                    //m_nStatus = ((AXIS_DESERIALIZE_FUNCT)pDZFunct) (pObject, &cWSD);
-                }
-                else
-                {
-                    TRACE_DESERIALIZE_FUNCT_ENTRY(pDZFunct, pObject, this);
-                    m_nStatus =    ((AXIS_DESERIALIZE_FUNCT) pDZFunct) (pObject, this);
-                    TRACE_DESERIALIZE_FUNCT_EXIT(pDZFunct, m_nStatus);
-                }
+                TRACE_DESERIALIZE_FUNCT_ENTRY(pDZFunct, pObject, this);
+                m_nStatus =    ((AXIS_DESERIALIZE_FUNCT) pDZFunct) (pObject, this);
+                TRACE_DESERIALIZE_FUNCT_EXIT(pDZFunct, m_nStatus);
+
                 if (AXIS_SUCCESS == m_nStatus)
                 {
                     m_pParser->next ();    /* skip end node too */
@@ -997,77 +980,64 @@
             }
         }
     }
-    else
-    {   
-        if (0 == strcmp (pName, m_pNode->m_pchNameOrValue))
-        {
-        /* if this node contain attributes let them be used by the complex
-         * type's deserializer
-         */
-            if (0 != m_pNode->m_pchAttributes[0])
+    else if (0 == strcmp (pName, m_pNode->m_pchNameOrValue))
+    {
+    /* if this node contain attributes let them be used by the complex
+     * type's deserializer
+     */
+        if (0 != m_pNode->m_pchAttributes[0])
+        {
+            m_pCurrNode = m_pNode;
+            xsd__boolean * isNill = getAttributeAsBoolean("nil", 0);
+            if (NULL != isNill)
             {
-                m_pCurrNode = m_pNode;
-                xsd__boolean * isNill = getAttributeAsBoolean("nil", 0);
-                if (NULL != isNill)
+                if(true_ == *isNill)
                 {
-                    if(true_ == *isNill)
-                    {
-                        m_pParser->next ();
-                        m_pNode = NULL;
-                        delete isNill;
-                        return NULL;
-                    } 
-                    else
-                        delete isNill;
-                }
+                    m_pParser->next ();
+                    m_pNode = NULL;
+                    delete isNill;
+                    return NULL;
+                } 
+                else
+                    delete isNill;
             }
-            m_pNode = NULL;    /* node identified and used */
+        }
+        m_pNode = NULL;    /* node identified and used */
 
-            TRACE_OBJECT_CREATE_FUNCT_ENTRY(pCreFunct, NULL, false, 0);
-            void *pObject = ((AXIS_OBJECT_CREATE_FUNCT) pCreFunct)(NULL, false, 0);
-            TRACE_OBJECT_CREATE_FUNCT_EXIT(pCreFunct, pObject);
+        TRACE_OBJECT_CREATE_FUNCT_ENTRY(pCreFunct, NULL, false, 0);
+        void *pObject = ((AXIS_OBJECT_CREATE_FUNCT) pCreFunct)(NULL, false, 0);
+        TRACE_OBJECT_CREATE_FUNCT_EXIT(pCreFunct, pObject);
 
-            if (pObject && pDZFunct)
+        if (pObject && pDZFunct)
+        {
+            TRACE_DESERIALIZE_FUNCT_ENTRY(pDZFunct, pObject, this);
+            m_nStatus =    ((AXIS_DESERIALIZE_FUNCT) pDZFunct) (pObject, this);
+            TRACE_DESERIALIZE_FUNCT_EXIT(pDZFunct, m_nStatus);
+
+            if (AXIS_SUCCESS == m_nStatus)
             {
-                if (C_DOC_PROVIDER == getCurrentProviderType ())
-                {
-                // Disable C support
-                //IWrapperSoapDeSerializer_C cWSD;
-                //cWSD._object = this;
-                //cWSD._functions = &IWrapperSoapDeSerializer::ms_VFtable;
-                //m_nStatus = ((AXIS_DESERIALIZE_FUNCT)pDZFunct)
-                //    (pObject, &cWSD);
-                }
-                else
-                {
-                    TRACE_DESERIALIZE_FUNCT_ENTRY(pDZFunct, pObject, this);
-                    m_nStatus =    ((AXIS_DESERIALIZE_FUNCT) pDZFunct) (pObject, this);
-                    TRACE_DESERIALIZE_FUNCT_EXIT(pDZFunct, m_nStatus);
-                }
-                if (AXIS_SUCCESS == m_nStatus)
-                {
-                    m_pParser->next ();    /* skip end node too */
-                    return pObject;
-                }
-                else
-                {
-                    TRACE_OBJECT_DELETE_FUNCT_ENTRY(pDelFunct, pObject, false, 0);
-                    ((AXIS_OBJECT_DELETE_FUNCT) pDelFunct) (pObject, false, 0);
-                    TRACE_OBJECT_DELETE_FUNCT_EXIT(pDelFunct);
-                }
+                m_pParser->next ();    /* skip end node too */
+                return pObject;
+            }
+            else
+            {
+                TRACE_OBJECT_DELETE_FUNCT_ENTRY(pDelFunct, pObject, false, 0);
+                ((AXIS_OBJECT_DELETE_FUNCT) pDelFunct) (pObject, false, 0);
+                TRACE_OBJECT_DELETE_FUNCT_EXIT(pDelFunct);
             }
-        }
-        else
-        {
-        /*
-         * TODO: Need to verify what WS-I 1.0 say
-         * about the mandatory of all the elements in the response in case of
-         * null value or none filled value. Some Web services servers work
-         * like this. This apply for all the rest of the deserializer.
-         */
-            return NULL;
         }
     }
+    else
+    {
+    /*
+     * TODO: Need to verify what WS-I 1.0 say
+     * about the mandatory of all the elements in the response in case of
+     * null value or none filled value. Some Web services servers work
+     * like this. This apply for all the rest of the deserializer.
+     */
+        return NULL;
+    }
+
     m_nStatus = AXIS_FAIL;    /* unexpected SOAP stream */
     return NULL;
 }
@@ -2247,9 +2217,6 @@
 {
     /* TODO */
 
-    //AxisChar *
-    //pBodyContent = (AxisChar *) malloc (1000);
-    //Chinthana:Remove malloc
     pBodyContent = new AxisChar[1000];
     pBodyContent[0] = '\0';
 
@@ -2274,8 +2241,6 @@
 AxisChar *
 SoapDeSerializer::getBodyAsChar ()
 {
-    //AxisChar *pBodyContent = (AxisChar *) malloc (1000);
-    //Chinthana:Remove malloc
     pBodyContent = new AxisChar[1000];
     pBodyContent[0] = '\0';
 

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java?rev=393291&r1=393290&r2=393291&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java Tue Apr 11 11:50:45 2006
@@ -738,7 +738,7 @@
         writer.write("\t\treturn;\n");
         writer.write("\n");
         
-        writer.write("\t/* Recursion is used to delete arrays */\n");
+        writer.write("\t/* Reclaim memory resources (recursion is used to reclaim arrays) */\n");
         writer.write("\tif (bArray)\n");
         writer.write("\t{\n");
         writer.write("\t\tif (nSize > 0)\n");
@@ -756,10 +756,13 @@
         writer.write("\t\t\tfree(param);\n");
         writer.write("\t\t}\n");
         writer.write("\t}\n");
+        
         writer.write("\telse\n");
+        
         writer.write("\t{\n");
         writer.write("\t\tfree(param);\n");
         writer.write("\t}\n");
+        
         writer.write("}\n");
     }
 
@@ -769,34 +772,16 @@
 //        boolean hasComplexTypeOrArray = false;
 //        for (int i = 0; i < attribs.length; i++)
 //        {
-//            if (!attribs[i].isSimpleType())
+//            if (!attribs[i].isSimpleType() || 
+//                "xsdc__string".equals(attribs[i].getTypeName()) ||
+//                "xsdc__base64Binary".equals(attribs[i].getTypeName()) ||
+//                "xsdc__hexBinary".equals(attribs[i].getTypeName()))
 //            {
-//                hasComplexTypeOrArray = true;
-//                break;
+//                  writer.write("\tint x, i;\n");
+//                  writer.write("\t" + classname + "* pTemp;\n");    
+//                  hasComplexTypeOrArray = true;
+//                  break;
 //            }
-//            else
-//                if ("xsdc__string".equals(attribs[i].getTypeName()))
-//                {
-//                    hasComplexTypeOrArray = true;
-//                    break;
-//                }
-//                else
-//                    if ("xsdc__base64Binary".equals(attribs[i].getTypeName()))
-//                    {
-//                        hasComplexTypeOrArray = true;
-//                        break;
-//                    }
-//                    else
-//                        if ("xsdc__hexBinary".equals(attribs[i].getTypeName()))
-//                        {
-//                            hasComplexTypeOrArray = true;
-//                            break;
-//                        }
-//        }
-//        if (hasComplexTypeOrArray)
-//        {
-//            writer.write("\tint x, i;\n");
-//            writer.write("\t" + classname + "* pTemp;\n");
 //        }
 //        writer.write("\tif (bArray)\n");
 //        writer.write("\t{\n");
@@ -915,8 +900,7 @@
 //        writer.write("\t}\n");
 //        writer.write("\telse\n");
 //        writer.write("\t{\n");
-//        writer.write(
-//            "\t\t/*delete any pointer members or array members of this struct here*/\n");
+//        writer.write("\t\t/*delete any pointer members or array members of this struct here*/\n");
 //        for (int i = 0; i < attribs.length; i++)
 //        {
 //            if (attribs[i].isArray())