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/08 09:38:05 UTC
svn commit: r392491 - in /webservices/axis/trunk/c:
src/common/AxisUserAPI.cpp
src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java
tests/auto_build/testcases/client/c/AxisBenchClient.c
Author: nadiramra
Date: Sat Apr 8 00:38:02 2006
New Revision: 392491
URL: http://svn.apache.org/viewcvs?rev=392491&view=rev
Log:
C support fixes/enhancements.
Modified:
webservices/axis/trunk/c/src/common/AxisUserAPI.cpp
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java
webservices/axis/trunk/c/tests/auto_build/testcases/client/c/AxisBenchClient.c
Modified: webservices/axis/trunk/c/src/common/AxisUserAPI.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/common/AxisUserAPI.cpp?rev=392491&r1=392490&r2=392491&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/common/AxisUserAPI.cpp (original)
+++ webservices/axis/trunk/c/src/common/AxisUserAPI.cpp Sat Apr 8 00:38:02 2006
@@ -475,10 +475,12 @@
case XSD_ARRAY:
{
((Axis_Array**) m_Array)[count] = new Axis_Array(*((Axis_Array**) array)[count]);
+ break;
}
case USER_TYPE:
{
- ((int*) m_Array)[count] = ((int*) array)[count];
+ m_Array[count] = array[count];
+ break;
}
case XSD_UNKNOWN:
case XSD_ANY:
@@ -782,10 +784,12 @@
case XSD_ARRAY:
{
((Axis_Array**) m_Array)[m_Size] = new Axis_Array(*(Axis_Array*) element);
+ break;
}
case USER_TYPE:
{
m_Array[m_Size] = element;
+ break;
}
case XSD_UNKNOWN:
case XSD_ANY:
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java?rev=392491&r1=392490&r2=392491&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java Sat Apr 8 00:38:02 2006
@@ -60,8 +60,14 @@
{
this.writer = new BufferedWriter(new FileWriter(getFilePath(), false));
- writeClassComment();
+ // Write prolog
+ writeClassComment();
+
+ // include system header files
+ writer.write("#include <stdlib.h>\n");
+ writer.write("\n");
+ // include header file for datatype
writer.write("#include \"" + classname + ".h\"\n");
writer.write("\n");
@@ -122,10 +128,22 @@
{
writer.write("extern void* Axis_Create_" + classname + "(int nSize)\n");
writer.write("{\n");
+
+ // Begin function body
+
+ writer.write("\t" + classname + " *pArray = (" + classname + "*)malloc(sizeof(" + classname + "));\n");
+ writer.write("\tmemset(pArray, 0, sizeof(" + classname + "));\n");
+ writer.write("\tpArray->m_Type = USER_TYPE;\n");
+ writer.write("\n");
-// writer.write("\tm_Type = USER_TYPE;\n");
+ writer.write("\tif (nSize > 0)\n");
+ writer.write("\t{\n");
+ writer.write("\t\tpArray->m_Array = Axis_Create_" + attribs[0].getTypeName()
+ + "(NULL, 1, nSize);\n");
+ writer.write("\t\tpArray->m_Size = nSize;\n");
+ writer.write("\t}\n");
- writer.write("\treturn NULL;");
+ // End function body
writer.write("}\n");
writer.write("\n");
@@ -145,22 +163,16 @@
+ "(" + classname + "* param)\n");
writer.write("{\n");
- writer.write("\tif (m_Array != NULL)\n");
+ writer.write("\tif (param == NULL)\n");
+ writer.write("\t\treturn;\n");
+ writer.write("\n");
+ writer.write("\tif (param->m_Array != NULL)\n");
writer.write("\t{\n");
- writer.write("\t\tif (m_Size > 0)\n");
- writer.write("\t\t{\n");
- writer.write("\t\t\tfor (int count = 0 ; count < m_Size ; count++)\n");
- writer.write("\t\t\t{\n");
- writer.write("\t\t\t\tif (m_Array[count] != NULL)\n");
- writer.write("\t\t\t\t{\n");
- writer.write("\t\t\t\t\tdelete ((" + attribs[0].getTypeName() + "**) m_Array)[count];\n");
- writer.write("\t\t\t\t\tm_Array[count] = NULL;\n");
- writer.write("\t\t\t\t}\n");
- writer.write("\t\t\t}\n");
- writer.write("\t\t}\n");
- writer.write("\t\t\tdelete [] m_Array;\n");
+ writer.write("\t\tAxis_Delete_" + attribs[0].getTypeName()
+ + "((" + attribs[0].getTypeName() + " *)param->m_Array, 1, param->m_Size);\n");
+ writer.write("\t\tfree(param->m_Array);\n");
writer.write("\t}\n");
-
+ writer.write("\tfree(param);\n");
writer.write("}\n");
writer.write("\n");
}
Modified: webservices/axis/trunk/c/tests/auto_build/testcases/client/c/AxisBenchClient.c
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/client/c/AxisBenchClient.c?rev=392491&r1=392490&r2=392491&view=diff
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/client/c/AxisBenchClient.c (original)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/client/c/AxisBenchClient.c Sat Apr 8 00:38:02 2006
@@ -108,6 +108,7 @@
arrayIn.m_Array = ppBBDT;
arrayIn.m_Size = input->count;
+ arrayIn.m_Type = USER_TYPE;
input->infos = &arrayIn;
@@ -129,6 +130,10 @@
}
output = doBenchRequest(ws, input);
+ if (exceptionOccurred == C_TRUE
+ || output == NULL
+ || get_AxisBench_Status(ws) == AXISC_FAIL )
+ break;
}
for( i = 0; i < input->count; i++)
@@ -140,8 +145,6 @@
free(ppBBDT);
if (buffer)
free( buffer);
-
- output = doBenchRequest(ws,input);
if (exceptionOccurred == C_TRUE
|| output == NULL