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 2004/01/28 11:15:54 UTC
cvs commit: ws-axis/c/src/client/samples/interoptests/cbase InteropBase.wsdl InteropBaseClient.c SOAPStruct_Array.h InteropTestPortType.c InteropTestPortType.h SOAPStruct.c SOAPStruct.h ArrayOfSOAPStruct.h ArrayOffloat.h ArrayOfint.h ArrayOfstring.h
susantha 2004/01/28 02:15:54
Modified: c/src/client/samples/interoptests/base InteropBase.wsdl
c/src/client/samples/interoptests/cbase
InteropTestPortType.c InteropTestPortType.h
SOAPStruct.c SOAPStruct.h
Added: c/src/client/samples/interoptests/cbase InteropBase.wsdl
InteropBaseClient.c SOAPStruct_Array.h
Removed: c/src/client/samples/interoptests/cbase ArrayOfSOAPStruct.h
ArrayOffloat.h ArrayOfint.h ArrayOfstring.h
Log:
Adding C client sample for InteropBase test
Revision Changes Path
1.2 +14 -14 ws-axis/c/src/client/samples/interoptests/base/InteropBase.wsdl
Index: InteropBase.wsdl
===================================================================
RCS file: /home/cvs/ws-axis/c/src/client/samples/interoptests/base/InteropBase.wsdl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- InteropBase.wsdl 21 Oct 2003 15:06:37 -0000 1.1
+++ InteropBase.wsdl 28 Jan 2004 10:15:50 -0000 1.2
@@ -185,7 +185,7 @@
<binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="echoString">
- <soap:operation soapAction="http://soapinterop.org/"/>
+ <soap:operation soapAction="InteropBase#echoString"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
@@ -194,7 +194,7 @@
</output>
</operation>
<operation name="echoStringArray">
- <soap:operation soapAction="http://soapinterop.org/"/>
+ <soap:operation soapAction="InteropBase#echoStringArray"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
@@ -203,7 +203,7 @@
</output>
</operation>
<operation name="echoInteger">
- <soap:operation soapAction="http://soapinterop.org/"/>
+ <soap:operation soapAction="InteropBase#echoInteger"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
@@ -212,7 +212,7 @@
</output>
</operation>
<operation name="echoIntegerArray">
- <soap:operation soapAction="http://soapinterop.org/"/>
+ <soap:operation soapAction="InteropBase#echoIntegerArray"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
@@ -221,7 +221,7 @@
</output>
</operation>
<operation name="echoFloat">
- <soap:operation soapAction="http://soapinterop.org/"/>
+ <soap:operation soapAction="InteropBase#echoFloat"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
@@ -230,7 +230,7 @@
</output>
</operation>
<operation name="echoFloatArray">
- <soap:operation soapAction="http://soapinterop.org/"/>
+ <soap:operation soapAction="InteropBase#echoFloatArray"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
@@ -239,7 +239,7 @@
</output>
</operation>
<operation name="echoStruct">
- <soap:operation soapAction="http://soapinterop.org/"/>
+ <soap:operation soapAction="InteropBase#echoStruct"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
@@ -248,7 +248,7 @@
</output>
</operation>
<operation name="echoStructArray">
- <soap:operation soapAction="http://soapinterop.org/"/>
+ <soap:operation soapAction="InteropBase#echoStructArray"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
@@ -257,7 +257,7 @@
</output>
</operation>
<operation name="echoVoid">
- <soap:operation soapAction="http://soapinterop.org/"/>
+ <soap:operation soapAction="InteropBase#echoVoid"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
@@ -266,7 +266,7 @@
</output>
</operation>
<operation name="echoBase64">
- <soap:operation soapAction="http://soapinterop.org/"/>
+ <soap:operation soapAction="InteropBase#echoBase64"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
@@ -275,7 +275,7 @@
</output>
</operation>
<operation name="echoDate">
- <soap:operation soapAction="http://soapinterop.org/"/>
+ <soap:operation soapAction="InteropBase#echoDate"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
@@ -284,7 +284,7 @@
</output>
</operation>
<operation name="echoHexBinary">
- <soap:operation soapAction="http://soapinterop.org/"/>
+ <soap:operation soapAction="InteropBase#echoHexBinary"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
@@ -293,7 +293,7 @@
</output>
</operation>
<operation name="echoDecimal">
- <soap:operation soapAction="http://soapinterop.org/"/>
+ <soap:operation soapAction="InteropBase#echoDecimal"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
@@ -302,7 +302,7 @@
</output>
</operation>
<operation name="echoBoolean">
- <soap:operation soapAction="http://soapinterop.org/"/>
+ <soap:operation soapAction="InteropBase#echoBoolean"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
1.2 +174 -159 ws-axis/c/src/client/samples/interoptests/cbase/InteropTestPortType.c
Index: InteropTestPortType.c
===================================================================
RCS file: /home/cvs/ws-axis/c/src/client/samples/interoptests/cbase/InteropTestPortType.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- InteropTestPortType.c 12 Jan 2004 12:39:53 -0000 1.1
+++ InteropTestPortType.c 28 Jan 2004 10:15:51 -0000 1.2
@@ -7,7 +7,7 @@
#include "InteropTestPortType.h"
extern int Axis_DeSerialize_SOAPStruct(SOAPStruct* param, IWrapperSoapDeSerializer *pDZ);
-extern void* Axis_Create_SOAPStruct(bool bArray, int nSize);
+extern void* Axis_Create_SOAPStruct(SOAPStruct *Obj, bool bArray, int nSize);
extern void Axis_Delete_SOAPStruct(SOAPStruct* param, bool bArray, int nSize);
extern int Axis_Serialize_SOAPStruct(SOAPStruct* param, IWrapperSoapSerializer* pSZ, bool bArray);
extern int Axis_GetSize_SOAPStruct();
@@ -18,25 +18,26 @@
/*
* This method wrap the service methodechoString
*/
-char* echoString(char* Value0)
+xsd__string echoString(xsd__string Value0)
{
int nStatus;
- CallX* pCall;
- char* Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
+ CallFunctions* pCall;
+ xsd__string Ret;
+ if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost:5555/axis/InteropBase");
if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
pCall = g_pInteropTestPortType->__vfptr;
-/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType)) return Ret;
- pCall->SetHeader(g_pInteropTestPortType, "SOAPAction", "InteropBase");
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, RPC_ENCODED)) return Ret;
+ pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoString");
pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
pCall->SetOperation(g_pInteropTestPortType, "echoString", "http://soapinterop.org/");
pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputString", XSD_STRING);
- pCall->SetReturnType(g_pInteropTestPortType, XSD_STRING);
- nStatus = pCall->Invoke(g_pInteropTestPortType);
- if (AXIS_SUCCESS == nStatus)
+ if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
{
- Ret = pCall->GetString(g_pInteropTestPortType);
+ if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoStringResponse", ""))
+ {
+ Ret = pCall->GetElementAsString(g_pInteropTestPortType, 0, 0);
+ }
}
pCall->UnInitialize(g_pInteropTestPortType);
return Ret;
@@ -46,27 +47,28 @@
/*
* This method wrap the service methodechoStringArray
*/
-ArrayOfstring echoStringArray(ArrayOfstring Value0)
+xsd__string_Array echoStringArray(xsd__string_Array Value0)
{
int nStatus;
- CallX* pCall;
- ArrayOfstring RetArray = {NULL, 0};
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
+ CallFunctions* pCall;
+ xsd__string_Array RetArray = {NULL, 0};
+ Axis_Array array;
+ if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost:5555/axis/InteropBase");
if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return RetArray;
pCall = g_pInteropTestPortType->__vfptr;
-/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType)) return RetArray;
- pCall->SetHeader(g_pInteropTestPortType, "SOAPAction", "InteropBase");
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, RPC_ENCODED)) return RetArray;
+ pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoStringArray");
pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
pCall->SetOperation(g_pInteropTestPortType, "echoStringArray", "http://soapinterop.org/");
pCall->AddBasicArrayParameter(g_pInteropTestPortType, (Axis_Array*)(&Value0), XSD_STRING, "inputStringArray");
- pCall->SetBasicArrayReturnType(g_pInteropTestPortType, (Axis_Array*)(&RetArray), XSD_STRING);
- nStatus = pCall->Invoke(g_pInteropTestPortType);
- if (AXIS_SUCCESS != nStatus)
- {
- free(RetArray.m_Array);
- RetArray.m_Array = NULL;
- RetArray.m_Size = 0;
+ if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ {
+ if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoStringArrayResponse", ""))
+ {
+ array = pCall->GetBasicArray(g_pInteropTestPortType, XSD_STRING, 0, 0);
+ memcpy(&RetArray, &array, sizeof(Axis_Array));
+ }
}
pCall->UnInitialize(g_pInteropTestPortType);
return RetArray;
@@ -79,22 +81,23 @@
int echoInteger(int Value0)
{
int nStatus;
- CallX* pCall;
+ CallFunctions* pCall;
int Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
+ if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost:5555/axis/InteropBase");
if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
pCall = g_pInteropTestPortType->__vfptr;
-/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType)) return Ret;
- pCall->SetHeader(g_pInteropTestPortType, "SOAPAction", "InteropBase");
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, RPC_ENCODED)) return Ret;
+ pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoInteger");
pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
pCall->SetOperation(g_pInteropTestPortType, "echoInteger", "http://soapinterop.org/");
pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputInteger", XSD_INT);
- pCall->SetReturnType(g_pInteropTestPortType, XSD_INT);
- nStatus = pCall->Invoke(g_pInteropTestPortType);
- if (AXIS_SUCCESS == nStatus)
+ if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
{
- Ret = pCall->GetInt(g_pInteropTestPortType);
+ if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoIntegerResponse", ""))
+ {
+ Ret = pCall->GetElementAsInt(g_pInteropTestPortType, 0, 0);
+ }
}
pCall->UnInitialize(g_pInteropTestPortType);
return Ret;
@@ -104,27 +107,28 @@
/*
* This method wrap the service methodechoIntegerArray
*/
-ArrayOfint echoIntegerArray(ArrayOfint Value0)
+xsd__int_Array echoIntegerArray(xsd__int_Array Value0)
{
int nStatus;
- CallX* pCall;
- ArrayOfint RetArray = {NULL, 0};
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
+ CallFunctions* pCall;
+ xsd__int_Array RetArray = {NULL, 0};
+ Axis_Array array;
+ if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost:5555/axis/InteropBase");
if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return RetArray;
pCall = g_pInteropTestPortType->__vfptr;
-/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType)) return RetArray;
- pCall->SetHeader(g_pInteropTestPortType, "SOAPAction", "InteropBase");
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, RPC_ENCODED)) return RetArray;
+ pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoIntegerArray");
pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
pCall->SetOperation(g_pInteropTestPortType, "echoIntegerArray", "http://soapinterop.org/");
pCall->AddBasicArrayParameter(g_pInteropTestPortType, (Axis_Array*)(&Value0), XSD_INT, "inputIntegerArray");
- pCall->SetBasicArrayReturnType(g_pInteropTestPortType, (Axis_Array*)(&RetArray), XSD_INT);
- nStatus = pCall->Invoke(g_pInteropTestPortType);
- if (AXIS_SUCCESS != nStatus)
- {
- free(RetArray.m_Array);
- RetArray.m_Array = NULL;
- RetArray.m_Size = 0;
+ if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ {
+ if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoIntegerArrayResponse", ""))
+ {
+ array = pCall->GetBasicArray(g_pInteropTestPortType, XSD_INT, 0, 0);
+ memcpy(&RetArray, &array, sizeof(Axis_Array));
+ }
}
pCall->UnInitialize(g_pInteropTestPortType);
return RetArray;
@@ -137,22 +141,23 @@
float echoFloat(float Value0)
{
int nStatus;
- CallX* pCall;
+ CallFunctions* pCall;
float Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
+ if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost:5555/axis/InteropBase");
if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
pCall = g_pInteropTestPortType->__vfptr;
-/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType)) return Ret;
- pCall->SetHeader(g_pInteropTestPortType, "SOAPAction", "InteropBase");
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, RPC_ENCODED)) return Ret;
+ pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoFloat");
pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
pCall->SetOperation(g_pInteropTestPortType, "echoFloat", "http://soapinterop.org/");
pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputFloat", XSD_FLOAT);
- pCall->SetReturnType(g_pInteropTestPortType, XSD_FLOAT);
- nStatus = pCall->Invoke(g_pInteropTestPortType);
- if (AXIS_SUCCESS == nStatus)
+ if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
{
- Ret = pCall->GetFloat(g_pInteropTestPortType);
+ if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoFloatResponse", ""))
+ {
+ Ret = pCall->GetElementAsFloat(g_pInteropTestPortType, 0, 0);
+ }
}
pCall->UnInitialize(g_pInteropTestPortType);
return Ret;
@@ -162,27 +167,28 @@
/*
* This method wrap the service methodechoFloatArray
*/
-ArrayOffloat echoFloatArray(ArrayOffloat Value0)
+xsd__float_Array echoFloatArray(xsd__float_Array Value0)
{
int nStatus;
- CallX* pCall;
- ArrayOffloat RetArray = {NULL, 0};
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
+ CallFunctions* pCall;
+ xsd__float_Array RetArray = {NULL, 0};
+ Axis_Array array;
+ if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost:5555/axis/InteropBase");
if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return RetArray;
pCall = g_pInteropTestPortType->__vfptr;
-/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType)) return RetArray;
- pCall->SetHeader(g_pInteropTestPortType, "SOAPAction", "InteropBase");
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, RPC_ENCODED)) return RetArray;
+ pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoFloatArray");
pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
pCall->SetOperation(g_pInteropTestPortType, "echoFloatArray", "http://soapinterop.org/");
pCall->AddBasicArrayParameter(g_pInteropTestPortType, (Axis_Array*)(&Value0), XSD_FLOAT, "inputFloatArray");
- pCall->SetBasicArrayReturnType(g_pInteropTestPortType, (Axis_Array*)(&RetArray), XSD_FLOAT);
- nStatus = pCall->Invoke(g_pInteropTestPortType);
- if (AXIS_SUCCESS != nStatus)
- {
- free(RetArray.m_Array);
- RetArray.m_Array = NULL;
- RetArray.m_Size = 0;
+ if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ {
+ if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoFloatArrayResponse", ""))
+ {
+ array = pCall->GetBasicArray(g_pInteropTestPortType, XSD_FLOAT, 0, 0);
+ memcpy(&RetArray, &array, sizeof(Axis_Array));
+ }
}
pCall->UnInitialize(g_pInteropTestPortType);
return RetArray;
@@ -195,22 +201,23 @@
SOAPStruct* echoStruct(SOAPStruct* Value0)
{
int nStatus;
- CallX* pCall;
+ CallFunctions* pCall;
SOAPStruct* pReturn = NULL;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
+ if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost:5555/axis/InteropBase");
if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return pReturn;
pCall = g_pInteropTestPortType->__vfptr;
-/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType)) return pReturn;
- pCall->SetHeader(g_pInteropTestPortType, "SOAPAction", "InteropBase");
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, RPC_ENCODED)) return pReturn;
+ pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoStruct");
pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
pCall->SetOperation(g_pInteropTestPortType, "echoStruct", "http://soapinterop.org/");
- pCall->AddCmplxParameter(g_pInteropTestPortType, Value0, (void*)Axis_Serialize_SOAPStruct, (void*)Axis_Delete_SOAPStruct, "inputStruct");
- pCall->SetCmplxReturnType(g_pInteropTestPortType, (void*) Axis_DeSerialize_SOAPStruct, (void*) Axis_Create_SOAPStruct, (void*) Axis_Delete_SOAPStruct, Axis_TypeName_SOAPStruct, Axis_URI_SOAPStruct);
- nStatus = pCall->Invoke(g_pInteropTestPortType);
- if (AXIS_SUCCESS == nStatus)
+ pCall->AddCmplxParameter(g_pInteropTestPortType, Value0, (void*)Axis_Serialize_SOAPStruct, (void*)Axis_Delete_SOAPStruct, "inputStruct", 0);
+ if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
{
- pCall->GetCmplxResult(g_pInteropTestPortType, (void**)&pReturn);
+ if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoStructResponse", ""))
+ {
+ pReturn = (SOAPStruct*)pCall->GetCmplxObject(g_pInteropTestPortType, (void*) Axis_DeSerialize_SOAPStruct, (void*) Axis_Create_SOAPStruct, (void*) Axis_Delete_SOAPStruct, 0, 0);
+ }
}
pCall->UnInitialize(g_pInteropTestPortType);
return pReturn;
@@ -220,27 +227,28 @@
/*
* This method wrap the service methodechoStructArray
*/
-ArrayOfSOAPStruct echoStructArray(ArrayOfSOAPStruct Value0)
+SOAPStruct_Array echoStructArray(SOAPStruct_Array Value0)
{
int nStatus;
- CallX* pCall;
- ArrayOfSOAPStruct RetArray = {NULL, 0};
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
+ CallFunctions* pCall;
+ SOAPStruct_Array RetArray = {NULL, 0};
+ Axis_Array array;
+ if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost:5555/axis/InteropBase");
if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return RetArray;
pCall = g_pInteropTestPortType->__vfptr;
-/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType)) return RetArray;
- pCall->SetHeader(g_pInteropTestPortType, "SOAPAction", "InteropBase");
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, RPC_ENCODED)) return RetArray;
+ pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoStructArray");
pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
pCall->SetOperation(g_pInteropTestPortType, "echoStructArray", "http://soapinterop.org/");
- pCall->AddCmplxArrayParameter(g_pInteropTestPortType, (Axis_Array*)(&Value0), (void*)Axis_Serialize_SOAPStruct, (void*)Axis_Delete_SOAPStruct, (void*) Axis_GetSize_SOAPStruct, Axis_TypeName_SOAPStruct, Axis_URI_SOAPStruct, "inputStructArray");
- pCall->SetCmplxArrayReturnType(g_pInteropTestPortType, (Axis_Array*)(&RetArray), (void*) Axis_DeSerialize_SOAPStruct, (void*) Axis_Create_SOAPStruct, (void*) Axis_Delete_SOAPStruct, (void*) Axis_GetSize_SOAPStruct, Axis_TypeName_SOAPStruct, Axis_URI_SOAPStruct);
- nStatus = pCall->Invoke(g_pInteropTestPortType);
- if (AXIS_SUCCESS != nStatus)
- {
- free(RetArray.m_Array);
- RetArray.m_Array = NULL;
- RetArray.m_Size = 0;
+ pCall->AddCmplxArrayParameter(g_pInteropTestPortType, (Axis_Array*)(&Value0), (void*)Axis_Serialize_SOAPStruct, (void*)Axis_Delete_SOAPStruct, (void*) Axis_GetSize_SOAPStruct, Axis_TypeName_SOAPStruct, Axis_URI_SOAPStruct);
+ if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
+ {
+ if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoStructArrayResponse", ""))
+ {
+ array = pCall->GetCmplxArray(g_pInteropTestPortType, (void*) Axis_DeSerialize_SOAPStruct, (void*) Axis_Create_SOAPStruct, (void*) Axis_Delete_SOAPStruct, (void*) Axis_GetSize_SOAPStruct, 0, 0);
+ memcpy(&RetArray, &array, sizeof(Axis_Array));
+ }
}
pCall->UnInitialize(g_pInteropTestPortType);
return RetArray;
@@ -253,18 +261,20 @@
void echoVoid()
{
int nStatus;
- CallX* pCall;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
+ CallFunctions* pCall;
+ if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost:5555/axis/InteropBase");
if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return pCall = g_pInteropTestPortType->__vfptr;
-/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType)) return ;
- pCall->SetHeader(g_pInteropTestPortType, "SOAPAction", "InteropBase");
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, RPC_ENCODED)) return ;
+ pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoVoid");
pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
pCall->SetOperation(g_pInteropTestPortType, "echoVoid", "http://soapinterop.org/");
- nStatus = pCall->Invoke(g_pInteropTestPortType);
- if (AXIS_SUCCESS != nStatus)
+ if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
{
- //What to do ? . Throw an exception ???
+ if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoVoidResponse", ""))
+ {
+ /*not successful*/
+ }
}
pCall->UnInitialize(g_pInteropTestPortType);
}
@@ -273,25 +283,26 @@
/*
* This method wrap the service methodechoBase64
*/
-Axis_Base64Binary echoBase64(Axis_Base64Binary Value0)
+xsd__base64Binary echoBase64(xsd__base64Binary Value0)
{
int nStatus;
- CallX* pCall;
- Axis_Base64Binary Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
+ CallFunctions* pCall;
+ xsd__base64Binary Ret;
+ if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost:5555/axis/InteropBase");
if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
pCall = g_pInteropTestPortType->__vfptr;
/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType)) return Ret;
- pCall->SetHeader(g_pInteropTestPortType, "SOAPAction", "InteropBase");
+ if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, RPC_ENCODED)) return Ret;
+ pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoBase64");
pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
pCall->SetOperation(g_pInteropTestPortType, "echoBase64", "http://soapinterop.org/");
pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputBase64", XSD_BASE64BINARY);
- pCall->SetReturnType(g_pInteropTestPortType, XSD_BASE64BINARY);
- nStatus = pCall->Invoke(g_pInteropTestPortType);
- if (AXIS_SUCCESS == nStatus)
+ if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
{
- Ret = pCall->GetBase64String(g_pInteropTestPortType);
+ if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoBase64Response", ""))
+ {
+ Ret = pCall->GetElementAsBase64Binary(g_pInteropTestPortType, 0, 0);
+ }
}
pCall->UnInitialize(g_pInteropTestPortType);
return Ret;
@@ -301,25 +312,26 @@
/*
* This method wrap the service methodechoDate
*/
-Axis_DateTime echoDate(Axis_DateTime Value0)
+xsd__dateTime echoDate(xsd__dateTime Value0)
{
int nStatus;
- CallX* pCall;
- Axis_DateTime Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
+ CallFunctions* pCall;
+ xsd__dateTime Ret;
+ if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost:5555/axis/InteropBase");
if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
pCall = g_pInteropTestPortType->__vfptr;
-/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType)) return Ret;
- pCall->SetHeader(g_pInteropTestPortType, "SOAPAction", "InteropBase");
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, RPC_ENCODED)) return Ret;
+ pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoDate");
pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
pCall->SetOperation(g_pInteropTestPortType, "echoDate", "http://soapinterop.org/");
pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputDate", XSD_DATETIME);
- pCall->SetReturnType(g_pInteropTestPortType, XSD_DATETIME);
- nStatus = pCall->Invoke(g_pInteropTestPortType);
- if (AXIS_SUCCESS == nStatus)
+ if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
{
- Ret = pCall->GetDateTime(g_pInteropTestPortType);
+ if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoDateResponse", ""))
+ {
+ Ret = pCall->GetElementAsDateTime(g_pInteropTestPortType, 0, 0);
+ }
}
pCall->UnInitialize(g_pInteropTestPortType);
return Ret;
@@ -329,25 +341,26 @@
/*
* This method wrap the service methodechoHexBinary
*/
-Axis_HexBinary echoHexBinary(Axis_HexBinary Value0)
+xsd__hexBinary echoHexBinary(xsd__hexBinary Value0)
{
int nStatus;
- CallX* pCall;
- Axis_HexBinary Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
+ CallFunctions* pCall;
+ xsd__hexBinary Ret;
+ if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost:5555/axis/InteropBase");
if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
pCall = g_pInteropTestPortType->__vfptr;
-/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType)) return Ret;
- pCall->SetHeader(g_pInteropTestPortType, "SOAPAction", "InteropBase");
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, RPC_ENCODED)) return Ret;
+ pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoHexBinary");
pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
pCall->SetOperation(g_pInteropTestPortType, "echoHexBinary", "http://soapinterop.org/");
pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputHexBinary", XSD_HEXBINARY);
- pCall->SetReturnType(g_pInteropTestPortType, XSD_HEXBINARY);
- nStatus = pCall->Invoke(g_pInteropTestPortType);
- if (AXIS_SUCCESS == nStatus)
+ if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
{
- Ret = pCall->GetHexString(g_pInteropTestPortType);
+ if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoHexBinaryResponse", ""))
+ {
+ Ret = pCall->GetElementAsHexBinary(g_pInteropTestPortType, 0, 0);
+ }
}
pCall->UnInitialize(g_pInteropTestPortType);
return Ret;
@@ -357,25 +370,26 @@
/*
* This method wrap the service methodechoDecimal
*/
-Axis_Decimal echoDecimal(Axis_Decimal Value0)
+xsd__decimal echoDecimal(xsd__decimal Value0)
{
int nStatus;
- CallX* pCall;
- Axis_Decimal Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
+ CallFunctions* pCall;
+ xsd__decimal Ret;
+ if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost:5555/axis/InteropBase");
if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
pCall = g_pInteropTestPortType->__vfptr;
-/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType)) return Ret;
- pCall->SetHeader(g_pInteropTestPortType, "SOAPAction", "InteropBase");
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, RPC_ENCODED)) return Ret;
+ pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoDecimal");
pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
pCall->SetOperation(g_pInteropTestPortType, "echoDecimal", "http://soapinterop.org/");
pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputDecimal", XSD_DECIMAL);
- pCall->SetReturnType(g_pInteropTestPortType, XSD_DECIMAL);
- nStatus = pCall->Invoke(g_pInteropTestPortType);
- if (AXIS_SUCCESS == nStatus)
+ if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
{
- Ret = pCall->GetDecimal(g_pInteropTestPortType);
+ if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoDecimalResponse", ""))
+ {
+ Ret = pCall->GetElementAsDecimal(g_pInteropTestPortType, 0, 0);
+ }
}
pCall->UnInitialize(g_pInteropTestPortType);
return Ret;
@@ -385,25 +399,26 @@
/*
* This method wrap the service methodechoBoolean
*/
-Axis_Boolean echoBoolean(Axis_Boolean Value0)
+xsd__boolean echoBoolean(xsd__boolean Value0)
{
int nStatus;
- CallX* pCall;
- Axis_Boolean Ret;
- if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost/axis/InteropBase");
+ CallFunctions* pCall;
+ xsd__boolean Ret;
+ if (!g_pInteropTestPortType) g_pInteropTestPortType = GetCallObject(APTHTTP, "http://localhost:5555/axis/InteropBase");
if (!g_pInteropTestPortType || !g_pInteropTestPortType->__vfptr) return Ret;
pCall = g_pInteropTestPortType->__vfptr;
-/* Following will establish the connections with the server too */
- if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType)) return Ret;
- pCall->SetHeader(g_pInteropTestPortType, "SOAPAction", "InteropBase");
+ /* Following will establish the connections with the server too */
+ if (AXIS_SUCCESS != pCall->Initialize(g_pInteropTestPortType, RPC_ENCODED)) return Ret;
+ pCall->SetTransportProperty(g_pInteropTestPortType,SOAPACTION_HEADER , "InteropBase#echoBoolean");
pCall->SetSOAPVersion(g_pInteropTestPortType, SOAP_VER_1_1);
pCall->SetOperation(g_pInteropTestPortType, "echoBoolean", "http://soapinterop.org/");
pCall->AddParameter(g_pInteropTestPortType, (void*)&Value0, "inputBoolean", XSD_BOOLEAN);
- pCall->SetReturnType(g_pInteropTestPortType, XSD_BOOLEAN);
- nStatus = pCall->Invoke(g_pInteropTestPortType);
- if (AXIS_SUCCESS == nStatus)
+ if (AXIS_SUCCESS == pCall->Invoke(g_pInteropTestPortType))
{
- Ret = pCall->GetInt(g_pInteropTestPortType);
+ if(AXIS_SUCCESS == pCall->CheckMessage(g_pInteropTestPortType, "echoBooleanResponse", ""))
+ {
+ Ret = pCall->GetElementAsBoolean(g_pInteropTestPortType, 0, 0);
+ }
}
pCall->UnInitialize(g_pInteropTestPortType);
return Ret;
1.2 +11 -14 ws-axis/c/src/client/samples/interoptests/cbase/InteropTestPortType.h
Index: InteropTestPortType.h
===================================================================
RCS file: /home/cvs/ws-axis/c/src/client/samples/interoptests/cbase/InteropTestPortType.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- InteropTestPortType.h 12 Jan 2004 12:39:53 -0000 1.1
+++ InteropTestPortType.h 28 Jan 2004 10:15:51 -0000 1.2
@@ -8,28 +8,25 @@
#include <axis/client/Call.h>
#include <axis/common/AxisWrapperAPI.h>
+#include "SOAPStruct_Array.h"
#include "SOAPStruct.h"
-#include "ArrayOffloat.h"
-#include "ArrayOfSOAPStruct.h"
-#include "ArrayOfint.h"
-#include "ArrayOfstring.h"
Call* g_pInteropTestPortType;
-extern char* echoString(char* Value0);
-extern ArrayOfstring echoStringArray(ArrayOfstring Value0);
+extern xsd__string echoString(xsd__string Value0);
+extern xsd__string_Array echoStringArray(xsd__string_Array Value0);
extern int echoInteger(int Value0);
-extern ArrayOfint echoIntegerArray(ArrayOfint Value0);
+extern xsd__int_Array echoIntegerArray(xsd__int_Array Value0);
extern float echoFloat(float Value0);
-extern ArrayOffloat echoFloatArray(ArrayOffloat Value0);
+extern xsd__float_Array echoFloatArray(xsd__float_Array Value0);
extern SOAPStruct* echoStruct(SOAPStruct* Value0);
-extern ArrayOfSOAPStruct echoStructArray(ArrayOfSOAPStruct Value0);
+extern SOAPStruct_Array echoStructArray(SOAPStruct_Array Value0);
extern void echoVoid();
-extern Axis_Base64Binary echoBase64(Axis_Base64Binary Value0);
-extern Axis_DateTime echoDate(Axis_DateTime Value0);
-extern Axis_HexBinary echoHexBinary(Axis_HexBinary Value0);
-extern Axis_Decimal echoDecimal(Axis_Decimal Value0);
-extern Axis_Boolean echoBoolean(Axis_Boolean Value0);
+extern xsd__base64Binary echoBase64(xsd__base64Binary Value0);
+extern xsd__dateTime echoDate(xsd__dateTime Value0);
+extern xsd__hexBinary echoHexBinary(xsd__hexBinary Value0);
+extern xsd__decimal echoDecimal(xsd__decimal Value0);
+extern xsd__boolean echoBoolean(xsd__boolean Value0);
#endif // !defined(__INTEROPTESTPORTTYPE_H__INCLUDED_)
1.2 +34 -20 ws-axis/c/src/client/samples/interoptests/cbase/SOAPStruct.c
Index: SOAPStruct.c
===================================================================
RCS file: /home/cvs/ws-axis/c/src/client/samples/interoptests/cbase/SOAPStruct.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SOAPStruct.c 12 Jan 2004 12:39:53 -0000 1.1
+++ SOAPStruct.c 28 Jan 2004 10:15:51 -0000 1.2
@@ -13,25 +13,23 @@
*/
int Axis_Serialize_SOAPStruct(SOAPStruct* param, IWrapperSoapSerializer* pSZ, bool bArray)
{
- IWrapperSoapSerializerX* pSZX = pSZ->__vfptr;
+ IWrapperSoapSerializerFunctions* pSZX = pSZ->__vfptr;
const AxisChar* sPrefix;
if (bArray)
{
- pSZX->Serialize(pSZ, "<", Axis_TypeName_SOAPStruct, ">", NULL);
+ pSZX->SerializeStartElementOfType(pSZ, Axis_TypeName_SOAPStruct, 0, 0);
}
else
{
- sPrefix = pSZX->getNewNamespacePrefix(pSZ);
- pSZX->Serialize(pSZ, "<", Axis_TypeName_SOAPStruct, " xsi:type=\"", sPrefix, ":",
- Axis_TypeName_SOAPStruct, "\" xmlns:", sPrefix, "=\"",
- Axis_URI_SOAPStruct, "\">", NULL);
+ sPrefix = pSZX->GetNamespacePrefix(pSZ, Axis_URI_SOAPStruct);
+ pSZX->SerializeStartElementOfType(pSZ, Axis_TypeName_SOAPStruct, Axis_URI_SOAPStruct, sPrefix);
}
- pSZX->SerializeBasicType(pSZ, "varString", (void*)&(param->varString), XSD_STRING);
- pSZX->SerializeBasicType(pSZ, "varInt", (void*)&(param->varInt), XSD_INT);
- pSZX->SerializeBasicType(pSZ, "varFloat", (void*)&(param->varFloat), XSD_FLOAT);
+ pSZX->SerializeAsElement(pSZ, "varString", (void*)&(param->varString), XSD_STRING);
+ pSZX->SerializeAsElement(pSZ, "varInt", (void*)&(param->varInt), XSD_INT);
+ pSZX->SerializeAsElement(pSZ, "varFloat", (void*)&(param->varFloat), XSD_FLOAT);
- pSZX->Serialize(pSZ, "</", Axis_TypeName_SOAPStruct, ">", NULL);
+ pSZX->SerializeEndElementOfType(pSZ, Axis_TypeName_SOAPStruct);
return AXIS_SUCCESS;
}
@@ -40,32 +38,48 @@
*/
int Axis_DeSerialize_SOAPStruct(SOAPStruct* param, IWrapperSoapDeSerializer *pDZ)
{
- IWrapperSoapDeSerializerX* pDZX = pDZ->__vfptr;
- param->varString = pDZX->GetString()(pDZ);
- param->varInt = pDZX->GetInt()(pDZ);
- param->varFloat = pDZX->GetFloat()(pDZ);
- return AXIS_SUCCESS;
+ IWrapperSoapDeSerializerFunctions* pDZX = pDZ->__vfptr;
+ param->varString = pDZX->GetElementAsString(pDZ,0,0);
+ param->varInt = pDZX->GetElementAsInt(pDZ,0,0);
+ param->varFloat = pDZX->GetElementAsFloat(pDZ,0,0);
+ return pDZX->GetStatus(pDZ);
}
-void* Axis_Create_SOAPStruct(bool bArray, int nSize)
+void* Axis_Create_SOAPStruct(SOAPStruct* pObj, bool bArray, int nSize)
{
if (bArray && (nSize > 0))
- return malloc(sizeof(SOAPStruct)*nSize);
+ {
+ pObj = malloc(sizeof(SOAPStruct)*nSize);
+ memset(pObj, 0, sizeof(SOAPStruct)*nSize);
+ }
else
- return malloc(sizeof(SOAPStruct));
+ {
+ pObj = malloc(sizeof(SOAPStruct));
+ memset(pObj, 0, sizeof(SOAPStruct));
+ }
+ return pObj;
}
-
/**
- * This static method delete a SOAPStruct type of object
+ * This static method to deallocate a SOAPStruct type of object
*/
void Axis_Delete_SOAPStruct(SOAPStruct* param, bool bArray, int nSize)
{
+ int x;
+ SOAPStruct* pTemp;
if (bArray)
{
+ /*delete any pointer members or array members of this struct here*/
+ pTemp = param;
+ for (x=0; x<nSize; x++)
+ {
+ if(pTemp->varString) free(pTemp->varString);
+ pTemp++;
+ }
free(param);
}
else
{
/*delete any pointer members or array members of this struct here*/
+ if(param->varString) free(param->varString);
free(param);
}
}
1.2 +1 -1 ws-axis/c/src/client/samples/interoptests/cbase/SOAPStruct.h
Index: SOAPStruct.h
===================================================================
RCS file: /home/cvs/ws-axis/c/src/client/samples/interoptests/cbase/SOAPStruct.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SOAPStruct.h 12 Jan 2004 12:39:53 -0000 1.1
+++ SOAPStruct.h 28 Jan 2004 10:15:51 -0000 1.2
@@ -14,7 +14,7 @@
static const char* Axis_TypeName_SOAPStruct = "SOAPStruct";
typedef struct {
- char* varString;
+ xsd__string varString;
int varInt;
float varFloat;
} SOAPStruct;
1.1 ws-axis/c/src/client/samples/interoptests/cbase/InteropBase.wsdl
Index: InteropBase.wsdl
===================================================================
<?xml version="1.0"?>
<definitions name="InteropTest" targetNamespace="http://soapinterop.org/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/" xmlns:s="http://soapinterop.org/xsd" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://soapinterop.org/xsd">
<import namespace = "http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="ArrayOfstring">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="string[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="ArrayOfint">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="int[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="ArrayOffloat">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="float[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="ArrayOfSOAPStruct">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="s:SOAPStruct[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="SOAPStruct">
<all>
<element name="varString" type="string"/>
<element name="varInt" type="int"/>
<element name="varFloat" type="float"/>
</all>
</complexType>
</schema>
</types>
<message name="echoStringRequest">
<part name="inputString" type="xsd:string"/>
</message>
<message name="echoStringResponse">
<part name="return" type="xsd:string"/>
</message>
<message name="echoStringArrayRequest">
<part name="inputStringArray" type="s:ArrayOfstring"/>
</message>
<message name="echoStringArrayResponse">
<part name="return" type="s:ArrayOfstring"/>
</message>
<message name="echoIntegerRequest">
<part name="inputInteger" type="xsd:int"/>
</message>
<message name="echoIntegerResponse">
<part name="return" type="xsd:int"/>
</message>
<message name="echoIntegerArrayRequest">
<part name="inputIntegerArray" type="s:ArrayOfint"/>
</message>
<message name="echoIntegerArrayResponse">
<part name="return" type="s:ArrayOfint"/>
</message>
<message name="echoFloatRequest">
<part name="inputFloat" type="xsd:float"/>
</message>
<message name="echoFloatResponse">
<part name="return" type="xsd:float"/>
</message>
<message name="echoFloatArrayRequest">
<part name="inputFloatArray" type="s:ArrayOffloat"/>
</message>
<message name="echoFloatArrayResponse">
<part name="return" type="s:ArrayOffloat"/>
</message>
<message name="echoStructRequest">
<part name="inputStruct" type="s:SOAPStruct"/>
</message>
<message name="echoStructResponse">
<part name="return" type="s:SOAPStruct"/>
</message>
<message name="echoStructArrayRequest">
<part name="inputStructArray" type="s:ArrayOfSOAPStruct"/>
</message>
<message name="echoStructArrayResponse">
<part name="return" type="s:ArrayOfSOAPStruct"/>
</message>
<message name="echoVoidRequest"/>
<message name="echoVoidResponse"/>
<message name="echoBase64Request">
<part name="inputBase64" type="xsd:base64Binary"/>
</message>
<message name="echoBase64Response">
<part name="return" type="xsd:base64Binary"/>
</message>
<message name="echoDateRequest">
<part name="inputDate" type="xsd:dateTime"/>
</message>
<message name="echoDateResponse">
<part name="return" type="xsd:dateTime"/>
</message>
<message name="echoHexBinaryRequest">
<part name="inputHexBinary" type="xsd:hexBinary"/>
</message>
<message name="echoHexBinaryResponse">
<part name="return" type="xsd:hexBinary"/>
</message>
<message name="echoDecimalRequest">
<part name="inputDecimal" type="xsd:decimal"/>
</message>
<message name="echoDecimalResponse">
<part name="return" type="xsd:decimal"/>
</message>
<message name="echoBooleanRequest">
<part name="inputBoolean" type="xsd:boolean"/>
</message>
<message name="echoBooleanResponse">
<part name="return" type="xsd:boolean"/>
</message>
<portType name="InteropTestPortType">
<operation name="echoString" parameterOrder="inputString">
<input message="tns:echoStringRequest"/>
<output message="tns:echoStringResponse"/>
</operation>
<operation name="echoStringArray" parameterOrder="inputStringArray">
<input message="tns:echoStringArrayRequest"/>
<output message="tns:echoStringArrayResponse"/>
</operation>
<operation name="echoInteger" parameterOrder="inputInteger">
<input message="tns:echoIntegerRequest"/>
<output message="tns:echoIntegerResponse"/>
</operation>
<operation name="echoIntegerArray" parameterOrder="inputIntegerArray">
<input message="tns:echoIntegerArrayRequest"/>
<output message="tns:echoIntegerArrayResponse"/>
</operation>
<operation name="echoFloat" parameterOrder="inputFloat">
<input message="tns:echoFloatRequest"/>
<output message="tns:echoFloatResponse"/>
</operation>
<operation name="echoFloatArray" parameterOrder="inputFloatArray">
<input message="tns:echoFloatArrayRequest"/>
<output message="tns:echoFloatArrayResponse"/>
</operation>
<operation name="echoStruct" parameterOrder="inputStruct">
<input message="tns:echoStructRequest"/>
<output message="tns:echoStructResponse"/>
</operation>
<operation name="echoStructArray" parameterOrder="inputStructArray">
<input message="tns:echoStructArrayRequest"/>
<output message="tns:echoStructArrayResponse"/>
</operation>
<operation name="echoVoid">
<input message="tns:echoVoidRequest"/>
<output message="tns:echoVoidResponse"/>
</operation>
<operation name="echoBase64" parameterOrder="inputBase64">
<input message="tns:echoBase64Request"/>
<output message="tns:echoBase64Response"/>
</operation>
<operation name="echoDate" parameterOrder="inputDate">
<input message="tns:echoDateRequest"/>
<output message="tns:echoDateResponse"/>
</operation>
<operation name="echoHexBinary" parameterOrder="inputHexBinary">
<input message="tns:echoHexBinaryRequest"/>
<output message="tns:echoHexBinaryResponse"/>
</operation>
<operation name="echoDecimal" parameterOrder="inputDecimal">
<input message="tns:echoDecimalRequest"/>
<output message="tns:echoDecimalResponse"/>
</operation>
<operation name="echoBoolean" parameterOrder="inputBoolean">
<input message="tns:echoBooleanRequest"/>
<output message="tns:echoBooleanResponse"/>
</operation>
</portType>
<binding name="InteropTestSoapBinding" type="tns:InteropTestPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="echoString">
<soap:operation soapAction="InteropBase#echoString"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoStringArray">
<soap:operation soapAction="InteropBase#echoStringArray"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoInteger">
<soap:operation soapAction="InteropBase#echoInteger"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoIntegerArray">
<soap:operation soapAction="InteropBase#echoIntegerArray"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoFloat">
<soap:operation soapAction="InteropBase#echoFloat"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoFloatArray">
<soap:operation soapAction="InteropBase#echoFloatArray"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoStruct">
<soap:operation soapAction="InteropBase#echoStruct"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoStructArray">
<soap:operation soapAction="InteropBase#echoStructArray"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoVoid">
<soap:operation soapAction="InteropBase#echoVoid"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoBase64">
<soap:operation soapAction="InteropBase#echoBase64"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoDate">
<soap:operation soapAction="InteropBase#echoDate"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoHexBinary">
<soap:operation soapAction="InteropBase#echoHexBinary"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoDecimal">
<soap:operation soapAction="InteropBase#echoDecimal"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoBoolean">
<soap:operation soapAction="InteropBase#echoBoolean"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="InteropBase">
<port binding="tns:InteropTestSoapBinding" name="InteropBaseTest">
<soap:address location="http://localhost/axis/InteropBase"/>
</port>
</service>
</definitions>
1.1 ws-axis/c/src/client/samples/interoptests/cbase/InteropBaseClient.c
Index: InteropBaseClient.c
===================================================================
// InteropBaseClient.cpp : Defines the entry point for the console application.
//
#include "InteropTestPortType.h"
#include <stdio.h>
#define ARRAYSIZE 2
int main(int argc, char* argv[])
{
int x;
char buffer1[100];
char buffer2[100];
xsd__string_Array arrstr;
xsd__int_Array arrint;
xsd__float_Array arrfloat;
SOAPStruct_Array arrstct;
SOAPStruct stct;
time_t tim;
struct tm* lt;
printf("invoking echoString...\n");
//testing echoString
if (0 == strcmp(echoString("hello world"), "hello world"))
printf("successful\n");
else
printf("failed\n");
// testing echoStringArray
arrstr.m_Array = malloc(sizeof(char*)*ARRAYSIZE);
arrstr.m_Size = ARRAYSIZE;
for(x=0; x< ARRAYSIZE; x++)
{
sprintf(buffer1, "%dth element of string array", 0);
arrstr.m_Array[x] = strdup(buffer1);
}
//arrstr.m_Array[1] = buffer2;
printf("invoking echoStringArray...\n");
if (echoStringArray(arrstr).m_Array != NULL)
printf("successful\n");
else
printf("failed\n");
// testing echoInteger
printf("invoking echoInteger...\n");
if (echoInteger(56) == 56)
printf("successful\n");
else
printf("failed\n");
// testing echoIntegerArray
arrint.m_Array = malloc(sizeof(int)*ARRAYSIZE);
arrint.m_Size = ARRAYSIZE;
for (x=0;x<ARRAYSIZE;x++)
{
arrint.m_Array[x] = x;
}
printf("invoking echoIntegerArray...\n");
if (echoIntegerArray(arrint).m_Array != NULL)
printf("successful\n");
else
printf("failed\n");
// testing echoFloat
printf("invoking echoFloat...\n");
if (echoFloat(1.4214) > 1.42)
printf("successful\n");
else
printf("failed\n");
// testing echoFloat
arrfloat.m_Array = malloc(sizeof(float)*ARRAYSIZE);
arrfloat.m_Size = ARRAYSIZE;
for (x=0;x<ARRAYSIZE;x++)
{
arrfloat.m_Array[x] = 1.1111*x;
}
printf("invoking echoFloatArray...\n");
if (echoFloatArray(arrfloat).m_Array != NULL)
printf("successful\n");
else
printf("failed\n");
// testing echo Struct
stct.varFloat = 12345.7346345;
stct.varInt = 5000;
stct.varString = strdup("This is string in SOAPStruct");
printf("invoking echoStruct...\n");
if (echoStruct(&stct) != NULL)
printf("successful\n");
else
printf("failed\n");
//testing echo Array of Struct
arrstct.m_Array = malloc(sizeof(SOAPStruct)*ARRAYSIZE);
arrstct.m_Size = ARRAYSIZE;
for (x=0;x<ARRAYSIZE;x++)
{
arrstct.m_Array[x].varFloat = 1.1111*x;
arrstct.m_Array[x].varInt = x;
sprintf(buffer1, "varString of %dth element of SOAPStruct array", x);
arrstct.m_Array[x].varString = buffer1;
}
//testing echo Struct Array
printf("invoking echoStructArray...\n");
if (echoStructArray(arrstct).m_Array != NULL)
printf("successful\n");
else
printf("failed\n");
//testing echo void
printf("invoking echoVoid...\n");
echoVoid();
printf("successful\n");
//testing echo base 64 binary
/* printf("invoking echoBase64...\n");
if (0 == strcmp(ws.echoBase64("BCDF675E234242WHRTKMJDGKGUEJ898636JFJFHEJDGWTDHFJRURYGBCDHTWRSG"),
"BCDF675E234242WHRTKMJDGKGUEJ898636JFJFHEJDGWTDHFJRURYGBCDHTWRSG"))
printf("successful\n");
else
printf("failed\n");
time(&tim);
lt = gmtime(&tim);
printf("invoking echoDate...\n");
if (memcmp(&(echoDate(*lt)), lt, sizeof(tm)) == 0)
printf("successful\n");
else
printf("failed\n");
//testing echo hex binary
printf("invoking echoHexBinary...\n");
if (0 == strcmp(echoHexBinary("CCCFFA46552BC7D5A09BC5F23DE9E0FE7862AD45BC87D02FEE"),
"CCCFFA46552BC7D5A09BC5F23DE9E0FE7862AD45BC87D02FEE"))
printf("successful\n");
else
printf("failed\n");
*/ //testing echo decimal
printf("invoking echoDecimal...\n");
if (echoDecimal(1234.567890) > 1234.56)
printf("successful\n");
else
printf("failed\n");
//testing echo boolean
printf("invoking echoBoolean...\n");
if (echoBoolean(true_) == true_)
printf("successful\n");
else
printf("failed\n");
getchar();
return 0;
}
1.1 ws-axis/c/src/client/samples/interoptests/cbase/SOAPStruct_Array.h
Index: SOAPStruct_Array.h
===================================================================
/*
*This file is automatically generated by the Axis C++ Wrapper Class Generator
*Web service wrapper class's implementation generated by Axis WCG
*Parameters and wrapper methos to manipulate SOAPStruct_Array
*/
#if !defined(__SOAPSTRUCT_ARRAY_ARRAY_H__INCLUDED_)
#define __SOAPSTRUCT_ARRAY_ARRAY_H__INCLUDED_
#include "SOAPStruct.h"
typedef struct {
SOAPStruct* m_Array;
int m_Size;
} SOAPStruct_Array;
#endif /* !defined(__SOAPSTRUCT_ARRAY_ARRAY_H__INCLUDED_)*/