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/21 17:06:38 UTC
cvs commit: ws-axis/c/src/client/samples/interoptests/groupC InteropGroupC.wsdl
susantha 2003/10/21 08:06:38
Added: c/src/client/samples/interoptests/base ArrayOfSOAPStruct.h
ArrayOffloat.h ArrayOfint.h ArrayOfstring.h
InteropBase.wsdl InteropBaseClient.cpp
InteropTestPortType.cpp InteropTestPortType.h
SOAPStruct.cpp SOAPStruct.h
c/src/client/samples/interoptests/groupB ArrayOfSOAPStruct.h
ArrayOfString2D.h ArrayOffloat.h ArrayOfint.h
ArrayOfstring.h InteropGroupB.wsdl
InteropGroupBClient.cpp InteropTestPortTypeB.cpp
InteropTestPortTypeB.h SOAPArrayStruct.cpp
SOAPArrayStruct.h SOAPStruct.cpp SOAPStruct.h
SOAPStructStruct.cpp SOAPStructStruct.h
c/src/client/samples/interoptests/groupC InteropGroupC.wsdl
Log:
Added client samples for interop tests
Revision Changes Path
1.1 ws-axis/c/src/client/samples/interoptests/base/ArrayOfSOAPStruct.h
Index: ArrayOfSOAPStruct.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 ArrayOfSOAPStruct
////////////////////////////////////////////////////////////////////////////////////
#if !defined(__ARRAYOFSOAPSTRUCT_ARRAY_H__INCLUDED_)
#define __ARRAYOFSOAPSTRUCT_ARRAY_H__INCLUDED_
#include "SOAPStruct.h"
typedef struct ArrayOfSOAPStructTag
{
SOAPStruct* m_Array;
int m_Size;
} ArrayOfSOAPStruct;
#endif // !defined(__ARRAYOFSOAPSTRUCT_ARRAY_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/base/ArrayOffloat.h
Index: ArrayOffloat.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 ArrayOffloat
////////////////////////////////////////////////////////////////////////////////////
#if !defined(__ARRAYOFFLOAT_ARRAY_H__INCLUDED_)
#define __ARRAYOFFLOAT_ARRAY_H__INCLUDED_
#include <axis/common/AxisUserAPI.h>
typedef struct ArrayOffloatTag
{
float* m_Array;
int m_Size;
} ArrayOffloat;
#endif // !defined(__ARRAYOFFLOAT_ARRAY_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/base/ArrayOfint.h
Index: ArrayOfint.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 ArrayOfint
////////////////////////////////////////////////////////////////////////////////////
#if !defined(__ARRAYOFINT_ARRAY_H__INCLUDED_)
#define __ARRAYOFINT_ARRAY_H__INCLUDED_
#include <axis/common/AxisUserAPI.h>
typedef struct ArrayOfintTag
{
int* m_Array;
int m_Size;
} ArrayOfint;
#endif // !defined(__ARRAYOFINT_ARRAY_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/base/ArrayOfstring.h
Index: ArrayOfstring.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 ArrayOfstring
////////////////////////////////////////////////////////////////////////////////////
#if !defined(__ARRAYOFSTRING_ARRAY_H__INCLUDED_)
#define __ARRAYOFSTRING_ARRAY_H__INCLUDED_
#include <axis/common/AxisUserAPI.h>
typedef struct ArrayOfstringTag
{
string* m_Array;
int m_Size;
} ArrayOfstring;
#endif // !defined(__ARRAYOFSTRING_ARRAY_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/base/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="http://soapinterop.org/"/>
<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="http://soapinterop.org/"/>
<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="http://soapinterop.org/"/>
<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="http://soapinterop.org/"/>
<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="http://soapinterop.org/"/>
<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="http://soapinterop.org/"/>
<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="http://soapinterop.org/"/>
<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="http://soapinterop.org/"/>
<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="http://soapinterop.org/"/>
<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="http://soapinterop.org/"/>
<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="http://soapinterop.org/"/>
<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="http://soapinterop.org/"/>
<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="http://soapinterop.org/"/>
<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="http://soapinterop.org/"/>
<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/base/InteropBaseClient.cpp
Index: InteropBaseClient.cpp
===================================================================
// InteropBaseClient.cpp : Defines the entry point for the console application.
//
#include "InteropTestPortType.h"
#define ARRAYSIZE 5
int main(int argc, char* argv[])
{
int x;
char buffer[100];
InteropTestPortType ws;
// testing echoString
ws.echoString("hello world");
// testing echoStringArray
ArrayOfstring arrstr;
arrstr.m_Array = new string[ARRAYSIZE];
arrstr.m_Size = ARRAYSIZE;
for (x=0;x<ARRAYSIZE;x++)
{
sprintf(buffer, "%dth element of string array", x);
arrstr.m_Array[x] = buffer;
}
ws.echoStringArray(arrstr);
// testing echoInteger
ws.echoInteger(56);
// testing echoIntegerArray
ArrayOfint arrint;
arrint.m_Array = new int[ARRAYSIZE];
arrint.m_Size = ARRAYSIZE;
for (x=0;x<ARRAYSIZE;x++)
{
arrint.m_Array[x] = x;
}
ws.echoIntegerArray(arrint);
// testing echoFloat
ws.echoFloat(1.4214);
// testing echoFloat
ArrayOffloat arrfloat;
arrfloat.m_Array = new float[ARRAYSIZE];
arrfloat.m_Size = ARRAYSIZE;
for (x=0;x<ARRAYSIZE;x++)
{
arrfloat.m_Array[x] = 1.1111*x;
}
SOAPStruct stct;
stct.varFloat = 12345.7346345;
stct.varInt = 5000;
stct.varString = "This is string in SOAPStruct";
ws.echoStruct(&stct);
ArrayOfSOAPStruct arrstct;
arrstct.m_Array = new 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(buffer, "varString of %dth element of SOAPStruct array", x);
arrstct.m_Array[x].varString = buffer;
}
ws.echoVoid();
ws.echoBase64("BCDF675E234242WHRTKMJDGKGUEJ898636JFJFHEJDGWTDHFJRURYGBCDHTWRSG");
// time_t tim;
// time(&tim);
// ws.echoDate(*gmtime(&tim));
ws.echoHexBinary("CCCFFA46552BC7D5A09BC5F23DE9E0FE7862AD45BC87D02FE");
ws.echoDecimal(1234.567890);
ws.echoBoolean(1);
}
1.1 ws-axis/c/src/client/samples/interoptests/base/InteropTestPortType.cpp
Index: InteropTestPortType.cpp
===================================================================
///////////////////////////////////////////////////////////////////////
// This is the Client Stub implementation file genarated by WSDL2Ws tool.
// InteropTestPortType.cpp: implemtation for the InteropTestPortType.
//
//////////////////////////////////////////////////////////////////////
#include "InteropTestPortType.h"
#include <axis/common/IWrapperSoapDeSerializer.h>
#include <axis/common/IWrapperSoapSerializer.h>
extern int Axis_DeSerialize_SOAPStruct(SOAPStruct* param, IWrapperSoapDeSerializer *pDZ);
extern void* Axis_Create_SOAPStruct(bool bArray = false, int nSize=0);
extern void Axis_Delete_SOAPStruct(SOAPStruct* param, bool bArray = false, int nSize=0);
extern int Axis_Serialize_SOAPStruct(SOAPStruct* param, IWrapperSoapSerializer& pSZ, bool bArray = false);
extern int Axis_GetSize_SOAPStruct();
InteropTestPortType::InteropTestPortType()
{
m_pCall = new Call();
m_pCall->SetProtocol(APTHTTP);
m_pCall->SetHeader("SOAPAction", "InteropTestPortType");
m_pCall->SetEndpointURI("http://localhost/axis/InteropBase");
}
InteropTestPortType::~InteropTestPortType()
{
delete m_pCall;
}
//Methods corresponding to the web service methods
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoString
//////////////////////////////////////////////////////////////////
string InteropTestPortType::echoString(string Value0)
{
int nStatus;
string Ret;
if (SUCCESS != m_pCall->Initialize()) return Ret;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoString", "http://soapinterop.org/");
m_pCall->AddParameter(Value0, "inputString", XSD_STRING);
m_pCall->SetReturnType(XSD_STRING);
nStatus = m_pCall->Invoke();
if (SUCCESS == nStatus)
{
Ret = m_pCall->GetResult()->GetString();
}
m_pCall->UnInitialize();
return Ret;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoStringArray
//////////////////////////////////////////////////////////////////
ArrayOfstring InteropTestPortType::echoStringArray(ArrayOfstring Value0)
{
int nStatus;
ArrayOfstring RetArray = {NULL, 0};
if (SUCCESS != m_pCall->Initialize()) return RetArray;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoStringArray", "http://soapinterop.org/");
m_pCall->AddParameter((Axis_Array*)(&Value0), XSD_STRING, "inputStringArray");
m_pCall->SetReturnType((Axis_Array*)(&RetArray), XSD_STRING);
nStatus = m_pCall->Invoke();
if (SUCCESS != nStatus)
{
delete RetArray.m_Array;
RetArray.m_Array = NULL;
RetArray.m_Size = 0;
}
m_pCall->UnInitialize();
return RetArray;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoInteger
//////////////////////////////////////////////////////////////////
int InteropTestPortType::echoInteger(int Value0)
{
int nStatus;
int Ret;
if (SUCCESS != m_pCall->Initialize()) return Ret;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoInteger", "http://soapinterop.org/");
m_pCall->AddParameter(Value0, "inputInteger", XSD_INT);
m_pCall->SetReturnType(XSD_INT);
nStatus = m_pCall->Invoke();
if (SUCCESS == nStatus)
{
Ret = m_pCall->GetResult()->GetInt();
}
m_pCall->UnInitialize();
return Ret;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoIntegerArray
//////////////////////////////////////////////////////////////////
ArrayOfint InteropTestPortType::echoIntegerArray(ArrayOfint Value0)
{
int nStatus;
ArrayOfint RetArray = {NULL, 0};
if (SUCCESS != m_pCall->Initialize()) return RetArray;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoIntegerArray", "http://soapinterop.org/");
m_pCall->AddParameter((Axis_Array*)(&Value0), XSD_INT, "inputIntegerArray");
m_pCall->SetReturnType((Axis_Array*)(&RetArray), XSD_INT);
nStatus = m_pCall->Invoke();
if (SUCCESS != nStatus)
{
delete RetArray.m_Array;
RetArray.m_Array = NULL;
RetArray.m_Size = 0;
}
m_pCall->UnInitialize();
return RetArray;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoFloat
//////////////////////////////////////////////////////////////////
float InteropTestPortType::echoFloat(float Value0)
{
int nStatus;
float Ret;
if (SUCCESS != m_pCall->Initialize()) return Ret;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoFloat", "http://soapinterop.org/");
m_pCall->AddParameter(Value0, "inputFloat", XSD_FLOAT);
m_pCall->SetReturnType(XSD_FLOAT);
nStatus = m_pCall->Invoke();
if (SUCCESS == nStatus)
{
Ret = m_pCall->GetResult()->GetFloat();
}
m_pCall->UnInitialize();
return Ret;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoFloatArray
//////////////////////////////////////////////////////////////////
ArrayOffloat InteropTestPortType::echoFloatArray(ArrayOffloat Value0)
{
int nStatus;
ArrayOffloat RetArray = {NULL, 0};
if (SUCCESS != m_pCall->Initialize()) return RetArray;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoFloatArray", "http://soapinterop.org/");
m_pCall->AddParameter((Axis_Array*)(&Value0), XSD_FLOAT, "inputFloatArray");
m_pCall->SetReturnType((Axis_Array*)(&RetArray), XSD_FLOAT);
nStatus = m_pCall->Invoke();
if (SUCCESS != nStatus)
{
delete RetArray.m_Array;
RetArray.m_Array = NULL;
RetArray.m_Size = 0;
}
m_pCall->UnInitialize();
return RetArray;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoStruct
//////////////////////////////////////////////////////////////////
SOAPStruct* InteropTestPortType::echoStruct(SOAPStruct* Value0)
{
int nStatus;
SOAPStruct* pReturn = NULL;
if (SUCCESS != m_pCall->Initialize()) return pReturn;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoStruct", "http://soapinterop.org/");
m_pCall->AddParameter(Value0, Axis_Serialize_SOAPStruct, Axis_Delete_SOAPStruct, "inputStruct");
m_pCall->SetReturnType((void*) Axis_DeSerialize_SOAPStruct, (void*) Axis_Create_SOAPStruct, (void*) Axis_Delete_SOAPStruct, Axis_TypeName_SOAPStruct, Axis_URI_SOAPStruct);
nStatus = m_pCall->Invoke();
if (SUCCESS == nStatus)
{
m_pCall->GetResult((void**)&pReturn);
}
m_pCall->UnInitialize();
return pReturn;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoStructArray
//////////////////////////////////////////////////////////////////
ArrayOfSOAPStruct InteropTestPortType::echoStructArray(ArrayOfSOAPStruct Value0)
{
int nStatus;
ArrayOfSOAPStruct RetArray = {NULL, 0};
if (SUCCESS != m_pCall->Initialize()) return RetArray;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoStructArray", "http://soapinterop.org/");
m_pCall->AddParameter((Axis_Array*)(&Value0), (void*)Axis_Serialize_SOAPStruct, (void*)Axis_Delete_SOAPStruct, (void*) Axis_GetSize_SOAPStruct, Axis_TypeName_SOAPStruct, Axis_URI_SOAPStruct, "inputStructArray");
m_pCall->SetReturnType((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 = m_pCall->Invoke();
if (SUCCESS != nStatus)
{
delete RetArray.m_Array;
RetArray.m_Array = NULL;
RetArray.m_Size = 0;
}
m_pCall->UnInitialize();
return RetArray;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoVoid
//////////////////////////////////////////////////////////////////
void InteropTestPortType::echoVoid()
{
int nStatus;
if (SUCCESS != m_pCall->Initialize()) return ;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoVoid", "http://soapinterop.org/");
nStatus = m_pCall->Invoke();
if (SUCCESS != nStatus)
{
//What to do ? . Throw an exception ???
}
m_pCall->UnInitialize();
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoBase64
//////////////////////////////////////////////////////////////////
Axis_Base64Binary InteropTestPortType::echoBase64(Axis_Base64Binary Value0)
{
int nStatus;
Axis_Base64Binary Ret;
if (SUCCESS != m_pCall->Initialize()) return Ret;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoBase64", "http://soapinterop.org/");
m_pCall->AddParameter(Value0, "inputBase64", XSD_BASE64BINARY);
m_pCall->SetReturnType(XSD_BASE64BINARY);
nStatus = m_pCall->Invoke();
if (SUCCESS == nStatus)
{
Ret = m_pCall->GetResult()->GetBase64String();
}
m_pCall->UnInitialize();
return Ret;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoDate
//////////////////////////////////////////////////////////////////
Axis_DateTime InteropTestPortType::echoDate(Axis_DateTime Value0)
{
int nStatus;
Axis_DateTime Ret;
if (SUCCESS != m_pCall->Initialize()) return Ret;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoDate", "http://soapinterop.org/");
m_pCall->AddParameter(Value0, "inputDate", XSD_DATETIME);
m_pCall->SetReturnType(XSD_DATETIME);
nStatus = m_pCall->Invoke();
if (SUCCESS == nStatus)
{
Ret = m_pCall->GetResult()->GetDateTime();
}
m_pCall->UnInitialize();
return Ret;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoHexBinary
//////////////////////////////////////////////////////////////////
Axis_HexBinary InteropTestPortType::echoHexBinary(Axis_HexBinary Value0)
{
int nStatus;
Axis_HexBinary Ret;
if (SUCCESS != m_pCall->Initialize()) return Ret;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoHexBinary", "http://soapinterop.org/");
m_pCall->AddParameter(Value0, "inputHexBinary", XSD_HEXBINARY);
m_pCall->SetReturnType(XSD_HEXBINARY);
nStatus = m_pCall->Invoke();
if (SUCCESS == nStatus)
{
Ret = m_pCall->GetResult()->GetHexString();
}
m_pCall->UnInitialize();
return Ret;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoDecimal
//////////////////////////////////////////////////////////////////
Axis_Decimal InteropTestPortType::echoDecimal(Axis_Decimal Value0)
{
int nStatus;
Axis_Decimal Ret;
if (SUCCESS != m_pCall->Initialize()) return Ret;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoDecimal", "http://soapinterop.org/");
m_pCall->AddParameter(Value0, "inputDecimal", XSD_DECIMAL);
m_pCall->SetReturnType(XSD_DECIMAL);
nStatus = m_pCall->Invoke();
if (SUCCESS == nStatus)
{
Ret = m_pCall->GetResult()->GetDecimal();
}
m_pCall->UnInitialize();
return Ret;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoBoolean
//////////////////////////////////////////////////////////////////
Axis_Boolean InteropTestPortType::echoBoolean(Axis_Boolean Value0)
{
int nStatus;
Axis_Boolean Ret;
if (SUCCESS != m_pCall->Initialize()) return Ret;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoBoolean", "http://soapinterop.org/");
m_pCall->AddParameter(Value0, "inputBoolean", XSD_BOOLEAN);
m_pCall->SetReturnType(XSD_BOOLEAN);
nStatus = m_pCall->Invoke();
if (SUCCESS == nStatus)
{
Ret = m_pCall->GetResult()->GetInt();
}
m_pCall->UnInitialize();
return Ret;
}
1.1 ws-axis/c/src/client/samples/interoptests/base/InteropTestPortType.h
Index: InteropTestPortType.h
===================================================================
/////////////////////////////////////////////////////////////////////////////
// This is the Client Stub Class genarated by the tool WSDL2Ws
// InteropTestPortType.h: interface for the InteropTestPortTypeclass.
//
//////////////////////////////////////////////////////////////////////
#if !defined(__INTEROPTESTPORTTYPE_CLIENTSTUB_H__INCLUDED_)
#define __INTEROPTESTPORTTYPE_CLIENTSTUB_H__INCLUDED_
#include <axis/client/Call.h>
#include "SOAPStruct.h"
#include "ArrayOffloat.h"
#include "ArrayOfSOAPStruct.h"
#include "ArrayOfint.h"
#include "ArrayOfstring.h"
class InteropTestPortType
{
private:
Call* m_pCall;
public:
InteropTestPortType();
public:
virtual ~InteropTestPortType();
public:
string echoString(string Value0);
ArrayOfstring echoStringArray(ArrayOfstring Value0);
int echoInteger(int Value0);
ArrayOfint echoIntegerArray(ArrayOfint Value0);
float echoFloat(float Value0);
ArrayOffloat echoFloatArray(ArrayOffloat Value0);
SOAPStruct* echoStruct(SOAPStruct* Value0);
ArrayOfSOAPStruct echoStructArray(ArrayOfSOAPStruct Value0);
void echoVoid();
Axis_Base64Binary echoBase64(Axis_Base64Binary Value0);
Axis_DateTime echoDate(Axis_DateTime Value0);
Axis_HexBinary echoHexBinary(Axis_HexBinary Value0);
Axis_Decimal echoDecimal(Axis_Decimal Value0);
Axis_Boolean echoBoolean(Axis_Boolean Value0);
};
#endif // !defined(__INTEROPTESTPORTTYPE_CLIENTSTUB_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/base/SOAPStruct.cpp
Index: SOAPStruct.cpp
===================================================================
///////////////////////////////////////////////////////////////////////////////////
//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
////////////////////////////////////////////////////////////////////////////////////
#include "SOAPStruct.h"
#include <axis/common/IWrapperSoapDeSerializer.h>
#include <axis/common/IWrapperSoapSerializer.h>
#include <axis/common/IParam.h>
/////////////////////////////////////////////////////////////////////////////
// This static method serialize a SOAPStruct type of object
//////////////////////////////////////////////////////////////////////
int Axis_Serialize_SOAPStruct(SOAPStruct* param, IWrapperSoapSerializer& pSZ, bool bArray = false)
{
if (bArray)
{
pSZ << "<" << Axis_TypeName_SOAPStruct << ">";
}
else
{
const AxisChar* sPrefix = pSZ.getNewNamespacePrefix();
pSZ << "<" << Axis_TypeName_SOAPStruct << " xsi:type=\"" << sPrefix <<":"
<< Axis_TypeName_SOAPStruct << "\" xmlns:" << sPrefix << "=\""
<< Axis_URI_SOAPStruct << "\">";
}
pSZ << pSZ.SerializeBasicType("varString", param->varString, XSD_STRING);
pSZ << pSZ.SerializeBasicType("varInt", param->varInt, XSD_INT);
pSZ << pSZ.SerializeBasicType("varFloat", param->varFloat, XSD_FLOAT);
pSZ << "</" << Axis_TypeName_SOAPStruct << ">";
return SUCCESS;
}
/////////////////////////////////////////////////////////////////////////////
// This static method deserialize a SOAPStruct type of object
//////////////////////////////////////////////////////////////////////
int Axis_DeSerialize_SOAPStruct(SOAPStruct* param, IWrapperSoapDeSerializer *pIWSDZ)
{
param->varString = pIWSDZ->GetString();
param->varInt = pIWSDZ->GetInt();
param->varFloat = pIWSDZ->GetFloat();
return SUCCESS;
}
void* Axis_Create_SOAPStruct(bool bArray = false, int nSize=0)
{
if (bArray && (nSize > 0))
return new SOAPStruct[nSize];
else
return new SOAPStruct;
}
/////////////////////////////////////////////////////////////////////////////
// This static method delete a SOAPStruct type of object
//////////////////////////////////////////////////////////////////////
void Axis_Delete_SOAPStruct(SOAPStruct* param, bool bArray = false, int nSize=0)
{
if (bArray)
{
delete [] param;
}
else
{
//delete any pointer members or array members of this struct here
delete param;
}
}
/////////////////////////////////////////////////////////////////////////////
// This static method gives the size of SOAPStruct type of object
//////////////////////////////////////////////////////////////////////
int Axis_GetSize_SOAPStruct()
{
return sizeof(SOAPStruct);
}
1.1 ws-axis/c/src/client/samples/interoptests/base/SOAPStruct.h
Index: SOAPStruct.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
////////////////////////////////////////////////////////////////////////////////////
#if !defined(__SOAPSTRUCT_PARAM_H__INCLUDED_)
#define __SOAPSTRUCT_PARAM_H__INCLUDED_
#include <axis/common/AxisUserAPI.h>
//Local name and the URI for the type
static const char* Axis_URI_SOAPStruct = "http://soapinterop.org/xsd";
static const char* Axis_TypeName_SOAPStruct = "SOAPStruct";
class SOAPStruct
{
public:
string varString;
int varInt;
float varFloat;
};
#endif // !defined(__SOAPSTRUCT_PARAM_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/groupB/ArrayOfSOAPStruct.h
Index: ArrayOfSOAPStruct.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 ArrayOfSOAPStruct
////////////////////////////////////////////////////////////////////////////////////
#if !defined(__ARRAYOFSOAPSTRUCT_ARRAY_H__INCLUDED_)
#define __ARRAYOFSOAPSTRUCT_ARRAY_H__INCLUDED_
#include "SOAPStruct.h"
typedef struct ArrayOfSOAPStructTag
{
SOAPStruct* m_Array;
int m_Size;
} ArrayOfSOAPStruct;
#endif // !defined(__ARRAYOFSOAPSTRUCT_ARRAY_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/groupB/ArrayOfString2D.h
Index: ArrayOfString2D.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 ArrayOfString2D
////////////////////////////////////////////////////////////////////////////////////
#if !defined(__ARRAYOFSTRING2D_ARRAY_H__INCLUDED_)
#define __ARRAYOFSTRING2D_ARRAY_H__INCLUDED_
#include <axis/common/AxisUserAPI.h>
typedef struct ArrayOfString2DTag
{
string* m_Array;
int m_Size;
} ArrayOfString2D;
#endif // !defined(__ARRAYOFSTRING2D_ARRAY_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/groupB/ArrayOffloat.h
Index: ArrayOffloat.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 ArrayOffloat
////////////////////////////////////////////////////////////////////////////////////
#if !defined(__ARRAYOFFLOAT_ARRAY_H__INCLUDED_)
#define __ARRAYOFFLOAT_ARRAY_H__INCLUDED_
#include <axis/common/AxisUserAPI.h>
typedef struct ArrayOffloatTag
{
float* m_Array;
int m_Size;
} ArrayOffloat;
#endif // !defined(__ARRAYOFFLOAT_ARRAY_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/groupB/ArrayOfint.h
Index: ArrayOfint.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 ArrayOfint
////////////////////////////////////////////////////////////////////////////////////
#if !defined(__ARRAYOFINT_ARRAY_H__INCLUDED_)
#define __ARRAYOFINT_ARRAY_H__INCLUDED_
#include <axis/common/AxisUserAPI.h>
typedef struct ArrayOfintTag
{
int* m_Array;
int m_Size;
} ArrayOfint;
#endif // !defined(__ARRAYOFINT_ARRAY_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/groupB/ArrayOfstring.h
Index: ArrayOfstring.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 ArrayOfstring
////////////////////////////////////////////////////////////////////////////////////
#if !defined(__ARRAYOFSTRING_ARRAY_H__INCLUDED_)
#define __ARRAYOFSTRING_ARRAY_H__INCLUDED_
#include <axis/common/AxisUserAPI.h>
typedef struct ArrayOfstringTag
{
string* m_Array;
int m_Size;
} ArrayOfstring;
#endif // !defined(__ARRAYOFSTRING_ARRAY_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/groupB/InteropGroupB.wsdl
Index: InteropGroupB.wsdl
===================================================================
<?xml version="1.0"?>
<definitions name="InteropTestB" 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>
<complexType name="SOAPStructStruct">
<all>
<element name="varString" type="string"/>
<element name="varInt" type="int"/>
<element name="varFloat" type="float"/>
<element name="varStruct" type="s:SOAPStruct"/>
</all>
</complexType>
<complexType name="SOAPArrayStruct">
<all>
<element name="varString" type="string"/>
<element name="varInt" type="int"/>
<element name="varFloat" type="float"/>
<element name="varArray" type="s:ArrayOfstring"/>
</all>
</complexType>
<complexType name="ArrayOfString2D">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[,]"/>
</restriction>
</complexContent>
</complexType>
</schema>
</types>
<message name="echoStructAsSimpleTypesRequest">
<part name="inputStruct" type="s:SOAPStruct"/>
</message>
<message name="echoStructAsSimpleTypesResponse">
<part name="outputString" type="xsd:string"/>
<part name="outputInteger" type="xsd:int"/>
<part name="outputFloat" type="xsd:float"/>
</message>
<message name="echoSimpleTypesAsStructRequest">
<part name="inputString" type="xsd:string"/>
<part name="inputInteger" type="xsd:int"/>
<part name="inputFloat" type="xsd:float"/>
</message>
<message name="echoSimpleTypesAsStructResponse">
<part name="return" type="s:SOAPStruct"/>
</message>
<message name="echo2DStringArrayRequest">
<part name="input2DStringArray" type="s:ArrayOfString2D"/>
</message>
<message name="echo2DStringArrayResponse">
<part name="return" type="s:ArrayOfString2D"/>
</message>
<message name="echoNestedStructRequest">
<part name="inputStruct" type="s:SOAPStructStruct"/>
</message>
<message name="echoNestedStructResponse">
<part name="return" type="s:SOAPStructStruct"/>
</message>
<message name="echoNestedArrayRequest">
<part name="inputStruct" type="s:SOAPArrayStruct"/>
</message>
<message name="echoNestedArrayResponse">
<part name="return" type="s:SOAPArrayStruct"/>
</message>
<portType name="InteropTestPortTypeB">
<operation name="echoStructAsSimpleTypes" parameterOrder="inputStruct outputString outputInteger outputFloat">
<input message="tns:echoStructAsSimpleTypesRequest"/>
<output message="tns:echoStructAsSimpleTypesResponse"/>
</operation>
<operation name="echoSimpleTypesAsStruct" parameterOrder="inputString inputInteger inputFloat">
<input message="tns:echoSimpleTypesAsStructRequest"/>
<output message="tns:echoSimpleTypesAsStructResponse"/>
</operation>
<operation name="echo2DStringArray" parameterOrder="input2DStringArray">
<input message="tns:echo2DStringArrayRequest"/>
<output message="tns:echo2DStringArrayResponse"/>
</operation>
<operation name="echoNestedStruct" parameterOrder="inputStruct">
<input message="tns:echoNestedStructRequest"/>
<output message="tns:echoNestedStructResponse"/>
</operation>
<operation name="echoNestedArray" parameterOrder="inputStruct">
<input message="tns:echoNestedArrayRequest"/>
<output message="tns:echoNestedArrayResponse"/>
</operation>
</portType>
<binding name="InteropTestSoapBindingB" type="tns:InteropTestPortTypeB">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="echoStructAsSimpleTypes">
<soap:operation soapAction="http://soapinterop.org/"/>
<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="echoSimpleTypesAsStruct">
<soap:operation soapAction="http://soapinterop.org/"/>
<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="echo2DStringArray">
<soap:operation soapAction="http://soapinterop.org/"/>
<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="echoNestedStruct">
<soap:operation soapAction="http://soapinterop.org/"/>
<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="echoNestedArray">
<soap:operation soapAction="http://soapinterop.org/"/>
<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="InteropGroupB">
<port binding="tns:InteropTestSoapBindingB" name="InteropGroupBTest">
<soap:address location="http://localhost/axis/InteropGroupB"/>
</port>
</service>
</definitions>
1.1 ws-axis/c/src/client/samples/interoptests/groupB/InteropGroupBClient.cpp
Index: InteropGroupBClient.cpp
===================================================================
// InteropGroupBClient.cpp : Defines the entry point for the console application.
//
#include "InteropTestPortTypeB.h"
#define ARRAYSIZE 5
int main(int argc, char* argv[])
{
int x;
InteropTestPortTypeB ws;
//we do not support multi-dimensional arrays.
//ws.echo2DStringArray
//testing Nested Arrays
SOAPArrayStruct sas;
sas.varFloat = 12345.67890;
sas.varInt = 5000;
sas.varString = "varString content of SOAPArrayStruct";
sas.varArray.m_Array = new string[ARRAYSIZE];
sas.varArray.m_Size = ARRAYSIZE;
for (x=0; x<ARRAYSIZE; x++)
{
sas.varArray.m_Array[x] = "content of string array element";
}
ws.echoNestedArray(&sas);
//testing Nested Structs
SOAPStructStruct sss;
sss.varFloat = 12345.67890;
sss.varInt = 5000;
sss.varString = "varString content of SOAPStructStruct";
sss.varStruct = new SOAPStruct();
sss.varStruct->varFloat = 67890.12345;
sss.varStruct->varInt = 54321;
sss.varStruct->varString = "varString content of SOAPStruct";
ws.echoNestedStruct(&sss);
//testing echo Simple types as struct
string str = "content of string passed";
ws.echoSimpleTypesAsStruct(12345.67890, 5000, str);
return 0;
}
1.1 ws-axis/c/src/client/samples/interoptests/groupB/InteropTestPortTypeB.cpp
Index: InteropTestPortTypeB.cpp
===================================================================
///////////////////////////////////////////////////////////////////////
// This is the Client Stub implementation file genarated by WSDL2Ws tool.
// InteropTestPortTypeB.cpp: implemtation for the InteropTestPortTypeB.
//
//////////////////////////////////////////////////////////////////////
#include "InteropTestPortTypeB.h"
#include <axis/common/IWrapperSoapDeSerializer.h>
#include <axis/common/IWrapperSoapSerializer.h>
extern int Axis_DeSerialize_SOAPStruct(SOAPStruct* param, IWrapperSoapDeSerializer *pDZ);
extern void* Axis_Create_SOAPStruct(bool bArray = false, int nSize=0);
extern void Axis_Delete_SOAPStruct(SOAPStruct* param, bool bArray = false, int nSize=0);
extern int Axis_Serialize_SOAPStruct(SOAPStruct* param, IWrapperSoapSerializer& pSZ, bool bArray = false);
extern int Axis_GetSize_SOAPStruct();
extern int Axis_DeSerialize_SOAPArrayStruct(SOAPArrayStruct* param, IWrapperSoapDeSerializer *pDZ);
extern void* Axis_Create_SOAPArrayStruct(bool bArray = false, int nSize=0);
extern void Axis_Delete_SOAPArrayStruct(SOAPArrayStruct* param, bool bArray = false, int nSize=0);
extern int Axis_Serialize_SOAPArrayStruct(SOAPArrayStruct* param, IWrapperSoapSerializer& pSZ, bool bArray = false);
extern int Axis_GetSize_SOAPArrayStruct();
extern int Axis_DeSerialize_SOAPStructStruct(SOAPStructStruct* param, IWrapperSoapDeSerializer *pDZ);
extern void* Axis_Create_SOAPStructStruct(bool bArray = false, int nSize=0);
extern void Axis_Delete_SOAPStructStruct(SOAPStructStruct* param, bool bArray = false, int nSize=0);
extern int Axis_Serialize_SOAPStructStruct(SOAPStructStruct* param, IWrapperSoapSerializer& pSZ, bool bArray = false);
extern int Axis_GetSize_SOAPStructStruct();
InteropTestPortTypeB::InteropTestPortTypeB()
{
m_pCall = new Call();
m_pCall->SetProtocol(APTHTTP);
m_pCall->SetHeader("SOAPAction", "InteropTestPortTypeB");
m_pCall->SetEndpointURI("http://localhost/axis/InteropGroupB");
}
InteropTestPortTypeB::~InteropTestPortTypeB()
{
delete m_pCall;
}
//Methods corresponding to the web service methods
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoStructAsSimpleTypes
//////////////////////////////////////////////////////////////////
float InteropTestPortTypeB::echoStructAsSimpleTypes(SOAPStruct* Value0)
{
int nStatus;
float Ret;
if (SUCCESS != m_pCall->Initialize()) return Ret;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoStructAsSimpleTypes", "http://soapinterop.org/");
m_pCall->AddParameter(Value0, Axis_Serialize_SOAPStruct, Axis_Delete_SOAPStruct, "inputStruct");
m_pCall->SetReturnType(XSD_FLOAT);
nStatus = m_pCall->Invoke();
if (SUCCESS == nStatus)
{
Ret = m_pCall->GetResult()->GetFloat();
}
m_pCall->UnInitialize();
return Ret;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoSimpleTypesAsStruct
//////////////////////////////////////////////////////////////////
SOAPStruct* InteropTestPortTypeB::echoSimpleTypesAsStruct(float Value0, int Value1, string Value2)
{
int nStatus;
SOAPStruct* pReturn = NULL;
if (SUCCESS != m_pCall->Initialize()) return pReturn;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoSimpleTypesAsStruct", "http://soapinterop.org/");
m_pCall->AddParameter(Value0, "inputFloat", XSD_FLOAT);
m_pCall->AddParameter(Value1, "inputInteger", XSD_INT);
m_pCall->AddParameter(Value2, "inputString", XSD_STRING);
m_pCall->SetReturnType((void*) Axis_DeSerialize_SOAPStruct, (void*) Axis_Create_SOAPStruct, (void*) Axis_Delete_SOAPStruct, Axis_TypeName_SOAPStruct, Axis_URI_SOAPStruct);
nStatus = m_pCall->Invoke();
if (SUCCESS == nStatus)
{
m_pCall->GetResult((void**)&pReturn);
}
m_pCall->UnInitialize();
return pReturn;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodecho2DStringArray
//////////////////////////////////////////////////////////////////
ArrayOfString2D InteropTestPortTypeB::echo2DStringArray(ArrayOfString2D Value0)
{
int nStatus;
ArrayOfString2D RetArray = {NULL, 0};
if (SUCCESS != m_pCall->Initialize()) return RetArray;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echo2DStringArray", "http://soapinterop.org/");
m_pCall->AddParameter((Axis_Array*)(&Value0), XSD_STRING, "input2DStringArray");
m_pCall->SetReturnType((Axis_Array*)(&RetArray), XSD_STRING);
nStatus = m_pCall->Invoke();
if (SUCCESS != nStatus)
{
delete RetArray.m_Array;
RetArray.m_Array = NULL;
RetArray.m_Size = 0;
}
m_pCall->UnInitialize();
return RetArray;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoNestedStruct
//////////////////////////////////////////////////////////////////
SOAPStructStruct* InteropTestPortTypeB::echoNestedStruct(SOAPStructStruct* Value0)
{
int nStatus;
SOAPStructStruct* pReturn = NULL;
if (SUCCESS != m_pCall->Initialize()) return pReturn;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoNestedStruct", "http://soapinterop.org/");
m_pCall->AddParameter(Value0, Axis_Serialize_SOAPStructStruct, Axis_Delete_SOAPStructStruct, "inputStruct");
m_pCall->SetReturnType((void*) Axis_DeSerialize_SOAPStructStruct, (void*) Axis_Create_SOAPStructStruct, (void*) Axis_Delete_SOAPStructStruct, Axis_TypeName_SOAPStructStruct, Axis_URI_SOAPStructStruct);
nStatus = m_pCall->Invoke();
if (SUCCESS == nStatus)
{
m_pCall->GetResult((void**)&pReturn);
}
m_pCall->UnInitialize();
return pReturn;
}
/////////////////////////////////////////////////////////////////
// This method wrap the service methodechoNestedArray
//////////////////////////////////////////////////////////////////
SOAPArrayStruct* InteropTestPortTypeB::echoNestedArray(SOAPArrayStruct* Value0)
{
int nStatus;
SOAPArrayStruct* pReturn = NULL;
if (SUCCESS != m_pCall->Initialize()) return pReturn;
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("echoNestedArray", "http://soapinterop.org/");
m_pCall->AddParameter(Value0, Axis_Serialize_SOAPArrayStruct, Axis_Delete_SOAPArrayStruct, "inputStruct");
m_pCall->SetReturnType((void*) Axis_DeSerialize_SOAPArrayStruct, (void*) Axis_Create_SOAPArrayStruct, (void*) Axis_Delete_SOAPArrayStruct, Axis_TypeName_SOAPArrayStruct, Axis_URI_SOAPArrayStruct);
nStatus = m_pCall->Invoke();
if (SUCCESS == nStatus)
{
m_pCall->GetResult((void**)&pReturn);
}
m_pCall->UnInitialize();
return pReturn;
}
1.1 ws-axis/c/src/client/samples/interoptests/groupB/InteropTestPortTypeB.h
Index: InteropTestPortTypeB.h
===================================================================
/////////////////////////////////////////////////////////////////////////////
// This is the Client Stub Class genarated by the tool WSDL2Ws
// InteropTestPortTypeB.h: interface for the InteropTestPortTypeBclass.
//
//////////////////////////////////////////////////////////////////////
#if !defined(__INTEROPTESTPORTTYPEB_CLIENTSTUB_H__INCLUDED_)
#define __INTEROPTESTPORTTYPEB_CLIENTSTUB_H__INCLUDED_
#include <axis/client/Call.h>
#include "SOAPArrayStruct.h"
#include "SOAPStruct.h"
#include "ArrayOffloat.h"
#include "ArrayOfSOAPStruct.h"
#include "ArrayOfint.h"
#include "ArrayOfString2D.h"
#include "SOAPStructStruct.h"
#include "ArrayOfstring.h"
class InteropTestPortTypeB
{
private:
Call* m_pCall;
public:
InteropTestPortTypeB();
public:
virtual ~InteropTestPortTypeB();
public:
float echoStructAsSimpleTypes(SOAPStruct* Value0);
SOAPStruct* echoSimpleTypesAsStruct(float Value0,int Value1,string Value2);
ArrayOfString2D echo2DStringArray(ArrayOfString2D Value0);
SOAPStructStruct* echoNestedStruct(SOAPStructStruct* Value0);
SOAPArrayStruct* echoNestedArray(SOAPArrayStruct* Value0);
};
#endif // !defined(__INTEROPTESTPORTTYPEB_CLIENTSTUB_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/groupB/SOAPArrayStruct.cpp
Index: SOAPArrayStruct.cpp
===================================================================
///////////////////////////////////////////////////////////////////////////////////
//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 SOAPArrayStruct
////////////////////////////////////////////////////////////////////////////////////
#include "SOAPArrayStruct.h"
#include <axis/common/IWrapperSoapDeSerializer.h>
#include <axis/common/IWrapperSoapSerializer.h>
#include <axis/common/IParam.h>
/////////////////////////////////////////////////////////////////////////////
// This static method serialize a SOAPArrayStruct type of object
//////////////////////////////////////////////////////////////////////
int Axis_Serialize_SOAPArrayStruct(SOAPArrayStruct* param, IWrapperSoapSerializer& pSZ, bool bArray = false)
{
if (bArray)
{
pSZ << "<" << Axis_TypeName_SOAPArrayStruct << ">";
}
else
{
const AxisChar* sPrefix = pSZ.getNewNamespacePrefix();
pSZ << "<" << Axis_TypeName_SOAPArrayStruct << " xsi:type=\"" << sPrefix <<":"
<< Axis_TypeName_SOAPArrayStruct << "\" xmlns:" << sPrefix << "=\""
<< Axis_URI_SOAPArrayStruct << "\">";
}
pSZ << pSZ.SerializeBasicType("varString", param->varString, XSD_STRING);
pSZ << pSZ.SerializeBasicType("varInt", param->varInt, XSD_INT);
pSZ << pSZ.SerializeBasicType("varFloat", param->varFloat, XSD_FLOAT);
pSZ.SerializeArray((Axis_Array*)(¶m->varArray),XSD_STRING, "varArray");
pSZ << "</" << Axis_TypeName_SOAPArrayStruct << ">";
return SUCCESS;
}
/////////////////////////////////////////////////////////////////////////////
// This static method deserialize a SOAPArrayStruct type of object
//////////////////////////////////////////////////////////////////////
int Axis_DeSerialize_SOAPArrayStruct(SOAPArrayStruct* param, IWrapperSoapDeSerializer *pIWSDZ)
{
param->varString = pIWSDZ->GetString();
param->varInt = pIWSDZ->GetInt();
param->varFloat = pIWSDZ->GetFloat();
param->varArray.m_Size = pIWSDZ->GetArraySize();
if (param->varArray.m_Size < 1) return FAIL;
param->varArray.m_Array = new string[param->varArray.m_Size];
if (SUCCESS != pIWSDZ->GetArray((Axis_Array*)(¶m->varArray), XSD_STRING)) return FAIL;
return SUCCESS;
}
void* Axis_Create_SOAPArrayStruct(bool bArray = false, int nSize=0)
{
if (bArray && (nSize > 0))
return new SOAPArrayStruct[nSize];
else
return new SOAPArrayStruct;
}
/////////////////////////////////////////////////////////////////////////////
// This static method delete a SOAPArrayStruct type of object
//////////////////////////////////////////////////////////////////////
void Axis_Delete_SOAPArrayStruct(SOAPArrayStruct* param, bool bArray = false, int nSize=0)
{
if (bArray)
{
//delete any pointer members or array members of this struct here
SOAPArrayStruct* pTemp = param;
for (int x=0; x<nSize; x++)
{
delete [] ((string*)pTemp->varArray.m_Array);
pTemp++;
}
delete [] param;
}
else
{
//delete any pointer members or array members of this struct here
delete [] ((string*)param->varArray.m_Array);
delete param;
}
}
/////////////////////////////////////////////////////////////////////////////
// This static method gives the size of SOAPArrayStruct type of object
//////////////////////////////////////////////////////////////////////
int Axis_GetSize_SOAPArrayStruct()
{
return sizeof(SOAPArrayStruct);
}
1.1 ws-axis/c/src/client/samples/interoptests/groupB/SOAPArrayStruct.h
Index: SOAPArrayStruct.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 SOAPArrayStruct
////////////////////////////////////////////////////////////////////////////////////
#if !defined(__SOAPARRAYSTRUCT_PARAM_H__INCLUDED_)
#define __SOAPARRAYSTRUCT_PARAM_H__INCLUDED_
#include <axis/common/AxisUserAPI.h>
#include "ArrayOfstring.h"
//Local name and the URI for the type
static const char* Axis_URI_SOAPArrayStruct = "http://soapinterop.org/xsd";
static const char* Axis_TypeName_SOAPArrayStruct = "SOAPArrayStruct";
class SOAPArrayStruct
{
public:
string varString;
int varInt;
float varFloat;
ArrayOfstring varArray;
};
#endif // !defined(__SOAPARRAYSTRUCT_PARAM_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/groupB/SOAPStruct.cpp
Index: SOAPStruct.cpp
===================================================================
///////////////////////////////////////////////////////////////////////////////////
//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
////////////////////////////////////////////////////////////////////////////////////
#include "SOAPStruct.h"
#include <axis/common/IWrapperSoapDeSerializer.h>
#include <axis/common/IWrapperSoapSerializer.h>
#include <axis/common/IParam.h>
/////////////////////////////////////////////////////////////////////////////
// This static method serialize a SOAPStruct type of object
//////////////////////////////////////////////////////////////////////
int Axis_Serialize_SOAPStruct(SOAPStruct* param, IWrapperSoapSerializer& pSZ, bool bArray = false)
{
if (bArray)
{
pSZ << "<" << Axis_TypeName_SOAPStruct << ">";
}
else
{
const AxisChar* sPrefix = pSZ.getNewNamespacePrefix();
pSZ << "<" << Axis_TypeName_SOAPStruct << " xsi:type=\"" << sPrefix <<":"
<< Axis_TypeName_SOAPStruct << "\" xmlns:" << sPrefix << "=\""
<< Axis_URI_SOAPStruct << "\">";
}
pSZ << pSZ.SerializeBasicType("varString", param->varString, XSD_STRING);
pSZ << pSZ.SerializeBasicType("varInt", param->varInt, XSD_INT);
pSZ << pSZ.SerializeBasicType("varFloat", param->varFloat, XSD_FLOAT);
pSZ << "</" << Axis_TypeName_SOAPStruct << ">";
return SUCCESS;
}
/////////////////////////////////////////////////////////////////////////////
// This static method deserialize a SOAPStruct type of object
//////////////////////////////////////////////////////////////////////
int Axis_DeSerialize_SOAPStruct(SOAPStruct* param, IWrapperSoapDeSerializer *pIWSDZ)
{
param->varString = pIWSDZ->GetString();
param->varInt = pIWSDZ->GetInt();
param->varFloat = pIWSDZ->GetFloat();
return SUCCESS;
}
void* Axis_Create_SOAPStruct(bool bArray = false, int nSize=0)
{
if (bArray && (nSize > 0))
return new SOAPStruct[nSize];
else
return new SOAPStruct;
}
/////////////////////////////////////////////////////////////////////////////
// This static method delete a SOAPStruct type of object
//////////////////////////////////////////////////////////////////////
void Axis_Delete_SOAPStruct(SOAPStruct* param, bool bArray = false, int nSize=0)
{
if (bArray)
{
delete [] param;
}
else
{
//delete any pointer members or array members of this struct here
delete param;
}
}
/////////////////////////////////////////////////////////////////////////////
// This static method gives the size of SOAPStruct type of object
//////////////////////////////////////////////////////////////////////
int Axis_GetSize_SOAPStruct()
{
return sizeof(SOAPStruct);
}
1.1 ws-axis/c/src/client/samples/interoptests/groupB/SOAPStruct.h
Index: SOAPStruct.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
////////////////////////////////////////////////////////////////////////////////////
#if !defined(__SOAPSTRUCT_PARAM_H__INCLUDED_)
#define __SOAPSTRUCT_PARAM_H__INCLUDED_
#include <axis/common/AxisUserAPI.h>
//Local name and the URI for the type
static const char* Axis_URI_SOAPStruct = "http://soapinterop.org/xsd";
static const char* Axis_TypeName_SOAPStruct = "SOAPStruct";
class SOAPStruct
{
public:
string varString;
int varInt;
float varFloat;
};
#endif // !defined(__SOAPSTRUCT_PARAM_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/groupB/SOAPStructStruct.cpp
Index: SOAPStructStruct.cpp
===================================================================
///////////////////////////////////////////////////////////////////////////////////
//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 SOAPStructStruct
////////////////////////////////////////////////////////////////////////////////////
#include "SOAPStructStruct.h"
#include <axis/common/IWrapperSoapDeSerializer.h>
#include <axis/common/IWrapperSoapSerializer.h>
#include <axis/common/IParam.h>
extern int Axis_DeSerialize_SOAPStruct(SOAPStruct* param, IWrapperSoapDeSerializer *pDZ);
extern void* Axis_Create_SOAPStruct(bool bArray = false, int nSize=0);
extern void Axis_Delete_SOAPStruct(SOAPStruct* param, bool bArray = false, int nSize=0);
extern int Axis_Serialize_SOAPStruct(SOAPStruct* param, IWrapperSoapSerializer& pSZ, bool bArray = false);
extern int Axis_GetSize_SOAPStruct();
/////////////////////////////////////////////////////////////////////////////
// This static method serialize a SOAPStructStruct type of object
//////////////////////////////////////////////////////////////////////
int Axis_Serialize_SOAPStructStruct(SOAPStructStruct* param, IWrapperSoapSerializer& pSZ, bool bArray = false)
{
if (bArray)
{
pSZ << "<" << Axis_TypeName_SOAPStructStruct << ">";
}
else
{
const AxisChar* sPrefix = pSZ.getNewNamespacePrefix();
pSZ << "<" << Axis_TypeName_SOAPStructStruct << " xsi:type=\"" << sPrefix <<":"
<< Axis_TypeName_SOAPStructStruct << "\" xmlns:" << sPrefix << "=\""
<< Axis_URI_SOAPStructStruct << "\">";
}
pSZ << pSZ.SerializeBasicType("varString", param->varString, XSD_STRING);
pSZ << pSZ.SerializeBasicType("varInt", param->varInt, XSD_INT);
pSZ << pSZ.SerializeBasicType("varFloat", param->varFloat, XSD_FLOAT);
Axis_Serialize_SOAPStruct(param->varStruct, pSZ);
pSZ << "</" << Axis_TypeName_SOAPStructStruct << ">";
return SUCCESS;
}
/////////////////////////////////////////////////////////////////////////////
// This static method deserialize a SOAPStructStruct type of object
//////////////////////////////////////////////////////////////////////
int Axis_DeSerialize_SOAPStructStruct(SOAPStructStruct* param, IWrapperSoapDeSerializer *pIWSDZ)
{
param->varString = pIWSDZ->GetString();
param->varInt = pIWSDZ->GetInt();
param->varFloat = pIWSDZ->GetFloat();
param->varStruct = (SOAPStruct*)pIWSDZ->GetObject((AXIS_DESERIALIZE_FUNCT)Axis_DeSerialize_SOAPStruct
, (AXIS_OBJECT_CREATE_FUNCT)Axis_Create_SOAPStruct, (AXIS_OBJECT_DELETE_FUNCT)Axis_Delete_SOAPStruct
, Axis_TypeName_SOAPStruct, Axis_URI_SOAPStruct);
return SUCCESS;
}
void* Axis_Create_SOAPStructStruct(bool bArray = false, int nSize=0)
{
if (bArray && (nSize > 0))
return new SOAPStructStruct[nSize];
else
return new SOAPStructStruct;
}
/////////////////////////////////////////////////////////////////////////////
// This static method delete a SOAPStructStruct type of object
//////////////////////////////////////////////////////////////////////
void Axis_Delete_SOAPStructStruct(SOAPStructStruct* param, bool bArray = false, int nSize=0)
{
if (bArray)
{
//delete any pointer members or array members of this struct here
SOAPStructStruct* pTemp = param;
for (int x=0; x<nSize; x++)
{
Axis_Delete_SOAPStruct(pTemp->varStruct);
pTemp++;
}
delete [] param;
}
else
{
//delete any pointer members or array members of this struct here
Axis_Delete_SOAPStruct(param->varStruct);
delete param;
}
}
/////////////////////////////////////////////////////////////////////////////
// This static method gives the size of SOAPStructStruct type of object
//////////////////////////////////////////////////////////////////////
int Axis_GetSize_SOAPStructStruct()
{
return sizeof(SOAPStructStruct);
}
1.1 ws-axis/c/src/client/samples/interoptests/groupB/SOAPStructStruct.h
Index: SOAPStructStruct.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 SOAPStructStruct
////////////////////////////////////////////////////////////////////////////////////
#if !defined(__SOAPSTRUCTSTRUCT_PARAM_H__INCLUDED_)
#define __SOAPSTRUCTSTRUCT_PARAM_H__INCLUDED_
#include <axis/common/AxisUserAPI.h>
#include "SOAPStruct.h"
//Local name and the URI for the type
static const char* Axis_URI_SOAPStructStruct = "http://soapinterop.org/xsd";
static const char* Axis_TypeName_SOAPStructStruct = "SOAPStructStruct";
class SOAPStructStruct
{
public:
string varString;
int varInt;
float varFloat;
SOAPStruct* varStruct;
};
#endif // !defined(__SOAPSTRUCTSTRUCT_PARAM_H__INCLUDED_)
1.1 ws-axis/c/src/client/samples/interoptests/groupC/InteropGroupC.wsdl
Index: InteropGroupC.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/">
<import location="http://www.whitemesa.com/interop/InteropTest.wsdl" namespace="http://soapinterop.org/"/>
<import location="http://www.whitemesa.com/interop/InteropTest.wsdl" namespace="http://soapinterop.org/xsd"/>
<message name="echoHeaderString_Request">
<part name="echoMeStringRequest" type="xsd:string"/>
</message>
<message name="echoHeaderString_Response">
<part name="echoMeStringResponse" type="xsd:string"/>
</message>
<message name="echoHeaderStruct_Request">
<part name="echoMeStructRequest" type="s:SOAPStruct"/>
</message>
<message name="echoHeaderStruct_Response">
<part name="echoMeStructResponse" type="s:SOAPStruct"/>
</message>
<binding name="InteropEchoHeaderBinding" type="tns:InteropTestPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="echoString">
<soap:operation soapAction="http://soapinterop.org/"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Request" part="echoMeStringRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Request" part="echoMeStructRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Response" part="echoMeStringResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Response" part="echoMeStructResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoStringArray">
<soap:operation soapAction="http://soapinterop.org/"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Request" part="echoMeStringRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Request" part="echoMeStructRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Response" part="echoMeStringResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Response" part="echoMeStructResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoInteger">
<soap:operation soapAction="http://soapinterop.org/"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Request" part="echoMeStringRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Request" part="echoMeStructRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Response" part="echoMeStringResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Response" part="echoMeStructResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoIntegerArray">
<soap:operation soapAction="http://soapinterop.org/"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Request" part="echoMeStringRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Request" part="echoMeStructRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Response" part="echoMeStringResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Response" part="echoMeStructResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoFloat">
<soap:operation soapAction="http://soapinterop.org/"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Request" part="echoMeStringRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Request" part="echoMeStructRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Response" part="echoMeStringResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Response" part="echoMeStructResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoFloatArray">
<soap:operation soapAction="http://soapinterop.org/"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Request" part="echoMeStringRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Request" part="echoMeStructRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Response" part="echoMeStringResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Response" part="echoMeStructResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoStruct">
<soap:operation soapAction="http://soapinterop.org/"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Request" part="echoMeStringRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Request" part="echoMeStructRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Response" part="echoMeStringResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Response" part="echoMeStructResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoStructArray">
<soap:operation soapAction="http://soapinterop.org/"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Request" part="echoMeStringRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Request" part="echoMeStructRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Response" part="echoMeStringResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Response" part="echoMeStructResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoVoid">
<soap:operation soapAction="http://soapinterop.org/"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Request" part="echoMeStringRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Request" part="echoMeStructRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Response" part="echoMeStringResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Response" part="echoMeStructResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoBase64">
<soap:operation soapAction="http://soapinterop.org/"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Request" part="echoMeStringRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Request" part="echoMeStructRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Response" part="echoMeStringResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Response" part="echoMeStructResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoDate">
<soap:operation soapAction="http://soapinterop.org/"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Request" part="echoMeStringRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Request" part="echoMeStructRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Response" part="echoMeStringResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Response" part="echoMeStructResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoHexBinary">
<soap:operation soapAction="http://soapinterop.org/"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Request" part="echoMeStringRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Request" part="echoMeStructRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Response" part="echoMeStringResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Response" part="echoMeStructResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoDecimal">
<soap:operation soapAction="http://soapinterop.org/"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Request" part="echoMeStringRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Request" part="echoMeStructRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Response" part="echoMeStringResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Response" part="echoMeStructResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="echoBoolean">
<soap:operation soapAction="http://soapinterop.org/"/>
<input>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Request" part="echoMeStringRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Request" part="echoMeStructRequest" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderString_Response" part="echoMeStringResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<soap:header use="encoded" message="tns:echoHeaderStruct_Response" part="echoMeStructResponse" namespace="http://soapinterop.org/echoheader/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="InteropGroupC">
<port binding="tns:InteropEchoHeaderBinding" name="InteropGroupCTest">
<soap:address location="http://localhost/axis/InteropGroupC"/>
</port>
</service>
</definitions>