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 su...@apache.org on 2003/10/22 05:40:05 UTC
cvs commit: ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp ArrayParamWriter.java BeanParamWriter.java ClientStubHeaderWriter.java ClientStubWriter.java ParamCPPFileWriter.java ParamWriter.java ParmHeaderFileWriter.java ServiceHeaderWriter.java WrapHeaderWriter.java WrapWriter.java
susantha 2003/10/21 20:40:05
Modified: c/include/axis/common AxisWrapperAPI.h IParam.h
c/src/client Call.cpp
c/src/common ArrayBean.cpp BasicTypeSerializer.cpp Param.cpp
c/src/engine HandlerLoader.cpp
c/src/soap SoapDeSerializer.cpp SoapSerializer.cpp
c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c
WrapHeaderWriter.java WrapWriter.java
c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp
ArrayParamWriter.java BeanParamWriter.java
ClientStubHeaderWriter.java ClientStubWriter.java
ParamCPPFileWriter.java ParamWriter.java
ParmHeaderFileWriter.java ServiceHeaderWriter.java
WrapHeaderWriter.java WrapWriter.java
Log:
fixed bugs found when doing interop tests specified at www.whitemesa.com/interop.htm
Revision Changes Path
1.2 +25 -0 ws-axis/c/include/axis/common/AxisWrapperAPI.h
Index: AxisWrapperAPI.h
===================================================================
RCS file: /home/cvs/ws-axis/c/include/axis/common/AxisWrapperAPI.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AxisWrapperAPI.h 20 Oct 2003 03:18:19 -0000 1.1
+++ AxisWrapperAPI.h 22 Oct 2003 03:40:04 -0000 1.2
@@ -66,7 +66,32 @@
#define AFX_AXISWRAPPERAPI_H__6E27008D_DCA0_4F28_AC82_FEEBE1A1CBBB__INCLUDED_
#include "GDefine.h"
+#include "IWrapperSoapDeSerializer.h"
+#include "IWrapperSoapSerializer.h"
+/**
+ * Function that deserializes a custom type
+ */
+typedef int (* AXIS_DESERIALIZE_FUNCT)(void*, IWrapperSoapDeSerializer*);
+/**
+ * Function used to create a custom type. bArray is true if array of objects to be
+ * created. Then nSize is the size of that array.
+ */
+typedef void* (* AXIS_OBJECT_CREATE_FUNCT)(bool bArray=false, int nSize=0);
+/**
+ * Function used to delete a custom type. bArray is true if void* is a pointer to an array.
+ * Then nSize is the size of that array.
+ */
+typedef void (* AXIS_OBJECT_DELETE_FUNCT)(void*, bool bArray=false, int nSize=0);
+/**
+ * Function that serializes a custom type. bArray indicates that the object in void* is
+ * an element of an array (note that void* is not itself an array).
+ */
+typedef int (* AXIS_SERIALIZE_FUNCT)(void*, IWrapperSoapSerializer&, bool bArray=false);
+/**
+ * Function that is used to get the size of an object of a custom type.
+ */
+typedef int (* AXIS_OBJECT_SIZE_FUNCT)(void);
#endif // !defined(AFX_AXISWRAPPERAPI_H__6E27008D_DCA0_4F28_AC82_FEEBE1A1CBBB__INCLUDED_)
1.2 +1 -28 ws-axis/c/include/axis/common/IParam.h
Index: IParam.h
===================================================================
RCS file: /home/cvs/ws-axis/c/include/axis/common/IParam.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- IParam.h 20 Oct 2003 03:18:19 -0000 1.1
+++ IParam.h 22 Oct 2003 03:40:04 -0000 1.2
@@ -65,39 +65,12 @@
#if !defined(AFX_IPARAM_H__25C278BB_5875_49E6_A3EC_B6AD3E543D69__INCLUDED_)
#define AFX_IPARAM_H__25C278BB_5875_49E6_A3EC_B6AD3E543D69__INCLUDED_
-#include "TypeMapping.h"
-#include "IWrapperSoapDeSerializer.h"
-#include "IWrapperSoapSerializer.h"
-
+#include "AxisWrapperAPI.h"
#include "TypeMapping.h"
#include "time.h"
#include <string>
using namespace std;
-
-/**
- * Function that deserializes a custom type
- */
-typedef int (* AXIS_DESERIALIZE_FUNCT)(void*, IWrapperSoapDeSerializer*);
-/**
- * Function used to create a custom type. bArray is true if array of objects to be
- * created. Then nSize is the size of that array.
- */
-typedef void* (* AXIS_OBJECT_CREATE_FUNCT)(bool bArray=false, int nSize=0);
-/**
- * Function used to delete a custom type. bArray is true if void* is a pointer to an array.
- * Then nSize is the size of that array.
- */
-typedef void (* AXIS_OBJECT_DELETE_FUNCT)(void*, bool bArray=false, int nSize=0);
-/**
- * Function that serializes a custom type. bArray indicates that the object in void* is
- * an element of an array (note that void* is not itself an array).
- */
-typedef int (* AXIS_SERIALIZE_FUNCT)(void*, IWrapperSoapSerializer&, bool bArray=false);
-/**
- * Function that is used to get the size of an object of a custom type.
- */
-typedef int (* AXIS_OBJECT_SIZE_FUNCT)(void);
class ComplexObjectHandler
{
1.19 +28 -28 ws-axis/c/src/client/Call.cpp
Index: Call.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/client/Call.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- Call.cpp 20 Oct 2003 03:25:56 -0000 1.18
+++ Call.cpp 22 Oct 2003 03:40:04 -0000 1.19
@@ -104,69 +104,69 @@
m_pIWSSZ->createSoapMethod(pchOperation, m_pIWSSZ->getNewNamespacePrefix(), pchNamespace);
}
-void Call::AddParameter(int nValue,const char* pchName)
+void Call::AddParameter(int nValue,const char* pchName, XSDTYPE nType)
{
- m_pIWSSZ->AddOutputParam(pchName, nValue);
+ m_pIWSSZ->AddOutputParam(pchName, nValue, nType);
}
-void Call::AddParameter(unsigned int unValue,const char* pchName)
+void Call::AddParameter(unsigned int unValue,const char* pchName, XSDTYPE nType)
{
- m_pIWSSZ->AddOutputParam(pchName, unValue);
+ m_pIWSSZ->AddOutputParam(pchName, unValue, nType);
}
-void Call::AddParameter(short sValue,const char* pchName)
+void Call::AddParameter(short sValue,const char* pchName, XSDTYPE nType)
{
- m_pIWSSZ->AddOutputParam(pchName, sValue);
+ m_pIWSSZ->AddOutputParam(pchName, sValue, nType);
}
-void Call::AddParameter(unsigned short usValue,const char* pchName)
+void Call::AddParameter(unsigned short usValue,const char* pchName, XSDTYPE nType)
{
- m_pIWSSZ->AddOutputParam(pchName, usValue);
+ m_pIWSSZ->AddOutputParam(pchName, usValue, nType);
}
-void Call::AddParameter(long lValue,const char* pchName)
+void Call::AddParameter(long lValue,const char* pchName, XSDTYPE nType)
{
- m_pIWSSZ->AddOutputParam(pchName, lValue);
+ m_pIWSSZ->AddOutputParam(pchName, lValue, nType);
}
-void Call::AddParameter(unsigned long ulValue,const char* pchName)
+void Call::AddParameter(unsigned long ulValue,const char* pchName, XSDTYPE nType)
{
- m_pIWSSZ->AddOutputParam(pchName, ulValue);
+ m_pIWSSZ->AddOutputParam(pchName, ulValue, nType);
}
-void Call::AddParameter(char cValue,const char* pchName)
+void Call::AddParameter(char cValue,const char* pchName, XSDTYPE nType)
{
- m_pIWSSZ->AddOutputParam(pchName, cValue);
+ m_pIWSSZ->AddOutputParam(pchName, cValue, nType);
}
-void Call::AddParameter(unsigned char ucValue,const char* pchName)
+void Call::AddParameter(unsigned char ucValue,const char* pchName, XSDTYPE nType)
{
- m_pIWSSZ->AddOutputParam(pchName, ucValue);
+ m_pIWSSZ->AddOutputParam(pchName, ucValue, nType);
}
-void Call::AddParameter(float fValue,const char* pchName)
+void Call::AddParameter(float fValue,const char* pchName, XSDTYPE nType)
{
- m_pIWSSZ->AddOutputParam(pchName, fValue);
+ m_pIWSSZ->AddOutputParam(pchName, fValue, nType);
}
-void Call::AddParameter(double dValue,const char* pchName)
+void Call::AddParameter(double dValue,const char* pchName, XSDTYPE nType)
{
- m_pIWSSZ->AddOutputParam(pchName, dValue);
+ m_pIWSSZ->AddOutputParam(pchName, dValue, nType);
}
-void Call::AddParameter(struct tm tValue,const char* pchName)
+void Call::AddParameter(struct tm tValue,const char* pchName, XSDTYPE nType)
{
- m_pIWSSZ->AddOutputParam(pchName, tValue);
+ m_pIWSSZ->AddOutputParam(pchName, tValue, nType);
}
-void Call::AddParameter(const AxisChar* pStrValue,const char* pchName)
+void Call::AddParameter(const AxisChar* pStrValue,const char* pchName, XSDTYPE nType)
{
- m_pIWSSZ->AddOutputParam(pchName, pStrValue);
+ m_pIWSSZ->AddOutputParam(pchName, pStrValue, nType);
}
-void Call::AddParameter(const AxisString& sStrValue,const char* pchName)
+void Call::AddParameter(const AxisString& sStrValue,const char* pchName, XSDTYPE nType)
{
- m_pIWSSZ->AddOutputParam(pchName, sStrValue.c_str());
+ m_pIWSSZ->AddOutputParam(pchName, sStrValue.c_str(), nType);
}
/**
@@ -336,7 +336,7 @@
return SUCCESS;
}
}
- return SUCCESS;
+ return FAIL;
}
return FAIL;
}
@@ -436,6 +436,6 @@
{
m_pArray->m_Array = m_pIWSDZ->CreateArray(m_nArrayType, m_pArray->m_Size);
}
- return (NULL != m_pArray->m_Array);
+ return (NULL != m_pArray->m_Array)?SUCCESS:FAIL;
}
1.13 +7 -7 ws-axis/c/src/common/ArrayBean.cpp
Index: ArrayBean.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/common/ArrayBean.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ArrayBean.cpp 20 Oct 2003 03:24:29 -0000 1.12
+++ ArrayBean.cpp 22 Oct 2003 03:40:04 -0000 1.13
@@ -355,7 +355,7 @@
int blocksize = GetArrayBlockSize(it);
for (int ix=0;ix<blocksize;ix++)
{
- pSZ << m_BTSZ.serialize(m_ItemName.c_str(), *p);
+ pSZ << m_BTSZ.serialize(m_ItemName.c_str(), *p, m_type);
p++;
}
}
@@ -368,7 +368,7 @@
int blocksize = GetArrayBlockSize(it);
for (int ix=0;ix<blocksize;ix++)
{
- pSZ << m_BTSZ.serialize(m_ItemName.c_str(), *p);
+ pSZ << m_BTSZ.serialize(m_ItemName.c_str(), *p, m_type);
p++;
}
}
@@ -383,7 +383,7 @@
int blocksize = GetArrayBlockSize(it);
for (int ix=0;ix<blocksize;ix++)
{
- pSZ << m_BTSZ.serialize(m_ItemName.c_str(), *p);
+ pSZ << m_BTSZ.serialize(m_ItemName.c_str(), *p, m_type);
p++;
}
}
@@ -396,7 +396,7 @@
int blocksize = GetArrayBlockSize(it);
for (int ix=0;ix<blocksize;ix++)
{
- pSZ << m_BTSZ.serialize(m_ItemName.c_str(), *p);
+ pSZ << m_BTSZ.serialize(m_ItemName.c_str(), *p, m_type);
p++;
}
}
@@ -429,7 +429,7 @@
int blocksize = GetArrayBlockSize(it);
for (int ix=0;ix<blocksize;ix++)
{
- pSZ << m_BTSZ.serialize(m_ItemName.c_str(), *pInt);
+ pSZ << m_BTSZ.serialize(m_ItemName.c_str(), *pInt, m_type);
pInt++;
}
}
@@ -441,7 +441,7 @@
int blocksize = GetArrayBlockSize(it);
for (int ix=0;ix<blocksize;ix++)
{
- pSZ << m_BTSZ.serialize(m_ItemName.c_str(), *pFloat);
+ pSZ << m_BTSZ.serialize(m_ItemName.c_str(), *pFloat, m_type);
pFloat++;
}
}
@@ -458,7 +458,7 @@
int blocksize = GetArrayBlockSize(it);
for (int ix=0;ix<blocksize;ix++)
{
- pSZ << m_BTSZ.serialize(m_ItemName.c_str(), pStr->c_str());
+ pSZ << m_BTSZ.serialize(m_ItemName.c_str(), pStr->c_str(), m_type);
pStr++;
}
}
1.15 +22 -16 ws-axis/c/src/common/BasicTypeSerializer.cpp
Index: BasicTypeSerializer.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/common/BasicTypeSerializer.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- BasicTypeSerializer.cpp 20 Oct 2003 03:24:29 -0000 1.14
+++ BasicTypeSerializer.cpp 22 Oct 2003 03:40:04 -0000 1.15
@@ -83,49 +83,49 @@
}
-const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, int nValue)
+const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, int nValue, XSDTYPE type)
{
- m_Type = XSD_INT;
+ m_Type = type;
AxisSprintf(m_Buf, BTS_BUFFSIZE, "%d", nValue);
HelpSerialize(sName, sName);
return m_sSZ.c_str();
}
-const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, unsigned int unValue)
+const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, unsigned int unValue, XSDTYPE type)
{
- m_Type = XSD_UNSIGNEDINT;
+ m_Type = type;
AxisSprintf(m_Buf, BTS_BUFFSIZE, "%d", unValue);
HelpSerialize(sName, sName);
return m_sSZ.c_str();
}
-const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, char cValue)
+const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, char cValue, XSDTYPE type)
{
- m_Type = XSD_BYTE;
+ m_Type = type;
AxisSprintf(m_Buf, BTS_BUFFSIZE, "%c", cValue);
HelpSerialize(sName, sName);
return m_sSZ.c_str();
}
-const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, unsigned char ucValue)
+const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, unsigned char ucValue, XSDTYPE type)
{
- m_Type = XSD_UNSIGNEDBYTE;
+ m_Type = type;
AxisSprintf(m_Buf, BTS_BUFFSIZE, "%c", ucValue);
HelpSerialize(sName, sName);
return m_sSZ.c_str();
}
-const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, short sValue)
+const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, short sValue, XSDTYPE type)
{
- m_Type = XSD_SHORT;
+ m_Type = type;
AxisSprintf(m_Buf, BTS_BUFFSIZE, "%d", sValue);
HelpSerialize(sName, sName);
return m_sSZ.c_str();
}
-const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, unsigned short usValue)
+const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, unsigned short usValue, XSDTYPE type)
{
- m_Type = XSD_UNSIGNEDSHORT;
+ m_Type = type;
AxisSprintf(m_Buf, BTS_BUFFSIZE, "%d", usValue);
HelpSerialize(sName, sName);
return m_sSZ.c_str();
@@ -139,17 +139,17 @@
return m_sSZ.c_str();
}
-const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, unsigned long ulValue)
+const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, unsigned long ulValue, XSDTYPE type)
{
- m_Type = XSD_UNSIGNEDLONG;
+ m_Type = type;
AxisSprintf(m_Buf, BTS_BUFFSIZE, "%d", ulValue);
HelpSerialize(sName, sName);
return m_sSZ.c_str();
}
-const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, float fValue)
+const AxisChar* BasicTypeSerializer::serialize(const AxisChar* sName, float fValue, XSDTYPE type)
{
- m_Type = XSD_FLOAT;
+ m_Type = type;
AxisSprintf(m_Buf, BTS_BUFFSIZE, "%f", fValue);
HelpSerialize(sName, sName);
return m_sSZ.c_str();
@@ -187,6 +187,11 @@
switch (m_Type)
{
case XSD_STRING:
+ case XSD_HEXBINARY:
+ case XSD_BASE64BINARY:
+ case XSD_ANYURI:
+ case XSD_QNAME:
+ case XSD_NOTATION:
m_AuxStr = sValue;
m_sSZ += GetEntityReferenced(m_AuxStr).c_str();
break;
@@ -204,6 +209,7 @@
switch (type)
{
case XSD_INT: return "int";
+ case XSD_BOOLEAN: return "boolean";
case XSD_UNSIGNEDINT: return "unsignedInt";
case XSD_SHORT: return "short";
case XSD_UNSIGNEDSHORT: return "unsignedShort";
1.23 +17 -12 ws-axis/c/src/common/Param.cpp
Index: Param.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/common/Param.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- Param.cpp 20 Oct 2003 03:24:29 -0000 1.22
+++ Param.cpp 22 Oct 2003 03:40:04 -0000 1.23
@@ -77,7 +77,7 @@
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
-bool AxisEngine::m_bServer;
+int AxisEngine::m_bServer;
Param::Param(const Param& param)
{
@@ -619,39 +619,40 @@
AxisString ATprefix;
switch (m_Type){
case XSD_INT:
- pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.nValue);
+ case XSD_BOOLEAN:
+ pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.nValue, m_Type);
break;
case XSD_UNSIGNEDINT:
- pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.unValue);
+ pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.unValue, m_Type);
break;
case XSD_SHORT:
- pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.sValue);
+ pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.sValue, m_Type);
break;
case XSD_UNSIGNEDSHORT:
- pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.usValue);
+ pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.usValue, m_Type);
break;
case XSD_BYTE:
- pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.cValue);
+ pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.cValue, m_Type);
break;
case XSD_UNSIGNEDBYTE:
- pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.ucValue);
+ pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.ucValue, m_Type);
break;
case XSD_LONG:
case XSD_INTEGER:
- pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.lValue);
+ pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.lValue, m_Type);
break;
case XSD_UNSIGNEDLONG:
- pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.ulValue);
+ pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.ulValue, m_Type);
break;
case XSD_FLOAT:
- pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.fValue);
+ pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.fValue, m_Type);
break;
case XSD_DOUBLE:
case XSD_DECIMAL:
- pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.dValue);
+ pSZ << m_BTSZ.serialize(m_sName.c_str(), m_Value.dValue, m_Type);
break;
case XSD_STRING:
- pSZ << m_BTSZ.serialize(m_sName.c_str(), m_sValue.c_str());
+ pSZ << m_BTSZ.serialize(m_sName.c_str(), m_sValue.c_str(), m_Type);
break;
case XSD_HEXBINARY:
pSZ << m_BTSZ.serialize(m_sName.c_str(), m_sValue.c_str(), XSD_HEXBINARY);
@@ -773,6 +774,9 @@
case XSD_STRING:
case XSD_HEXBINARY:
case XSD_BASE64BINARY:
+ case XSD_ANYURI:
+ case XSD_QNAME:
+ case XSD_NOTATION:
m_sValue = sValue;
break;
case XSD_DURATION:
@@ -798,6 +802,7 @@
switch (m_Type)
{
case XSD_INT:
+ case XSD_BOOLEAN:
m_Value.nValue = Value.nValue;
break;
case XSD_UNSIGNEDINT:
1.15 +3 -0 ws-axis/c/src/engine/HandlerLoader.cpp
Index: HandlerLoader.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/engine/HandlerLoader.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- HandlerLoader.cpp 20 Oct 2003 03:22:53 -0000 1.14
+++ HandlerLoader.cpp 22 Oct 2003 03:40:04 -0000 1.15
@@ -60,6 +60,9 @@
* @author Susantha Kumara (skumara@virtusa.com)
*
*/
+#ifdef WIN32
+#pragma warning (disable : 4390) //empty controlled statement found;
+#endif
#include <axis/engine/HandlerLoader.h>
#include <stdio.h>
1.17 +51 -17 ws-axis/c/src/soap/SoapDeSerializer.cpp
Index: SoapDeSerializer.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/soap/SoapDeSerializer.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- SoapDeSerializer.cpp 20 Oct 2003 03:25:19 -0000 1.16
+++ SoapDeSerializer.cpp 22 Oct 2003 03:40:05 -0000 1.17
@@ -84,6 +84,7 @@
m_pParser->setContentHandler(m_pHandler);
m_pParser->setErrorHandler(m_pHandler);
m_pInputStream = NULL;
+ m_pLastArrayParam = NULL;
}
SoapDeSerializer::~SoapDeSerializer()
@@ -185,6 +186,7 @@
int SoapDeSerializer::Init()
{
m_hugebuffer[0] = '\0';
+ m_pLastArrayParam = NULL;
m_pHandler->Init();
return SUCCESS;
}
@@ -245,6 +247,41 @@
return Array;
}
+int SoapDeSerializer::GetArraySize()
+{
+ m_pLastArrayParam = (Param*)GetParam();
+ if (m_pLastArrayParam)
+ return m_pLastArrayParam->GetArraySize();
+ else
+ return 0;
+}
+
+int SoapDeSerializer::GetArray(Axis_Array* pArray, XSDTYPE nType)
+{
+ if (!m_pLastArrayParam)
+ { //This cannot happen unless there is something wrong with wrapper
+ DeleteArray(pArray, nType);
+ return FAIL;
+ }
+ if (XSD_ARRAY != m_pLastArrayParam->GetType())//UNEXPECTED_PARAM_TYPE
+ { //This cannot happen unless there is something wrong with wrapper
+ DeleteArray(pArray, nType);
+ return FAIL;
+ }
+
+ if (SUCCESS != m_pLastArrayParam->SetArrayElements((void*)(pArray->m_Array)))
+ {
+ DeleteArray(pArray, nType);
+ return FAIL;
+ }
+ if (SUCCESS != Deserialize(m_pLastArrayParam,0))
+ {
+ DeleteArray(pArray, nType);
+ return FAIL;
+ }
+ return SUCCESS;
+}
+
Axis_Array SoapDeSerializer::GetArray(XSDTYPE nType)
{
Axis_Array Array = {NULL, 0};
@@ -266,21 +303,16 @@
return Array; //CF_ZERO_ARRAY_SIZE_ERROR
if (SUCCESS != param->SetArrayElements((void*)(Array.m_Array)))
{
- DeleteArray(Array.m_Array, nType);
- Array.m_Array = NULL;
- Array.m_Size = 0;
+ DeleteArray(&Array, nType);
return Array;
}
if (SUCCESS != Deserialize(param,0))
{
- DeleteArray(Array.m_Array, nType);
- Array.m_Array = NULL;
- Array.m_Size = 0;
+ DeleteArray(&Array, nType);
return Array;
}
return Array;
}
-
void* SoapDeSerializer::GetObject(void* pDZFunct, void* pCreFunct, void* pDelFunct, const AxisChar* pchTypeName, const AxisChar* pchURI)
{
Param *param = (Param*)GetParam();
@@ -475,37 +507,37 @@
}
}
-void SoapDeSerializer::DeleteArray(void* pArray, XSDTYPE nType)
+void SoapDeSerializer::DeleteArray(Axis_Array* pArray , XSDTYPE nType)
{
switch (nType)
{
case XSD_INT:
case XSD_UNSIGNEDINT:
case XSD_BOOLEAN:
- delete [] ((int*)pArray); return;
+ delete [] ((int*)pArray->m_Array); break;
case XSD_FLOAT:
- delete [] ((float*)pArray); return;
+ delete [] ((float*)pArray->m_Array); break;
case XSD_STRING:
case XSD_HEXBINARY:
case XSD_BASE64BINARY:
case XSD_ANYURI:
case XSD_QNAME:
case XSD_NOTATION:
- delete [] ((AxisString*)pArray); return;
+ delete [] ((AxisString*)pArray->m_Array); break;
case XSD_LONG:
case XSD_UNSIGNEDLONG:
case XSD_INTEGER:
case XSD_DURATION:
- delete [] ((long*)pArray); return;
+ delete [] ((long*)pArray->m_Array); break;
case XSD_SHORT:
case XSD_UNSIGNEDSHORT:
- delete [] ((short*)pArray); return;
+ delete [] ((short*)pArray->m_Array); break;
case XSD_BYTE:
case XSD_UNSIGNEDBYTE:
- delete [] ((char*)pArray); return;
+ delete [] ((char*)pArray->m_Array); break;
case XSD_DOUBLE:
case XSD_DECIMAL:
- delete [] ((double*)pArray); return;
+ delete [] ((double*)pArray->m_Array); break;
case XSD_DATETIME:
case XSD_TIME:
case XSD_DATE:
@@ -514,8 +546,10 @@
case XSD_MONTHDAY:
case XSD_DAY:
case XSD_MONTH:
- delete [] ((tm*)pArray); return;
+ delete [] ((tm*)pArray->m_Array); break;
default:
- return;
+ break;
}
+ pArray->m_Array = NULL;
+ pArray->m_Size = 0;
}
1.29 +44 -50 ws-axis/c/src/soap/SoapSerializer.cpp
Index: SoapSerializer.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/soap/SoapSerializer.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- SoapSerializer.cpp 20 Oct 2003 03:25:19 -0000 1.28
+++ SoapSerializer.cpp 22 Oct 2003 03:40:05 -0000 1.29
@@ -60,6 +60,7 @@
*
*
* @author Roshan Weerasuriya (roshan@jkcs.slt.lk)
+ * @author Susantha Kumara (susantha@opensource.lk, skumara@virtusa.com)
*
*/
@@ -142,18 +143,11 @@
return intStatus;
}
-int SoapSerializer::AddOutputParam(const AxisChar* pchName, XSDTYPE nType, long lValue)
-{
- uParamValue uValue;
- uValue.lValue = lValue;
- return AddOutputParamHelper(pchName, nType, uValue);
-}
-
-int SoapSerializer::AddOutputParam(const AxisChar* pchName, int nValue)
+int SoapSerializer::AddOutputParam(const AxisChar* pchName, int nValue, XSDTYPE type)
{
uParamValue uValue;
uValue.nValue = nValue;
- return AddOutputParamHelper(pchName, XSD_INT, uValue);
+ return AddOutputParamHelper(pchName, type, uValue);
}
int SoapSerializer::AddOutputParamHelper(const AxisChar* pchName, XSDTYPE nType, uParamValue uValue)
@@ -168,88 +162,88 @@
return SUCCESS;
}
-int SoapSerializer::AddOutputParam(const AxisChar* pchName, unsigned int unValue)
+int SoapSerializer::AddOutputParam(const AxisChar* pchName, unsigned int unValue, XSDTYPE type)
{
uParamValue uValue;
uValue.unValue = unValue;
- return AddOutputParamHelper(pchName, XSD_UNSIGNEDINT, uValue);
+ return AddOutputParamHelper(pchName, type, uValue);
}
-int SoapSerializer::AddOutputParam(const AxisChar* pchName, short sValue)
+int SoapSerializer::AddOutputParam(const AxisChar* pchName, short sValue, XSDTYPE type)
{
uParamValue uValue;
uValue.sValue = sValue;
- return AddOutputParamHelper(pchName, XSD_SHORT, uValue);
+ return AddOutputParamHelper(pchName, type, uValue);
}
-int SoapSerializer::AddOutputParam(const AxisChar* pchName, unsigned short usValue)
+int SoapSerializer::AddOutputParam(const AxisChar* pchName, unsigned short usValue, XSDTYPE type)
{
uParamValue uValue;
uValue.usValue = usValue;
- return AddOutputParamHelper(pchName, XSD_UNSIGNEDSHORT, uValue);
+ return AddOutputParamHelper(pchName, type, uValue);
}
-int SoapSerializer::AddOutputParam(const AxisChar* pchName, long lValue)
+int SoapSerializer::AddOutputParam(const AxisChar* pchName, long lValue, XSDTYPE type)
{
uParamValue uValue;
uValue.lValue = lValue;
- return AddOutputParamHelper(pchName, XSD_LONG, uValue);
+ return AddOutputParamHelper(pchName, type, uValue);
}
-int SoapSerializer::AddOutputParam(const AxisChar* pchName, unsigned long ulValue)
+int SoapSerializer::AddOutputParam(const AxisChar* pchName, unsigned long ulValue, XSDTYPE type)
{
uParamValue uValue;
uValue.ulValue = ulValue;
- return AddOutputParamHelper(pchName, XSD_UNSIGNEDLONG, uValue);
+ return AddOutputParamHelper(pchName, type, uValue);
}
-int SoapSerializer::AddOutputParam(const AxisChar* pchName, char cValue)
+int SoapSerializer::AddOutputParam(const AxisChar* pchName, char cValue, XSDTYPE type)
{
uParamValue uValue;
uValue.cValue = cValue;
- return AddOutputParamHelper(pchName, XSD_BYTE, uValue);
+ return AddOutputParamHelper(pchName, type, uValue);
}
-int SoapSerializer::AddOutputParam(const AxisChar* pchName, unsigned char ucValue)
+int SoapSerializer::AddOutputParam(const AxisChar* pchName, unsigned char ucValue, XSDTYPE type)
{
uParamValue uValue;
uValue.ucValue = ucValue;
- return AddOutputParamHelper(pchName, XSD_BYTE, uValue);
+ return AddOutputParamHelper(pchName, type, uValue);
}
-int SoapSerializer::AddOutputParam(const AxisChar* pchName, float fValue)
+int SoapSerializer::AddOutputParam(const AxisChar* pchName, float fValue, XSDTYPE type)
{
uParamValue uValue;
uValue.fValue = fValue;
- return AddOutputParamHelper(pchName, XSD_FLOAT, uValue);
+ return AddOutputParamHelper(pchName, type, uValue);
}
-int SoapSerializer::AddOutputParam(const AxisChar* pchName, double dValue)
+int SoapSerializer::AddOutputParam(const AxisChar* pchName, double dValue, XSDTYPE type)
{
uParamValue uValue;
uValue.dValue = dValue;
- return AddOutputParamHelper(pchName, XSD_DOUBLE, uValue);
+ return AddOutputParamHelper(pchName, type, uValue);
}
-int SoapSerializer::AddOutputParam(const AxisChar* pchName, struct tm tValue)
+int SoapSerializer::AddOutputParam(const AxisChar* pchName, struct tm tValue, XSDTYPE type)
{
uParamValue uValue;
uValue.tValue = tValue;
- return AddOutputParamHelper(pchName, XSD_DATETIME, uValue);
+ return AddOutputParamHelper(pchName, type, uValue);
}
-int SoapSerializer::AddOutputParam(const AxisChar* pchName, const AxisChar* pStrValue)
+int SoapSerializer::AddOutputParam(const AxisChar* pchName, const AxisChar* pStrValue, XSDTYPE type)
{
uParamValue uValue;
uValue.pStrValue = pStrValue;
- return AddOutputParamHelper(pchName, XSD_STRING, uValue);
+ return AddOutputParamHelper(pchName, type, uValue);
}
-int SoapSerializer::AddOutputParam(const AxisChar* pchName, const string& sStrValue)
+int SoapSerializer::AddOutputParam(const AxisChar* pchName, const string& sStrValue, XSDTYPE type)
{
uParamValue uValue;
uValue.pStrValue = sStrValue.c_str();
- return AddOutputParamHelper(pchName, XSD_STRING, uValue);
+ return AddOutputParamHelper(pchName, type, uValue);
}
int SoapSerializer::AddOutputParam(const AxisChar* pchName, const Axis_Array* pArray, XSDTYPE nType)
@@ -447,40 +441,40 @@
return m_BTSZ.serialize(sName, sValue.c_str(), type);
}
-const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, int nValue)
+const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, int nValue, XSDTYPE type)
{
- return m_BTSZ.serialize(sName, nValue);
+ return m_BTSZ.serialize(sName, nValue, type);
}
-const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, struct tm tValue)
+const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, struct tm tValue, XSDTYPE type)
{
return m_uAxisTime.serialize(sName, tValue).c_str();
//return NULL;
}
-const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, unsigned int unValue)
+const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, unsigned int unValue, XSDTYPE type)
{
- return m_BTSZ.serialize(sName, unValue);
+ return m_BTSZ.serialize(sName, unValue, type);
}
-const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, short sValue)
+const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, short sValue, XSDTYPE type)
{
- return m_BTSZ.serialize(sName, sValue);
+ return m_BTSZ.serialize(sName, sValue, type);
}
-const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, unsigned short usValue)
+const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, unsigned short usValue, XSDTYPE type)
{
- return m_BTSZ.serialize(sName, usValue);
+ return m_BTSZ.serialize(sName, usValue, type);
}
-const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, char cValue)
+const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, char cValue, XSDTYPE type)
{
- return m_BTSZ.serialize(sName, cValue);
+ return m_BTSZ.serialize(sName, cValue, type);
}
-const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, unsigned char ucValue)
+const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, unsigned char ucValue, XSDTYPE type)
{
- return m_BTSZ.serialize(sName, ucValue);
+ return m_BTSZ.serialize(sName, ucValue, type);
}
const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, long lValue, XSDTYPE type)
@@ -488,14 +482,14 @@
return m_BTSZ.serialize(sName, lValue, type);
}
-const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, unsigned long ulValue)
+const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, unsigned long ulValue, XSDTYPE type)
{
- return m_BTSZ.serialize(sName, ulValue);
+ return m_BTSZ.serialize(sName, ulValue, type);
}
-const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, float fValue)
+const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, float fValue, XSDTYPE type)
{
- return m_BTSZ.serialize(sName, fValue);
+ return m_BTSZ.serialize(sName, fValue, type);
}
const AxisChar* SoapSerializer::SerializeBasicType(const AxisChar* sName, double dValue, XSDTYPE type)
1.3 +1 -4 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/WrapHeaderWriter.java
Index: WrapHeaderWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/WrapHeaderWriter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- WrapHeaderWriter.java 20 Oct 2003 06:41:14 -0000 1.2
+++ WrapHeaderWriter.java 22 Oct 2003 03:40:05 -0000 1.3
@@ -155,10 +155,7 @@
writer.write("#include <axis/common/WrapperClassHandler.h>\n");
writer.write("#include <axis/common/IMessageData.h>\n");
writer.write("#include <axis/common/GDefine.h>\n");
- writer.write("#include <axis/common/IWrapperSoapDeSerializer.h>\n");
- writer.write("#include <axis/common/IWrapperSoapSerializer.h>\n");
- writer.write("#include <axis/common/ISoapMethod.h>\n");
- writer.write("#include <axis/common/IParam.h>\n\n");
+ writer.write("#include <axis/common/AxisWrapperAPI.h>\n\n");
//As there is no service header file for C the header files for types should be included here itself
Type atype;
Iterator types = this.wscontext.getTypemap().getTypes().iterator();
1.8 +6 -2 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/WrapWriter.java
Index: WrapWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/WrapWriter.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- WrapWriter.java 17 Oct 2003 08:34:01 -0000 1.7
+++ WrapWriter.java 22 Oct 2003 03:40:05 -0000 1.8
@@ -273,7 +273,11 @@
String containedType = null;
if (CPPUtils.isSimpleType(qname)){
containedType = CPPUtils.getclass4qname(qname);
- writer.write("\t"+paraTypeName+" v"+i+" = ("+paraTypeName+"&)pIWSDZ->GetArray("+CPPUtils.getXSDTypeForBasicType(containedType)+");\n");
+ writer.write("\t"+paraTypeName+" v"+i+";\n");
+ writer.write("\tv"+i+".m_Size = pIWSDZ->GetArraySize();\n");
+ writer.write("\tif (v"+i+".m_Size < 1) return FAIL;\n");
+ writer.write("\tv"+i+".m_Array = new "+containedType+"[v"+i+".m_Size];\n");
+ writer.write("\tif (SUCCESS != pIWSDZ->GetArray((Axis_Array*)(&v"+i+"), "+CPPUtils.getXSDTypeForBasicType(containedType)+")) return FAIL;\n");
}
else{
containedType = qname.getLocalPart();
@@ -301,7 +305,7 @@
writer.write(");\n");
/* set the result */
if (returntypeissimple){
- writer.write("\treturn pIWSSZ->AddOutputParam(\""+methodName+"Return\", ret);\n");
+ writer.write("\treturn pIWSSZ->AddOutputParam(\""+methodName+"Return\", ret, "+CPPUtils.getXSDTypeForBasicType(outparamType)+");\n");
}else if(returntypeisarray){
QName qname = retType.getTypNameForAttribName("item");
String containedType = null;
1.5 +1 -1 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ArrayParamWriter.java
Index: ArrayParamWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ArrayParamWriter.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ArrayParamWriter.java 17 Oct 2003 08:50:54 -0000 1.4
+++ ArrayParamWriter.java 22 Oct 2003 03:40:05 -0000 1.5
@@ -93,7 +93,7 @@
writer.write("#include \""+attribs[0][1]+".h\"\n\n");
}
else{
- writer.write("#include <AxisUserAPI.h>\n\n");
+ writer.write("#include <axis/common/AxisUserAPI.h>\n\n");
}
writeArrayStruct();
this.writer.write("#endif // !defined(__"+classname.toUpperCase()+"_"+getFileType().toUpperCase()+"_H__INCLUDED_)\n");
1.8 +5 -2 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
Index: BeanParamWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- BeanParamWriter.java 17 Oct 2003 08:34:01 -0000 1.7
+++ BeanParamWriter.java 22 Oct 2003 03:40:05 -0000 1.8
@@ -150,7 +150,7 @@
for(int i = 0; i< attribs.length;i++){
if(CPPUtils.isSimpleType(attribs[i][1])){
//if simple type
- writer.write("\tpSZ << pSZ.SerializeBasicType(\""+attribs[i][0]+"\", param->"+attribs[i][0]+");\n");
+ writer.write("\tpSZ << pSZ.SerializeBasicType(\""+attribs[i][0]+"\", param->"+attribs[i][0]+", "+ CPPUtils.getXSDTypeForBasicType(attribs[i][1])+");\n");
}else if((t = wscontext.getTypemap().getType(new QName(attribs[i][2],attribs[i][3])))!= null && t.isArray()){
//if Array
QName qname = t.getTypNameForAttribName("item");
@@ -197,7 +197,10 @@
String arrayType = null;
if (CPPUtils.isSimpleType(qname)){
arrayType = CPPUtils.getclass4qname(qname);
- writer.write("\tparam->"+attribs[i][0]+" = ("+attribs[i][1]+"&)pIWSDZ->GetArray("+CPPUtils.getXSDTypeForBasicType(arrayType)+");\n");
+ writer.write("\tparam->"+attribs[i][0]+".m_Size = pIWSDZ->GetArraySize();\n");
+ writer.write("\tif (param->"+attribs[i][0]+".m_Size < 1) return FAIL;\n");
+ writer.write("\tparam->"+attribs[i][0]+".m_Array = new "+arrayType+"[param->"+attribs[i][0]+".m_Size];\n");
+ writer.write("\tif (SUCCESS != pIWSDZ->GetArray((Axis_Array*)(¶m->"+attribs[i][0]+"), "+CPPUtils.getXSDTypeForBasicType(arrayType)+")) return FAIL;\n");
}
else{
arrayType = qname.getLocalPart();
1.4 +1 -1 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubHeaderWriter.java
Index: ClientStubHeaderWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubHeaderWriter.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ClientStubHeaderWriter.java 17 Oct 2003 08:34:01 -0000 1.3
+++ ClientStubHeaderWriter.java 22 Oct 2003 03:40:05 -0000 1.4
@@ -183,7 +183,7 @@
*/
protected void writePreprocssorStatements() throws WrapperFault {
try{
- writer.write("#include <Call.h>\n");
+ writer.write("#include <axis/client/Call.h>\n");
Type atype;
Iterator types = this.wscontext.getTypemap().getTypes().iterator();
HashSet typeSet = new HashSet();
1.13 +2 -3 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java
Index: ClientStubWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ClientStubWriter.java 20 Oct 2003 06:41:14 -0000 1.12
+++ ClientStubWriter.java 22 Oct 2003 03:40:05 -0000 1.13
@@ -156,8 +156,7 @@
protected void writePreprocssorStatements() throws WrapperFault {
try{
writer.write("#include \""+classname+".h\"\n\n");
- writer.write("#include <axis/common/IWrapperSoapDeSerializer.h>\n");
- writer.write("#include <axis/common/IWrapperSoapSerializer.h>\n\n");
+ writer.write("#include <axis/common/AxisWrapperAPI.h>\n\n");
}catch(IOException e){
throw new WrapperFault(e);
}
@@ -290,7 +289,7 @@
}
}else if(typeissimple){
//for simple types
- writer.write("Value"+i+", \"" + ((ParameterInfo)paramsB.get(i)).getParamName()+"\"");
+ writer.write("Value"+i+", \"" + ((ParameterInfo)paramsB.get(i)).getParamName()+"\", "+CPPUtils.getXSDTypeForBasicType(paraTypeName));
}else{
//for complex types
writer.write("Value"+i+", Axis_Serialize_"+paraTypeName+", Axis_Delete_"+paraTypeName+", \"" + ((ParameterInfo)paramsB.get(i)).getParamName()+"\"");
1.3 +1 -3 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParamCPPFileWriter.java
Index: ParamCPPFileWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParamCPPFileWriter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ParamCPPFileWriter.java 20 Oct 2003 06:41:14 -0000 1.2
+++ ParamCPPFileWriter.java 22 Oct 2003 03:40:05 -0000 1.3
@@ -111,9 +111,7 @@
protected void writePreprocssorStatements()throws WrapperFault{
try {
writer.write("#include \""+this.classname + ".h\"\n");
- writer.write("#include <axis/common/IWrapperSoapDeSerializer.h>\n");
- writer.write("#include <axis/common/IWrapperSoapSerializer.h>\n");
- writer.write("#include <axis/common/IParam.h>\n\n");
+ writer.write("#include <axis/common/AxisWrapperAPI.h>\n\n");
} catch (IOException e) {
e.printStackTrace();
throw new WrapperFault(e);
1.3 +1 -1 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParamWriter.java
Index: ParamWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParamWriter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ParamWriter.java 10 Oct 2003 05:13:14 -0000 1.2
+++ ParamWriter.java 22 Oct 2003 03:40:05 -0000 1.3
@@ -152,5 +152,5 @@
}else
return classname;
}
-
+
}
1.9 +1 -1 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java
Index: ParmHeaderFileWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ParmHeaderFileWriter.java 17 Oct 2003 08:50:54 -0000 1.8
+++ ParmHeaderFileWriter.java 22 Oct 2003 03:40:05 -0000 1.9
@@ -132,7 +132,7 @@
try{
Type atype;
Iterator types = this.wscontext.getTypemap().getTypes().iterator();
- writer.write("#include <AxisUserAPI.h>\n\n");
+ writer.write("#include <axis/common/AxisUserAPI.h>\n\n");
HashSet typeSet = new HashSet();
while(types.hasNext()){
atype = (Type)types.next();
1.8 +1 -1 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ServiceHeaderWriter.java
Index: ServiceHeaderWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ServiceHeaderWriter.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ServiceHeaderWriter.java 17 Oct 2003 08:50:54 -0000 1.7
+++ ServiceHeaderWriter.java 22 Oct 2003 03:40:05 -0000 1.8
@@ -180,7 +180,7 @@
Type atype;
Iterator types = this.wscontext.getTypemap().getTypes().iterator();
HashSet typeSet = new HashSet();
- writer.write("#include <AxisUserAPI.h>\n\n");
+ writer.write("#include <axis/common/AxisUserAPI.h>\n\n");
while(types.hasNext()){
atype = (Type)types.next();
typeSet.add(atype.getLanguageSpecificName());
1.5 +1 -4 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapHeaderWriter.java
Index: WrapHeaderWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapHeaderWriter.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- WrapHeaderWriter.java 20 Oct 2003 06:41:14 -0000 1.4
+++ WrapHeaderWriter.java 22 Oct 2003 03:40:05 -0000 1.5
@@ -153,10 +153,7 @@
writer.write("#include <axis/common/WrapperClassHandler.h>\n");
writer.write("#include <axis/common/IMessageData.h>\n");
writer.write("#include <axis/common/GDefine.h>\n");
- writer.write("#include <axis/common/IWrapperSoapDeSerializer.h>\n");
- writer.write("#include <axis/common/IWrapperSoapSerializer.h>\n");
- writer.write("#include <axis/common/ISoapMethod.h>\n");
- writer.write("#include <axis/common/IParam.h>\n\n");
+ writer.write("#include <axis/common/AxisWrapperAPI.h>\n\n");
}catch(IOException e){
throw new WrapperFault(e);
}
1.9 +6 -2 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java
Index: WrapWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- WrapWriter.java 17 Oct 2003 11:00:32 -0000 1.8
+++ WrapWriter.java 22 Oct 2003 03:40:05 -0000 1.9
@@ -251,7 +251,11 @@
String containedType = null;
if (CPPUtils.isSimpleType(qname)){
containedType = CPPUtils.getclass4qname(qname);
- writer.write("\t"+paraTypeName+" v"+i+" = ("+paraTypeName+"&)pIWSDZ->GetArray("+CPPUtils.getXSDTypeForBasicType(containedType)+");\n");
+ writer.write("\t"+paraTypeName+" v"+i+";\n");
+ writer.write("\tv"+i+".m_Size = pIWSDZ->GetArraySize();\n");
+ writer.write("\tif (v"+i+".m_Size < 1) return FAIL;\n");
+ writer.write("\tv"+i+".m_Array = new "+containedType+"[v"+i+".m_Size];\n");
+ writer.write("\tif (SUCCESS != pIWSDZ->GetArray((Axis_Array*)(&v"+i+"), "+CPPUtils.getXSDTypeForBasicType(containedType)+")) return FAIL;\n");
}
else{
containedType = qname.getLocalPart();
@@ -279,7 +283,7 @@
writer.write(");\n");
/* set the result */
if (returntypeissimple){
- writer.write("\treturn pIWSSZ->AddOutputParam(\""+methodName+"Return\", ret);\n");
+ writer.write("\treturn pIWSSZ->AddOutputParam(\""+methodName+"Return\", ret, "+CPPUtils.getXSDTypeForBasicType(outparamType)+");\n");
}else if(returntypeisarray){
QName qname = retType.getTypNameForAttribName("item");
String containedType = null;