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 ja...@apache.org on 2005/11/14 07:18:31 UTC

svn commit: r344058 - /webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/Combo_TTest/Type.cpp

Author: jamejose
Date: Sun Nov 13 22:18:19 2005
New Revision: 344058

URL: http://svn.apache.org/viewcvs?rev=344058&view=rev
Log:
Updated the testcase with new Array APIs

Modified:
    webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/Combo_TTest/Type.cpp

Modified: webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/Combo_TTest/Type.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/Combo_TTest/Type.cpp?rev=344058&r1=344057&r2=344058&view=diff
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/Combo_TTest/Type.cpp (original)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/dynamic/Combo_TTest/Type.cpp Sun Nov 13 22:18:19 2005
@@ -19,8 +19,23 @@
  */
 
 #include <axis/AxisWrapperAPI.hpp>
+#include <axis/Axis.hpp>
 
 #include "Type.hpp"
+
+xsd__int_Array * Type::getitem()
+{
+	return item ; 
+}
+
+void Type::setitem(xsd__int_Array * pInValue)
+{
+	if(item == NULL)
+	{
+		item = new xsd__int_Array();
+	}
+	item->clone(*pInValue); 
+}
 /*
  * This static method serialize a Type type of object
  */
@@ -38,7 +53,7 @@
 	pSZ->serialize( ">", 0);
 
 	/* then serialize elements if any*/
-	pSZ->serializeBasicArray((Axis_Array*)(&param->item), Axis_URI_Type,XSD_INT, "item");
+	pSZ->serializeBasicArray(param->item, Axis_URI_Type,XSD_INT, "item");
 	return AXIS_SUCCESS;
 }
 
@@ -47,13 +62,16 @@
  */
 int Axis_DeSerialize_Type(Type* param, IWrapperSoapDeSerializer* pIWSDZ)
 {
-	Axis_Array array;
+	Axis_Array * array;
 
 	array = pIWSDZ->getBasicArray(XSD_INT, "item",0);
-	param->item.m_Array = (xsd__int**)new xsd__int*[array.m_Size];
-	param->item.m_Size = array.m_Size;
+	if(param->item == NULL)
+	{
+		param->item = new xsd__int_Array();
+	}
+	param->item->clone( *array);
+	Axis::AxisDelete((void*) array, XSD_ARRAY);
 
-	memcpy( param->item.m_Array, array.m_Array, sizeof( xsd__int) * array.m_Size);
 	return pIWSDZ->getStatus();
 }
 void* Axis_Create_Type(Type* pObj, bool bArray = false, int nSize=0)
@@ -63,8 +81,12 @@
 		if (pObj)
 		{
 			Type* pNew = new Type[nSize];
-			memcpy(pNew, pObj, sizeof(Type)*nSize/2);
-			memset(pObj, 0, sizeof(Type)*nSize/2);
+			size_t i = nSize/2;
+			for (int ii=0; ii<i; ++ii)
+			{
+				pNew[ii] = pObj[ii];
+				pObj[ii].reset();
+			}
 			delete [] pObj;
 			return pNew;
 		}
@@ -101,13 +123,23 @@
 
 Type::Type()
 {
+	item = NULL;
+	reset();
+}
+
+void Type::reset()
+{
 	/*do not allocate memory to any pointer members here
 	 because deserializer will allocate memory anyway. */
-	item.m_Array = 0;
-	item.m_Size = 0;
+	if ( item != NULL)
+	{
+		item->clear();
+	}
 }
 
 Type::~Type()
 {
 	/*delete any pointer and array members here*/
+	if (item!= NULL)
+		delete item;
 }