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())