You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ro...@apache.org on 2004/06/24 09:45:03 UTC

cvs commit: ws-axis/c/tests/client/soapHeader/test8/rpc Makefile.am TestClient.cpp

roshan      2004/06/24 00:45:03

  Added:       c/tests/client/soapHeader/gen_src/rpc InteropBase.wsdl
                        InteropTestPortType.cpp InteropTestPortType.h
                        SOAPStruct_Array.h SOAPStruct.cpp SOAPStruct.h
               c/tests/client/soapHeader Makefile.am
               c/tests/client/soapHeader/test1 Makefile.am
               c/tests/client/soapHeader/test1/rpc Makefile.am
                        TestClient.cpp
               c/tests/client/soapHeader/test2 Makefile.am
               c/tests/client/soapHeader/test2/rpc Makefile TestClient.cpp
               c/tests/client/soapHeader/test4 Makefile.am
               c/tests/client/soapHeader/test4/rpc Makefile.am
                        TestClient.cpp
               c/tests/client/soapHeader/test6 Makefile.am
               c/tests/client/soapHeader/test6/rpc Makefile.am
                        TestClient.cpp
               c/tests/client/soapHeader/test8 Makefile.am
               c/tests/client/soapHeader/test8/rpc Makefile.am
                        TestClient.cpp
  Log:
  Test cases for SoapHeaders
  
  Revision  Changes    Path
  1.1                  ws-axis/c/tests/client/soapHeader/gen_src/rpc/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/tests/client/soapHeader/gen_src/rpc/InteropTestPortType.cpp
  
  Index: InteropTestPortType.cpp
  ===================================================================
  /*
   * This file was auto-generated by the Axis C++ Web Service Generator (WSDL2Ws)
   * This file contains Client Stub implementation for remote web service.
   */
  
  #include "InteropTestPortType.h"
  
  #include <axis/server/AxisWrapperAPI.h>
  
  using namespace std;
  
   extern int Axis_DeSerialize_SOAPStruct(SOAPStruct* param, IWrapperSoapDeSerializer* pDZ);
  extern void* Axis_Create_SOAPStruct(SOAPStruct *Obj, 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(const char* pchEndpointUri, AXIS_PROTOCOL_TYPE eProtocol)
  :Stub(pchEndpointUri, eProtocol)
  {
  }
  
  InteropTestPortType::InteropTestPortType()
  :Stub(" ", APTHTTP)
  {
  	m_pCall->setEndpointURI("http://localhost/axis/InteropBase");
  }
  
  InteropTestPortType::~InteropTestPortType()
  {
  }
  
  
  /*Methods corresponding to the web service methods*/
  
  /*
   * This method wrap the service method echoString
   */
  xsd__string InteropTestPortType::echoString(xsd__string Value0)
  {
  	xsd__string Ret;
  	char* cFaultcode;
  	char* cFaultstring;
  	char* cFaultactor;
  	char* cFaultdetail;
  	try
  	{
  		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  			return Ret;
  		m_pCall->setTransportProperty(SOAPACTION_HEADER , "InteropBase#echoString");
  		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  		m_pCall->setOperation("echoString", "http://soapinterop.org/");
  		applyUserPreferences();
  		m_pCall->addParameter((void*)&Value0, "inputString", XSD_STRING);
  		if (AXIS_SUCCESS == m_pCall->invoke())
  		{
  			if(AXIS_SUCCESS == m_pCall->checkMessage("echoStringResponse", "http://soapinterop.org/"))
  			{
  				Ret = m_pCall->getElementAsString("return", 0);
  			}
  		}
  		m_pCall->unInitialize();
  		return Ret;
  	}
  	catch(AxisException& e)
  	{
  		int iExceptionCode = e.getExceptionCode();
  		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  		{
  			throw;
  		}
  		else if (AXIS_SUCCESS == m_pCall->checkFault("Fault","http://localhost/axis/InteropBase" ))//Exception handling code goes here
  		{
  			cFaultcode = m_pCall->getElementAsString("faultcode", 0);
  			cFaultstring = m_pCall->getElementAsString("faultstring", 0);
  			cFaultactor = m_pCall->getElementAsString("faultactor", 0);
  				  cFaultdetail = m_pCall->getElementAsString("faultdetail", 0);
  				  throw AxisException(cFaultdetail);
  		}
  		else throw;
  	}
  }
  
  
  /*
   * This method wrap the service method echoStringArray
   */
  xsd__string_Array InteropTestPortType::echoStringArray(xsd__string_Array Value0)
  {
  	xsd__string_Array RetArray = {NULL, 0};
  	char* cFaultcode;
  	char* cFaultstring;
  	char* cFaultactor;
  	char* cFaultdetail;
  	try
  	{
  		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  			return RetArray;
  		m_pCall->setTransportProperty(SOAPACTION_HEADER , "InteropBase#echoStringArray");
  		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  		m_pCall->setOperation("echoStringArray", "http://soapinterop.org/");
  		applyUserPreferences();
  	m_pCall->addBasicArrayParameter((Axis_Array*)(&Value0), XSD_STRING, "inputStringArray");
  		if (AXIS_SUCCESS == m_pCall->invoke())
  		{
  			if(AXIS_SUCCESS == m_pCall->checkMessage("echoStringArrayResponse", "http://soapinterop.org/"))
  			{
  				RetArray = (xsd__string_Array&)m_pCall->getBasicArray(XSD_STRING, "return", 0);
  			}
  		}
  		m_pCall->unInitialize();
  		return RetArray;
  	}
  	catch(AxisException& e)
  	{
  		int iExceptionCode = e.getExceptionCode();
  		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  		{
  			throw;
  		}
  		else if (AXIS_SUCCESS == m_pCall->checkFault("Fault","http://localhost/axis/InteropBase" ))//Exception handling code goes here
  		{
  			cFaultcode = m_pCall->getElementAsString("faultcode", 0);
  			cFaultstring = m_pCall->getElementAsString("faultstring", 0);
  			cFaultactor = m_pCall->getElementAsString("faultactor", 0);
  				  cFaultdetail = m_pCall->getElementAsString("faultdetail", 0);
  				  throw AxisException(cFaultdetail);
  		}
  		else throw;
  	}
  }
  
  
  /*
   * This method wrap the service method echoInteger
   */
  int InteropTestPortType::echoInteger(int Value0)
  {
  	int Ret;
  	char* cFaultcode;
  	char* cFaultstring;
  	char* cFaultactor;
  	char* cFaultdetail;
  	try
  	{
  		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  			return Ret;
  		m_pCall->setTransportProperty(SOAPACTION_HEADER , "InteropBase#echoInteger");
  		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  		m_pCall->setOperation("echoInteger", "http://soapinterop.org/");
  		applyUserPreferences();
  		m_pCall->addParameter((void*)&Value0, "inputInteger", XSD_INT);
  		if (AXIS_SUCCESS == m_pCall->invoke())
  		{
  			if(AXIS_SUCCESS == m_pCall->checkMessage("echoIntegerResponse", "http://soapinterop.org/"))
  			{
  				Ret = m_pCall->getElementAsInt("return", 0);
  			}
  		}
  		m_pCall->unInitialize();
  		return Ret;
  	}
  	catch(AxisException& e)
  	{
  		int iExceptionCode = e.getExceptionCode();
  		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  		{
  			throw;
  		}
  		else if (AXIS_SUCCESS == m_pCall->checkFault("Fault","http://localhost/axis/InteropBase" ))//Exception handling code goes here
  		{
  			cFaultcode = m_pCall->getElementAsString("faultcode", 0);
  			cFaultstring = m_pCall->getElementAsString("faultstring", 0);
  			cFaultactor = m_pCall->getElementAsString("faultactor", 0);
  				  cFaultdetail = m_pCall->getElementAsString("faultdetail", 0);
  				  throw AxisException(cFaultdetail);
  		}
  		else throw;
  	}
  }
  
  
  /*
   * This method wrap the service method echoIntegerArray
   */
  xsd__int_Array InteropTestPortType::echoIntegerArray(xsd__int_Array Value0)
  {
  	xsd__int_Array RetArray = {NULL, 0};
  	char* cFaultcode;
  	char* cFaultstring;
  	char* cFaultactor;
  	char* cFaultdetail;
  	try
  	{
  		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  			return RetArray;
  		m_pCall->setTransportProperty(SOAPACTION_HEADER , "InteropBase#echoIntegerArray");
  		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  		m_pCall->setOperation("echoIntegerArray", "http://soapinterop.org/");
  		applyUserPreferences();
  	m_pCall->addBasicArrayParameter((Axis_Array*)(&Value0), XSD_INT, "inputIntegerArray");
  		if (AXIS_SUCCESS == m_pCall->invoke())
  		{
  			if(AXIS_SUCCESS == m_pCall->checkMessage("echoIntegerArrayResponse", "http://soapinterop.org/"))
  			{
  				RetArray = (xsd__int_Array&)m_pCall->getBasicArray(XSD_INT, "return", 0);
  			}
  		}
  		m_pCall->unInitialize();
  		return RetArray;
  	}
  	catch(AxisException& e)
  	{
  		int iExceptionCode = e.getExceptionCode();
  		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  		{
  			throw;
  		}
  		else if (AXIS_SUCCESS == m_pCall->checkFault("Fault","http://localhost/axis/InteropBase" ))//Exception handling code goes here
  		{
  			cFaultcode = m_pCall->getElementAsString("faultcode", 0);
  			cFaultstring = m_pCall->getElementAsString("faultstring", 0);
  			cFaultactor = m_pCall->getElementAsString("faultactor", 0);
  				  cFaultdetail = m_pCall->getElementAsString("faultdetail", 0);
  				  throw AxisException(cFaultdetail);
  		}
  		else throw;
  	}
  }
  
  
  /*
   * This method wrap the service method echoFloat
   */
  float InteropTestPortType::echoFloat(float Value0)
  {
  	float Ret;
  	char* cFaultcode;
  	char* cFaultstring;
  	char* cFaultactor;
  	char* cFaultdetail;
  	try
  	{
  		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  			return Ret;
  		m_pCall->setTransportProperty(SOAPACTION_HEADER , "InteropBase#echoFloat");
  		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  		m_pCall->setOperation("echoFloat", "http://soapinterop.org/");
  		applyUserPreferences();
  		m_pCall->addParameter((void*)&Value0, "inputFloat", XSD_FLOAT);
  		if (AXIS_SUCCESS == m_pCall->invoke())
  		{
  			if(AXIS_SUCCESS == m_pCall->checkMessage("echoFloatResponse", "http://soapinterop.org/"))
  			{
  				Ret = m_pCall->getElementAsFloat("return", 0);
  			}
  		}
  		m_pCall->unInitialize();
  		return Ret;
  	}
  	catch(AxisException& e)
  	{
  		int iExceptionCode = e.getExceptionCode();
  		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  		{
  			throw;
  		}
  		else if (AXIS_SUCCESS == m_pCall->checkFault("Fault","http://localhost/axis/InteropBase" ))//Exception handling code goes here
  		{
  			cFaultcode = m_pCall->getElementAsString("faultcode", 0);
  			cFaultstring = m_pCall->getElementAsString("faultstring", 0);
  			cFaultactor = m_pCall->getElementAsString("faultactor", 0);
  				  cFaultdetail = m_pCall->getElementAsString("faultdetail", 0);
  				  throw AxisException(cFaultdetail);
  		}
  		else throw;
  	}
  }
  
  
  /*
   * This method wrap the service method echoFloatArray
   */
  xsd__float_Array InteropTestPortType::echoFloatArray(xsd__float_Array Value0)
  {
  	xsd__float_Array RetArray = {NULL, 0};
  	char* cFaultcode;
  	char* cFaultstring;
  	char* cFaultactor;
  	char* cFaultdetail;
  	try
  	{
  		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  			return RetArray;
  		m_pCall->setTransportProperty(SOAPACTION_HEADER , "InteropBase#echoFloatArray");
  		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  		m_pCall->setOperation("echoFloatArray", "http://soapinterop.org/");
  		applyUserPreferences();
  	m_pCall->addBasicArrayParameter((Axis_Array*)(&Value0), XSD_FLOAT, "inputFloatArray");
  		if (AXIS_SUCCESS == m_pCall->invoke())
  		{
  			if(AXIS_SUCCESS == m_pCall->checkMessage("echoFloatArrayResponse", "http://soapinterop.org/"))
  			{
  				RetArray = (xsd__float_Array&)m_pCall->getBasicArray(XSD_FLOAT, "return", 0);
  			}
  		}
  		m_pCall->unInitialize();
  		return RetArray;
  	}
  	catch(AxisException& e)
  	{
  		int iExceptionCode = e.getExceptionCode();
  		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  		{
  			throw;
  		}
  		else if (AXIS_SUCCESS == m_pCall->checkFault("Fault","http://localhost/axis/InteropBase" ))//Exception handling code goes here
  		{
  			cFaultcode = m_pCall->getElementAsString("faultcode", 0);
  			cFaultstring = m_pCall->getElementAsString("faultstring", 0);
  			cFaultactor = m_pCall->getElementAsString("faultactor", 0);
  				  cFaultdetail = m_pCall->getElementAsString("faultdetail", 0);
  				  throw AxisException(cFaultdetail);
  		}
  		else throw;
  	}
  }
  
  
  /*
   * This method wrap the service method echoStruct
   */
  SOAPStruct* InteropTestPortType::echoStruct(SOAPStruct* Value0)
  {
  	SOAPStruct* pReturn = NULL;
  	char* cFaultcode;
  	char* cFaultstring;
  	char* cFaultactor;
  	char* cFaultdetail;
  	try
  	{
  		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  			return pReturn;
  		m_pCall->setTransportProperty(SOAPACTION_HEADER , "InteropBase#echoStruct");
  		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  		m_pCall->setOperation("echoStruct", "http://soapinterop.org/");
  		applyUserPreferences();
  	m_pCall->addCmplxParameter(Value0, (void*)Axis_Serialize_SOAPStruct, (void*)Axis_Delete_SOAPStruct, "inputStruct", Axis_URI_SOAPStruct);
  		if (AXIS_SUCCESS == m_pCall->invoke())
  		{
  			if(AXIS_SUCCESS == m_pCall->checkMessage("echoStructResponse", "http://soapinterop.org/"))
  			{
  				pReturn = (SOAPStruct*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_SOAPStruct, (void*) Axis_Create_SOAPStruct, (void*) Axis_Delete_SOAPStruct,"return", 0);
  		}
  		}
  		m_pCall->unInitialize();
  		return pReturn;
  	}
  	catch(AxisException& e)
  	{
  		int iExceptionCode = e.getExceptionCode();
  		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  		{
  			throw;
  		}
  		else if (AXIS_SUCCESS == m_pCall->checkFault("Fault","http://localhost/axis/InteropBase" ))//Exception handling code goes here
  		{
  			cFaultcode = m_pCall->getElementAsString("faultcode", 0);
  			cFaultstring = m_pCall->getElementAsString("faultstring", 0);
  			cFaultactor = m_pCall->getElementAsString("faultactor", 0);
  				  cFaultdetail = m_pCall->getElementAsString("faultdetail", 0);
  				  throw AxisException(cFaultdetail);
  		}
  		else throw;
  	}
  }
  
  
  /*
   * This method wrap the service method echoStructArray
   */
  SOAPStruct_Array InteropTestPortType::echoStructArray(SOAPStruct_Array Value0)
  {
  	SOAPStruct_Array RetArray = {NULL, 0};
  	char* cFaultcode;
  	char* cFaultstring;
  	char* cFaultactor;
  	char* cFaultdetail;
  	try
  	{
  		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  			return RetArray;
  		m_pCall->setTransportProperty(SOAPACTION_HEADER , "InteropBase#echoStructArray");
  		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  		m_pCall->setOperation("echoStructArray", "http://soapinterop.org/");
  		applyUserPreferences();
  	m_pCall->addCmplxArrayParameter((Axis_Array*)(&Value0), (void*)Axis_Serialize_SOAPStruct, (void*)Axis_Delete_SOAPStruct, (void*) Axis_GetSize_SOAPStruct, "inputStructArray", Axis_URI_SOAPStruct);
  		if (AXIS_SUCCESS == m_pCall->invoke())
  		{
  			if(AXIS_SUCCESS == m_pCall->checkMessage("echoStructArrayResponse", "http://soapinterop.org/"))
  			{
  				RetArray = (SOAPStruct_Array&)m_pCall->getCmplxArray((void*) Axis_DeSerialize_SOAPStruct, (void*) Axis_Create_SOAPStruct, (void*) Axis_Delete_SOAPStruct, (void*) Axis_GetSize_SOAPStruct, "return", Axis_URI_SOAPStruct);
  			}
  		}
  		m_pCall->unInitialize();
  		return RetArray;
  	}
  	catch(AxisException& e)
  	{
  		int iExceptionCode = e.getExceptionCode();
  		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  		{
  			throw;
  		}
  		else if (AXIS_SUCCESS == m_pCall->checkFault("Fault","http://localhost/axis/InteropBase" ))//Exception handling code goes here
  		{
  			cFaultcode = m_pCall->getElementAsString("faultcode", 0);
  			cFaultstring = m_pCall->getElementAsString("faultstring", 0);
  			cFaultactor = m_pCall->getElementAsString("faultactor", 0);
  				  cFaultdetail = m_pCall->getElementAsString("faultdetail", 0);
  				  throw AxisException(cFaultdetail);
  		}
  		else throw;
  	}
  }
  
  
  /*
   * This method wrap the service method echoVoid
   */
  void InteropTestPortType::echoVoid()
  {
  	char* cFaultcode;
  	char* cFaultstring;
  	char* cFaultactor;
  	char* cFaultdetail;
  	try
  	{
  		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  			return ;
  		m_pCall->setTransportProperty(SOAPACTION_HEADER , "InteropBase#echoVoid");
  		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  		m_pCall->setOperation("echoVoid", "http://soapinterop.org/");
  		applyUserPreferences();
  		if (AXIS_SUCCESS == m_pCall->invoke())
  		{
  			if(AXIS_SUCCESS == m_pCall->checkMessage("echoVoidResponse", "http://soapinterop.org/"))
  			{
  			/*not successful*/
  		}
  		}
  		m_pCall->unInitialize();
  	}
  	catch(AxisException& e)
  	{
  		int iExceptionCode = e.getExceptionCode();
  		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  		{
  			throw;
  		}
  		else if (AXIS_SUCCESS == m_pCall->checkFault("Fault","http://localhost/axis/InteropBase" ))//Exception handling code goes here
  		{
  			cFaultcode = m_pCall->getElementAsString("faultcode", 0);
  			cFaultstring = m_pCall->getElementAsString("faultstring", 0);
  			cFaultactor = m_pCall->getElementAsString("faultactor", 0);
  				  cFaultdetail = m_pCall->getElementAsString("faultdetail", 0);
  				  throw AxisException(cFaultdetail);
  		}
  		else throw;
  	}
  }
  
  
  /*
   * This method wrap the service method echoBase64
   */
  xsd__base64Binary InteropTestPortType::echoBase64(xsd__base64Binary Value0)
  {
  	xsd__base64Binary Ret;
  	char* cFaultcode;
  	char* cFaultstring;
  	char* cFaultactor;
  	char* cFaultdetail;
  	try
  	{
  		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  			return Ret;
  		m_pCall->setTransportProperty(SOAPACTION_HEADER , "InteropBase#echoBase64");
  		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  		m_pCall->setOperation("echoBase64", "http://soapinterop.org/");
  		applyUserPreferences();
  		m_pCall->addParameter((void*)&Value0, "inputBase64", XSD_BASE64BINARY);
  		if (AXIS_SUCCESS == m_pCall->invoke())
  		{
  			if(AXIS_SUCCESS == m_pCall->checkMessage("echoBase64Response", "http://soapinterop.org/"))
  			{
  				Ret = m_pCall->getElementAsBase64Binary("return", 0);
  			}
  		}
  		m_pCall->unInitialize();
  		return Ret;
  	}
  	catch(AxisException& e)
  	{
  		int iExceptionCode = e.getExceptionCode();
  		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  		{
  			throw;
  		}
  		else if (AXIS_SUCCESS == m_pCall->checkFault("Fault","http://localhost/axis/InteropBase" ))//Exception handling code goes here
  		{
  			cFaultcode = m_pCall->getElementAsString("faultcode", 0);
  			cFaultstring = m_pCall->getElementAsString("faultstring", 0);
  			cFaultactor = m_pCall->getElementAsString("faultactor", 0);
  				  cFaultdetail = m_pCall->getElementAsString("faultdetail", 0);
  				  throw AxisException(cFaultdetail);
  		}
  		else throw;
  	}
  }
  
  
  /*
   * This method wrap the service method echoDate
   */
  xsd__dateTime InteropTestPortType::echoDate(xsd__dateTime Value0)
  {
  	xsd__dateTime Ret;
  	char* cFaultcode;
  	char* cFaultstring;
  	char* cFaultactor;
  	char* cFaultdetail;
  	try
  	{
  		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  			return Ret;
  		m_pCall->setTransportProperty(SOAPACTION_HEADER , "InteropBase#echoDate");
  		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  		m_pCall->setOperation("echoDate", "http://soapinterop.org/");
  		applyUserPreferences();
  		m_pCall->addParameter((void*)&Value0, "inputDate", XSD_DATETIME);
  		if (AXIS_SUCCESS == m_pCall->invoke())
  		{
  			if(AXIS_SUCCESS == m_pCall->checkMessage("echoDateResponse", "http://soapinterop.org/"))
  			{
  				Ret = m_pCall->getElementAsDateTime("return", 0);
  			}
  		}
  		m_pCall->unInitialize();
  		return Ret;
  	}
  	catch(AxisException& e)
  	{
  		int iExceptionCode = e.getExceptionCode();
  		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  		{
  			throw;
  		}
  		else if (AXIS_SUCCESS == m_pCall->checkFault("Fault","http://localhost/axis/InteropBase" ))//Exception handling code goes here
  		{
  			cFaultcode = m_pCall->getElementAsString("faultcode", 0);
  			cFaultstring = m_pCall->getElementAsString("faultstring", 0);
  			cFaultactor = m_pCall->getElementAsString("faultactor", 0);
  				  cFaultdetail = m_pCall->getElementAsString("faultdetail", 0);
  				  throw AxisException(cFaultdetail);
  		}
  		else throw;
  	}
  }
  
  
  /*
   * This method wrap the service method echoHexBinary
   */
  xsd__hexBinary InteropTestPortType::echoHexBinary(xsd__hexBinary Value0)
  {
  	xsd__hexBinary Ret;
  	char* cFaultcode;
  	char* cFaultstring;
  	char* cFaultactor;
  	char* cFaultdetail;
  	try
  	{
  		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  			return Ret;
  		m_pCall->setTransportProperty(SOAPACTION_HEADER , "InteropBase#echoHexBinary");
  		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  		m_pCall->setOperation("echoHexBinary", "http://soapinterop.org/");
  		applyUserPreferences();
  		m_pCall->addParameter((void*)&Value0, "inputHexBinary", XSD_HEXBINARY);
  		if (AXIS_SUCCESS == m_pCall->invoke())
  		{
  			if(AXIS_SUCCESS == m_pCall->checkMessage("echoHexBinaryResponse", "http://soapinterop.org/"))
  			{
  				Ret = m_pCall->getElementAsHexBinary("return", 0);
  			}
  		}
  		m_pCall->unInitialize();
  		return Ret;
  	}
  	catch(AxisException& e)
  	{
  		int iExceptionCode = e.getExceptionCode();
  		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  		{
  			throw;
  		}
  		else if (AXIS_SUCCESS == m_pCall->checkFault("Fault","http://localhost/axis/InteropBase" ))//Exception handling code goes here
  		{
  			cFaultcode = m_pCall->getElementAsString("faultcode", 0);
  			cFaultstring = m_pCall->getElementAsString("faultstring", 0);
  			cFaultactor = m_pCall->getElementAsString("faultactor", 0);
  				  cFaultdetail = m_pCall->getElementAsString("faultdetail", 0);
  				  throw AxisException(cFaultdetail);
  		}
  		else throw;
  	}
  }
  
  
  /*
   * This method wrap the service method echoDecimal
   */
  xsd__decimal InteropTestPortType::echoDecimal(xsd__decimal Value0)
  {
  	xsd__decimal Ret;
  	char* cFaultcode;
  	char* cFaultstring;
  	char* cFaultactor;
  	char* cFaultdetail;
  	try
  	{
  		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  			return Ret;
  		m_pCall->setTransportProperty(SOAPACTION_HEADER , "InteropBase#echoDecimal");
  		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  		m_pCall->setOperation("echoDecimal", "http://soapinterop.org/");
  		applyUserPreferences();
  		m_pCall->addParameter((void*)&Value0, "inputDecimal", XSD_DECIMAL);
  		if (AXIS_SUCCESS == m_pCall->invoke())
  		{
  			if(AXIS_SUCCESS == m_pCall->checkMessage("echoDecimalResponse", "http://soapinterop.org/"))
  			{
  				Ret = m_pCall->getElementAsDecimal("return", 0);
  			}
  		}
  		m_pCall->unInitialize();
  		return Ret;
  	}
  	catch(AxisException& e)
  	{
  		int iExceptionCode = e.getExceptionCode();
  		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  		{
  			throw;
  		}
  		else if (AXIS_SUCCESS == m_pCall->checkFault("Fault","http://localhost/axis/InteropBase" ))//Exception handling code goes here
  		{
  			cFaultcode = m_pCall->getElementAsString("faultcode", 0);
  			cFaultstring = m_pCall->getElementAsString("faultstring", 0);
  			cFaultactor = m_pCall->getElementAsString("faultactor", 0);
  				  cFaultdetail = m_pCall->getElementAsString("faultdetail", 0);
  				  throw AxisException(cFaultdetail);
  		}
  		else throw;
  	}
  }
  
  
  /*
   * This method wrap the service method echoBoolean
   */
  xsd__boolean InteropTestPortType::echoBoolean(xsd__boolean Value0)
  {
  	xsd__boolean Ret;
  	char* cFaultcode;
  	char* cFaultstring;
  	char* cFaultactor;
  	char* cFaultdetail;
  	try
  	{
  		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  			return Ret;
  		m_pCall->setTransportProperty(SOAPACTION_HEADER , "InteropBase#echoBoolean");
  		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  		m_pCall->setOperation("echoBoolean", "http://soapinterop.org/");
  		applyUserPreferences();
  		m_pCall->addParameter((void*)&Value0, "inputBoolean", XSD_BOOLEAN);
  		if (AXIS_SUCCESS == m_pCall->invoke())
  		{
  			if(AXIS_SUCCESS == m_pCall->checkMessage("echoBooleanResponse", "http://soapinterop.org/"))
  			{
  				Ret = m_pCall->getElementAsBoolean("return", 0);
  			}
  		}
  		m_pCall->unInitialize();
  		return Ret;
  	}
  	catch(AxisException& e)
  	{
  		int iExceptionCode = e.getExceptionCode();
  		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  		{
  			throw;
  		}
  		else if (AXIS_SUCCESS == m_pCall->checkFault("Fault","http://localhost/axis/InteropBase" ))//Exception handling code goes here
  		{
  			cFaultcode = m_pCall->getElementAsString("faultcode", 0);
  			cFaultstring = m_pCall->getElementAsString("faultstring", 0);
  			cFaultactor = m_pCall->getElementAsString("faultactor", 0);
  				  cFaultdetail = m_pCall->getElementAsString("faultdetail", 0);
  				  throw AxisException(cFaultdetail);
  		}
  		else throw;
  	}
  }
  
  int InteropTestPortType::getFaultDetail(char** ppcDetail)
  {
  	return m_pCall->getFaultDetail(ppcDetail);
  }
  
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/gen_src/rpc/InteropTestPortType.h
  
  Index: InteropTestPortType.h
  ===================================================================
  /*
   * This file was auto-generated by the Axis C++ Web Service Generator (WSDL2Ws)
   * This file contains Client Stub Class for remote web service 
   */
  
  #if !defined(__INTEROPTESTPORTTYPE_CLIENTSTUB_H__INCLUDED_)
  #define __INTEROPTESTPORTTYPE_CLIENTSTUB_H__INCLUDED_
  
  #include <axis/client/Stub.h>
  /*include Exception header files here*/
  #include "SOAPStruct_Array.h"
  #include "SOAPStruct.h"
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  class InteropTestPortType :public Stub
  {
  public:
  	InteropTestPortType(const char* pchEndpointUri, AXIS_PROTOCOL_TYPE eProtocol=APTHTTP);
  	InteropTestPortType();
  public:
  	virtual ~InteropTestPortType();
  public: 
  	xsd__string echoString(xsd__string Value0);
  	xsd__string_Array echoStringArray(xsd__string_Array Value0);
  	int echoInteger(int Value0);
  	xsd__int_Array echoIntegerArray(xsd__int_Array Value0);
  	float echoFloat(float Value0);
  	xsd__float_Array echoFloatArray(xsd__float_Array Value0);
  	SOAPStruct* echoStruct(SOAPStruct* Value0);
  	SOAPStruct_Array echoStructArray(SOAPStruct_Array Value0);
  	void echoVoid();
  	xsd__base64Binary echoBase64(xsd__base64Binary Value0);
  	xsd__dateTime echoDate(xsd__dateTime Value0);
  	xsd__hexBinary echoHexBinary(xsd__hexBinary Value0);
  	xsd__decimal echoDecimal(xsd__decimal Value0);
  	xsd__boolean echoBoolean(xsd__boolean Value0);
  	int getFaultDetail(char** ppcDetail);
  };
  
  #endif /* !defined(__INTEROPTESTPORTTYPE_CLIENTSTUB_H__INCLUDED_)*/
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/gen_src/rpc/SOAPStruct_Array.h
  
  Index: SOAPStruct_Array.h
  ===================================================================
  /*
   * This file was auto-generated by the Axis C++ Web Service Generator (WSDL2Ws)
   * This file contains functions to manipulate complex type SOAPStruct_Array
   */
  
  #if !defined(__SOAPSTRUCT_ARRAY_ARRAY_H__INCLUDED_)
  #define __SOAPSTRUCT_ARRAY_ARRAY_H__INCLUDED_
  
  class SOAPStruct;
  
  typedef struct SOAPStruct_ArrayTag
  {
  	SOAPStruct* m_Array;
  	int m_Size;
  } SOAPStruct_Array;
  
  #endif /* !defined(__SOAPSTRUCT_ARRAY_ARRAY_H__INCLUDED_)*/
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/gen_src/rpc/SOAPStruct.cpp
  
  Index: SOAPStruct.cpp
  ===================================================================
  /*
   * This file was auto-generated by the Axis C++ Web Service Generator (WSDL2Ws)
   * This file contains functions to manipulate complex type SOAPStruct
   */
  
  #include <malloc.h>
  #include "SOAPStruct.h"
  #include <axis/server/AxisWrapperAPI.h>
  
  /*
   * This static method serialize a SOAPStruct type of object
   */
  int Axis_Serialize_SOAPStruct(SOAPStruct* param, IWrapperSoapSerializer* pSZ, bool bArray = false)
  {
  	if (bArray)
  	{
  		pSZ->serialize("<", Axis_TypeName_SOAPStruct, ">", NULL);
  	}
  	else
  	{
  		const AxisChar* sPrefix = pSZ->getNamespacePrefix(Axis_URI_SOAPStruct);
  		pSZ->serialize("<", Axis_TypeName_SOAPStruct, " xsi:type=\"", sPrefix, ":",
  			Axis_TypeName_SOAPStruct, "\" xmlns:", sPrefix, "=\"",
  			Axis_URI_SOAPStruct, "\">", NULL);
  	}
  
  	pSZ->serializeAsElement("varString", (void*)&(param->varString), XSD_STRING);
  	pSZ->serializeAsElement("varInt", (void*)&(param->varInt), XSD_INT);
  	pSZ->serializeAsElement("varFloat", (void*)&(param->varFloat), XSD_FLOAT);
  
  	pSZ->serialize("</", Axis_TypeName_SOAPStruct, ">", NULL);
  	return AXIS_SUCCESS;
  }
  
  /*
   * This static method deserialize a SOAPStruct type of object
   */
  int Axis_DeSerialize_SOAPStruct(SOAPStruct* param, IWrapperSoapDeSerializer* pIWSDZ)
  {
  	param->varString = pIWSDZ->getElementAsString("varString",0);
  	param->varInt = pIWSDZ->getElementAsInt("varInt",0);
  	param->varFloat = pIWSDZ->getElementAsFloat("varFloat",0);
  	return pIWSDZ->getStatus();
  }
  void* Axis_Create_SOAPStruct(SOAPStruct* pObj, bool bArray = false, int nSize=0)
  {
  	if (bArray && (nSize > 0))
  	{
  		if (pObj)
  		{
  			SOAPStruct* pNew = new SOAPStruct[nSize];
  			memcpy(pNew, pObj, sizeof(SOAPStruct)*nSize/2);
  			memset(pObj, 0, sizeof(SOAPStruct)*nSize/2);
  			delete [] pObj;
  			return pNew;
  		}
  		else
  		{
  			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 param;
  	}
  }
  /*
   * This static method gives the size of SOAPStruct type of object
   */
  int Axis_GetSize_SOAPStruct()
  {
  	return sizeof(SOAPStruct);
  }
  
  SOAPStruct::SOAPStruct()
  {
  	/*do not allocate memory to any pointer members here
  	 because deserializer will allocate memory anyway. */
  }
  
  SOAPStruct::~SOAPStruct()
  {
  	/*delete any pointer and array members here*/
  }
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/gen_src/rpc/SOAPStruct.h
  
  Index: SOAPStruct.h
  ===================================================================
  /*
   * This file was auto-generated by the Axis C++ Web Service Generator (WSDL2Ws)
   * This file contains functions to manipulate complex type SOAPStruct
   */
  
  #if !defined(__SOAPSTRUCT_PARAM_H__INCLUDED_)
  #define __SOAPSTRUCT_PARAM_H__INCLUDED_
  
  #include <axis/server/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:
  	xsd__string varString;
  	int varInt;
  	float varFloat;
  	SOAPStruct();
  	virtual ~SOAPStruct();
  };
  
  #endif /* !defined(__SOAPSTRUCT_PARAM_H__INCLUDED_)*/
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/Makefile.am
  
  Index: Makefile.am
  ===================================================================
  SUBDIRS = test1 test2 test4 test6 test8
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test1/Makefile.am
  
  Index: Makefile.am
  ===================================================================
  SUBDIRS = rpc
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test1/rpc/Makefile.am
  
  Index: Makefile.am
  ===================================================================
  bin_PROGRAMS = soapHeaderTest1RPC
  SUBDIRS =
  AM_CPPFLAGS = $(CPPFLAGS)
  soapHeaderTest1RPC_SOURCES = TestClient.cpp  ../../gen_src/rpc/InteropTestPortType.cpp ../../gen_src/rpc/SOAPStruct.cpp 
  
  soapHeaderTest1RPC_LDADD   =  $(LDFLAGS) -laxiscpp_client
  INCLUDES = -I$(AXISCPP_HOME)/include
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test1/rpc/TestClient.cpp
  
  Index: TestClient.cpp
  ===================================================================
  /*
   *   Copyright 2003-2004 The Apache Software Foundation.
   *
   *   Licensed under the Apache License, Version 2.0 (the "License");
   *   you may not use this file except in compliance with the License.
   *   You may obtain a copy of the License at
   *
   *       http://www.apache.org/licenses/LICENSE-2.0
   *
   *   Unless required by applicable law or agreed to in writing, software
   *   distributed under the License is distributed on an "AS IS" BASIS,
   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *   See the License for the specific language governing permissions and
   *   limitations under the License.
   */
  
  /*
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * @author Roshan Weerasuriya (roshan@opensource.lk, roshan@jkcsworld.com)
   */
  
  #include <string>
  using namespace std;
  
  #include "../../gen_src/rpc/InteropTestPortType.h"
  
  #define ARRAYSIZE 2
  
  int
  main(int argc, char *argv[])
  {
      int x;
      char buffer1[100];
      char endpoint[256];
      const char *server = "localhost";
      const char *port = "80";
      if (argc == 3)
      {
  	server = argv[1];
  	port = argv[2];
      }
      printf("Usage :\n %s <server> <port>\n\n", argv[0]);
      //sprintf(endpoint, "http://%s:%s/axis/base", server, port);
      //endpoint for Axis CPP sample
      sprintf(endpoint, "http://%s:%s/axis/base", server, port);
      InteropTestPortType ws(endpoint, APTHTTP);
  
      /*create a header of the form:
         <SOAP-ENV:Header>
         <th:newName xmlns:th="http://ws.apache.org/axisCppTest/">
         <TestAuthHeader>
         <username>Test User</username>
         <password>Test Password</password>
         </TestAuthHeader>
         </th:newName>
         </SOAP-ENV:Header>
       */
  
      //set SOAP headers
      IHeaderBlock *phb = ws.createSOAPHeaderBlock("TestHeader", 
  		"http://ws.apache.org/axisCppTest/");
  
      //create parent node
      BasicNode *parentNode = phb->createChild(ELEMENT_NODE);
      parentNode->setLocalName("Credentials");
      //create child node     
      BasicNode *childNode = phb->createChild(ELEMENT_NODE);
      childNode->setLocalName("username");
      //create char node for value
      BasicNode *valueNode = phb->createChild(CHARACTER_NODE);
      valueNode->setValue("Test User");
      //buld node tree
      childNode->addChild(valueNode);
      parentNode->addChild(childNode);
  
      //add another node set
      childNode = phb->createChild(ELEMENT_NODE);
      childNode->setLocalName("password");
  
      valueNode = phb->createChild(CHARACTER_NODE);
      valueNode->setValue("Test Password");
  
      childNode->addChild(valueNode);
      parentNode->addChild(childNode);
  
      phb->addChild(parentNode);
  
      printf("Sending Requests to end point %s \n\n", endpoint);
      printf("invoking echoString...\n");
      //testing echoString 
      if (0 == strcmp(ws.echoString("hello world"), "hello world"))
  	printf("successful\n");
      else
  	printf("failed\n");
  
      //test removing SOAP header block using pointer
      IHeaderBlock *header = NULL;
      header = ws.getFirstSOAPHeaderBlock();
      ws.deleteSOAPHeaderBlock(header);
      //now the request should have no SOAP headers
  
      if (0 == strcmp(ws.echoString("hello world"), "hello world"))
          printf("successful\n");
      else
          printf("failed\n");
  
  
      printf("Soap Header test end\n");
      return 0;
  }
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test2/Makefile.am
  
  Index: Makefile.am
  ===================================================================
  SUBDIRS = rpc
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test2/rpc/Makefile
  
  Index: Makefile
  ===================================================================
  # Makefile.in generated by automake 1.6.3 from Makefile.am.
  # client/soapHeader/test2/rpc/Makefile.  Generated from Makefile.in by configure.
  
  # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
  # Free Software Foundation, Inc.
  # This Makefile.in is free software; the Free Software Foundation
  # gives unlimited permission to copy and/or distribute it,
  # with or without modifications, as long as this notice is preserved.
  
  # This program is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
  # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  # PARTICULAR PURPOSE.
  
  
  SHELL = /bin/sh
  
  srcdir = .
  top_srcdir = ../../../..
  
  prefix = /usr/local
  exec_prefix = ${prefix}
  
  bindir = /home/roshan/projects/apache/ws-axis/c/tests/client/
  sbindir = ${exec_prefix}/sbin
  libexecdir = ${exec_prefix}/libexec
  datadir = ${prefix}/share
  sysconfdir = ${prefix}/etc
  sharedstatedir = ${prefix}/com
  localstatedir = ${prefix}/var
  libdir = ${exec_prefix}/lib
  infodir = ${prefix}/info
  mandir = ${prefix}/man
  includedir = ${prefix}/include
  oldincludedir = /usr/include
  pkgdatadir = $(datadir)/full-package-name
  pkglibdir = $(libdir)/full-package-name
  pkgincludedir = $(includedir)/full-package-name
  top_builddir = ../../../..
  
  ACLOCAL = ${SHELL} /home/roshan/projects/apache/ws-axis/c/missing --run aclocal-1.6
  AUTOCONF = ${SHELL} /home/roshan/projects/apache/ws-axis/c/missing --run autoconf
  AUTOMAKE = ${SHELL} /home/roshan/projects/apache/ws-axis/c/missing --run automake-1.6
  AUTOHEADER = ${SHELL} /home/roshan/projects/apache/ws-axis/c/missing --run autoheader
  
  am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
  INSTALL = /usr/bin/install -c
  INSTALL_PROGRAM = ${INSTALL}
  INSTALL_DATA = ${INSTALL} -m 644
  install_sh_DATA = $(install_sh) -c -m 644
  install_sh_PROGRAM = $(install_sh) -c
  install_sh_SCRIPT = $(install_sh) -c
  INSTALL_SCRIPT = ${INSTALL}
  INSTALL_HEADER = $(INSTALL_DATA)
  transform = s,x,x,
  NORMAL_INSTALL = :
  PRE_INSTALL = :
  POST_INSTALL = :
  NORMAL_UNINSTALL = :
  PRE_UNINSTALL = :
  POST_UNINSTALL = :
  host_alias = 
  host_triplet = i686-pc-linux-gnu
  
  EXEEXT = 
  OBJEXT = o
  PATH_SEPARATOR = :
  AMTAR = ${SHELL} /home/roshan/projects/apache/ws-axis/c/missing --run tar
  AS = @AS@
  AWK = gawk
  CC = gcc
  CXX = g++
  DEPDIR = .deps
  DLLTOOL = @DLLTOOL@
  ECHO = echo
  INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
  LIBTOOL = $(SHELL) $(top_builddir)/libtool
  LN_S = ln -s
  OBJDUMP = @OBJDUMP@
  PACKAGE = full-package-name
  RANLIB = ranlib
  STRIP = strip
  VERSION = VERSION
  am__include = include
  am__quote = 
  install_sh = /home/roshan/projects/apache/ws-axis/c/install-sh
  bin_PROGRAMS = soapHeaderTest2RPC
  SUBDIRS = 
  AM_CPPFLAGS = $(CPPFLAGS)
  soapHeaderTest2RPC_SOURCES = TestClient.cpp  ../../gen_src/rpc/InteropTestPortType.cpp ../../gen_src/rpc/SOAPStruct.cpp 
  
  soapHeaderTest2RPC_LDADD = $(LDFLAGS) -laxiscpp_client
  INCLUDES = -I$(AXISCPP_HOME)/include
  subdir = client/soapHeader/test2/rpc
  mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
  CONFIG_HEADER = $(top_builddir)/config.h
  CONFIG_CLEAN_FILES =
  bin_PROGRAMS = soapHeaderTest2RPC$(EXEEXT)
  PROGRAMS = $(bin_PROGRAMS)
  
  am_soapHeaderTest2RPC_OBJECTS = TestClient.$(OBJEXT) \
  	InteropTestPortType.$(OBJEXT) SOAPStruct.$(OBJEXT)
  soapHeaderTest2RPC_OBJECTS = $(am_soapHeaderTest2RPC_OBJECTS)
  soapHeaderTest2RPC_DEPENDENCIES =
  soapHeaderTest2RPC_LDFLAGS =
  
  DEFS = -DHAVE_CONFIG_H
  DEFAULT_INCLUDES =  -I. -I$(srcdir) -I$(top_builddir)
  CPPFLAGS = -Wshadow -Wall -pedantic -ansi
  LDFLAGS = -s -L/home/roshan/projects/apache/ws-axis/c/bin -laxiscpp_client -ldl -lstdc++
  LIBS = 
  depcomp = $(SHELL) $(top_srcdir)/../depcomp
  am__depfiles_maybe = depfiles
  DEP_FILES = ./$(DEPDIR)/InteropTestPortType.Po \
  	./$(DEPDIR)/SOAPStruct.Po ./$(DEPDIR)/TestClient.Po
  CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
  	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
  LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \
  	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
  	$(AM_CXXFLAGS) $(CXXFLAGS)
  CXXLD = $(CXX)
  CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
  	$(AM_LDFLAGS) $(LDFLAGS) -o $@
  CXXFLAGS = -g -O2
  DIST_SOURCES = $(soapHeaderTest2RPC_SOURCES)
  
  RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
  	uninstall-info-recursive all-recursive install-data-recursive \
  	install-exec-recursive installdirs-recursive install-recursive \
  	uninstall-recursive check-recursive installcheck-recursive
  DIST_COMMON = Makefile.am Makefile.in
  DIST_SUBDIRS = $(SUBDIRS)
  SOURCES = $(soapHeaderTest2RPC_SOURCES)
  
  all: all-recursive
  
  .SUFFIXES:
  .SUFFIXES: .cpp .lo .o .obj
  $(srcdir)/Makefile.in:  Makefile.am  $(top_srcdir)/configure.ac $(ACLOCAL_M4)
  	cd $(top_srcdir) && \
  	  $(AUTOMAKE) --gnu  client/soapHeader/test2/rpc/Makefile
  Makefile:  $(srcdir)/Makefile.in  $(top_builddir)/config.status
  	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
  binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
  install-binPROGRAMS: $(bin_PROGRAMS)
  	@$(NORMAL_INSTALL)
  	$(mkinstalldirs) $(DESTDIR)$(bindir)
  	@list='$(bin_PROGRAMS)'; for p in $$list; do \
  	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
  	  if test -f $$p \
  	     || test -f $$p1 \
  	  ; then \
  	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
  	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
  	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f; \
  	  else :; fi; \
  	done
  
  uninstall-binPROGRAMS:
  	@$(NORMAL_UNINSTALL)
  	@list='$(bin_PROGRAMS)'; for p in $$list; do \
  	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
  	  echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
  	  rm -f $(DESTDIR)$(bindir)/$$f; \
  	done
  
  clean-binPROGRAMS:
  	@list='$(bin_PROGRAMS)'; for p in $$list; do \
  	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
  	  echo " rm -f $$p $$f"; \
  	  rm -f $$p $$f ; \
  	done
  InteropTestPortType.$(OBJEXT): ../../gen_src/rpc/InteropTestPortType.cpp
  SOAPStruct.$(OBJEXT): ../../gen_src/rpc/SOAPStruct.cpp
  soapHeaderTest2RPC$(EXEEXT): $(soapHeaderTest2RPC_OBJECTS) $(soapHeaderTest2RPC_DEPENDENCIES) 
  	@rm -f soapHeaderTest2RPC$(EXEEXT)
  	$(CXXLINK) $(soapHeaderTest2RPC_LDFLAGS) $(soapHeaderTest2RPC_OBJECTS) $(soapHeaderTest2RPC_LDADD) $(LIBS)
  
  mostlyclean-compile:
  	-rm -f *.$(OBJEXT) core *.core
  
  distclean-compile:
  	-rm -f *.tab.c
  
  include ./$(DEPDIR)/InteropTestPortType.Po
  include ./$(DEPDIR)/SOAPStruct.Po
  include ./$(DEPDIR)/TestClient.Po
  
  distclean-depend:
  	-rm -rf ./$(DEPDIR)
  
  .cpp.o:
  	source='$<' object='$@' libtool=no \
  	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \
  	$(CXXDEPMODE) $(depcomp) \
  	$(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
  
  .cpp.obj:
  	source='$<' object='$@' libtool=no \
  	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \
  	$(CXXDEPMODE) $(depcomp) \
  	$(CXXCOMPILE) -c -o $@ `cygpath -w $<`
  
  .cpp.lo:
  	source='$<' object='$@' libtool=yes \
  	depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' \
  	$(CXXDEPMODE) $(depcomp) \
  	$(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
  
  InteropTestPortType.o: ../../gen_src/rpc/InteropTestPortType.cpp
  	source='../../gen_src/rpc/InteropTestPortType.cpp' object='InteropTestPortType.o' libtool=no \
  	depfile='$(DEPDIR)/InteropTestPortType.Po' tmpdepfile='$(DEPDIR)/InteropTestPortType.TPo' \
  	$(CXXDEPMODE) $(depcomp) \
  	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InteropTestPortType.o `test -f '../../gen_src/rpc/InteropTestPortType.cpp' || echo '$(srcdir)/'`../../gen_src/rpc/InteropTestPortType.cpp
  
  InteropTestPortType.obj: ../../gen_src/rpc/InteropTestPortType.cpp
  	source='../../gen_src/rpc/InteropTestPortType.cpp' object='InteropTestPortType.obj' libtool=no \
  	depfile='$(DEPDIR)/InteropTestPortType.Po' tmpdepfile='$(DEPDIR)/InteropTestPortType.TPo' \
  	$(CXXDEPMODE) $(depcomp) \
  	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InteropTestPortType.obj `cygpath -w ../../gen_src/rpc/InteropTestPortType.cpp`
  
  InteropTestPortType.lo: ../../gen_src/rpc/InteropTestPortType.cpp
  	source='../../gen_src/rpc/InteropTestPortType.cpp' object='InteropTestPortType.lo' libtool=yes \
  	depfile='$(DEPDIR)/InteropTestPortType.Plo' tmpdepfile='$(DEPDIR)/InteropTestPortType.TPlo' \
  	$(CXXDEPMODE) $(depcomp) \
  	$(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InteropTestPortType.lo `test -f '../../gen_src/rpc/InteropTestPortType.cpp' || echo '$(srcdir)/'`../../gen_src/rpc/InteropTestPortType.cpp
  
  SOAPStruct.o: ../../gen_src/rpc/SOAPStruct.cpp
  	source='../../gen_src/rpc/SOAPStruct.cpp' object='SOAPStruct.o' libtool=no \
  	depfile='$(DEPDIR)/SOAPStruct.Po' tmpdepfile='$(DEPDIR)/SOAPStruct.TPo' \
  	$(CXXDEPMODE) $(depcomp) \
  	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SOAPStruct.o `test -f '../../gen_src/rpc/SOAPStruct.cpp' || echo '$(srcdir)/'`../../gen_src/rpc/SOAPStruct.cpp
  
  SOAPStruct.obj: ../../gen_src/rpc/SOAPStruct.cpp
  	source='../../gen_src/rpc/SOAPStruct.cpp' object='SOAPStruct.obj' libtool=no \
  	depfile='$(DEPDIR)/SOAPStruct.Po' tmpdepfile='$(DEPDIR)/SOAPStruct.TPo' \
  	$(CXXDEPMODE) $(depcomp) \
  	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SOAPStruct.obj `cygpath -w ../../gen_src/rpc/SOAPStruct.cpp`
  
  SOAPStruct.lo: ../../gen_src/rpc/SOAPStruct.cpp
  	source='../../gen_src/rpc/SOAPStruct.cpp' object='SOAPStruct.lo' libtool=yes \
  	depfile='$(DEPDIR)/SOAPStruct.Plo' tmpdepfile='$(DEPDIR)/SOAPStruct.TPlo' \
  	$(CXXDEPMODE) $(depcomp) \
  	$(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SOAPStruct.lo `test -f '../../gen_src/rpc/SOAPStruct.cpp' || echo '$(srcdir)/'`../../gen_src/rpc/SOAPStruct.cpp
  CXXDEPMODE = depmode=gcc3
  
  mostlyclean-libtool:
  	-rm -f *.lo
  
  clean-libtool:
  	-rm -rf .libs _libs
  
  distclean-libtool:
  	-rm -f libtool
  uninstall-info-am:
  
  # This directory's subdirectories are mostly independent; you can cd
  # into them and run `make' without going through this Makefile.
  # To change the values of `make' variables: instead of editing Makefiles,
  # (1) if the variable is set in `config.status', edit `config.status'
  #     (which will cause the Makefiles to be regenerated when you run `make');
  # (2) otherwise, pass the desired values on the `make' command line.
  $(RECURSIVE_TARGETS):
  	@set fnord $$MAKEFLAGS; amf=$$2; \
  	dot_seen=no; \
  	target=`echo $@ | sed s/-recursive//`; \
  	list='$(SUBDIRS)'; for subdir in $$list; do \
  	  echo "Making $$target in $$subdir"; \
  	  if test "$$subdir" = "."; then \
  	    dot_seen=yes; \
  	    local_target="$$target-am"; \
  	  else \
  	    local_target="$$target"; \
  	  fi; \
  	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
  	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
  	done; \
  	if test "$$dot_seen" = "no"; then \
  	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
  	fi; test -z "$$fail"
  
  mostlyclean-recursive clean-recursive distclean-recursive \
  maintainer-clean-recursive:
  	@set fnord $$MAKEFLAGS; amf=$$2; \
  	dot_seen=no; \
  	case "$@" in \
  	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
  	  *) list='$(SUBDIRS)' ;; \
  	esac; \
  	rev=''; for subdir in $$list; do \
  	  if test "$$subdir" = "."; then :; else \
  	    rev="$$subdir $$rev"; \
  	  fi; \
  	done; \
  	rev="$$rev ."; \
  	target=`echo $@ | sed s/-recursive//`; \
  	for subdir in $$rev; do \
  	  echo "Making $$target in $$subdir"; \
  	  if test "$$subdir" = "."; then \
  	    local_target="$$target-am"; \
  	  else \
  	    local_target="$$target"; \
  	  fi; \
  	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
  	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
  	done && test -z "$$fail"
  tags-recursive:
  	list='$(SUBDIRS)'; for subdir in $$list; do \
  	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
  	done
  
  ETAGS = etags
  ETAGSFLAGS =
  
  tags: TAGS
  
  ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
  	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
  	unique=`for i in $$list; do \
  	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
  	  done | \
  	  $(AWK) '    { files[$$0] = 1; } \
  	       END { for (i in files) print i; }'`; \
  	mkid -fID $$unique
  
  TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
  		$(TAGS_FILES) $(LISP)
  	tags=; \
  	here=`pwd`; \
  	list='$(SUBDIRS)'; for subdir in $$list; do \
  	  if test "$$subdir" = .; then :; else \
  	    test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
  	  fi; \
  	done; \
  	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
  	unique=`for i in $$list; do \
  	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
  	  done | \
  	  $(AWK) '    { files[$$0] = 1; } \
  	       END { for (i in files) print i; }'`; \
  	test -z "$(ETAGS_ARGS)$$tags$$unique" \
  	  || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
  	     $$tags $$unique
  
  GTAGS:
  	here=`$(am__cd) $(top_builddir) && pwd` \
  	  && cd $(top_srcdir) \
  	  && gtags -i $(GTAGS_ARGS) $$here
  
  distclean-tags:
  	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
  DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
  
  top_distdir = ../../../..
  distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
  
  distdir: $(DISTFILES)
  	@list='$(DISTFILES)'; for file in $$list; do \
  	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
  	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
  	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
  	    dir="/$$dir"; \
  	    $(mkinstalldirs) "$(distdir)$$dir"; \
  	  else \
  	    dir=''; \
  	  fi; \
  	  if test -d $$d/$$file; then \
  	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
  	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
  	    fi; \
  	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
  	  else \
  	    test -f $(distdir)/$$file \
  	    || cp -p $$d/$$file $(distdir)/$$file \
  	    || exit 1; \
  	  fi; \
  	done
  	list='$(SUBDIRS)'; for subdir in $$list; do \
  	  if test "$$subdir" = .; then :; else \
  	    test -d $(distdir)/$$subdir \
  	    || mkdir $(distdir)/$$subdir \
  	    || exit 1; \
  	    (cd $$subdir && \
  	      $(MAKE) $(AM_MAKEFLAGS) \
  	        top_distdir="$(top_distdir)" \
  	        distdir=../$(distdir)/$$subdir \
  	        distdir) \
  	      || exit 1; \
  	  fi; \
  	done
  check-am: all-am
  check: check-recursive
  all-am: Makefile $(PROGRAMS)
  installdirs: installdirs-recursive
  installdirs-am:
  	$(mkinstalldirs) $(DESTDIR)$(bindir)
  
  install: install-recursive
  install-exec: install-exec-recursive
  install-data: install-data-recursive
  uninstall: uninstall-recursive
  
  install-am: all-am
  	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
  
  installcheck: installcheck-recursive
  install-strip:
  	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
  	  INSTALL_STRIP_FLAG=-s \
  	  `test -z '$(STRIP)' || \
  	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
  mostlyclean-generic:
  
  clean-generic:
  
  distclean-generic:
  	-rm -f Makefile $(CONFIG_CLEAN_FILES)
  
  maintainer-clean-generic:
  	@echo "This command is intended for maintainers to use"
  	@echo "it deletes files that may require special tools to rebuild."
  clean: clean-recursive
  
  clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
  
  distclean: distclean-recursive
  
  distclean-am: clean-am distclean-compile distclean-depend \
  	distclean-generic distclean-libtool distclean-tags
  
  dvi: dvi-recursive
  
  dvi-am:
  
  info: info-recursive
  
  info-am:
  
  install-data-am:
  
  install-exec-am: install-binPROGRAMS
  
  install-info: install-info-recursive
  
  install-man:
  
  installcheck-am:
  
  maintainer-clean: maintainer-clean-recursive
  
  maintainer-clean-am: distclean-am maintainer-clean-generic
  
  mostlyclean: mostlyclean-recursive
  
  mostlyclean-am: mostlyclean-compile mostlyclean-generic \
  	mostlyclean-libtool
  
  uninstall-am: uninstall-binPROGRAMS uninstall-info-am
  
  uninstall-info: uninstall-info-recursive
  
  .PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
  	clean-binPROGRAMS clean-generic clean-libtool clean-recursive \
  	distclean distclean-compile distclean-depend distclean-generic \
  	distclean-libtool distclean-recursive distclean-tags distdir \
  	dvi dvi-am dvi-recursive info info-am info-recursive install \
  	install-am install-binPROGRAMS install-data install-data-am \
  	install-data-recursive install-exec install-exec-am \
  	install-exec-recursive install-info install-info-am \
  	install-info-recursive install-man install-recursive \
  	install-strip installcheck installcheck-am installdirs \
  	installdirs-am installdirs-recursive maintainer-clean \
  	maintainer-clean-generic maintainer-clean-recursive mostlyclean \
  	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
  	mostlyclean-recursive tags tags-recursive uninstall \
  	uninstall-am uninstall-binPROGRAMS uninstall-info-am \
  	uninstall-info-recursive uninstall-recursive
  
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
  # Otherwise a system limit (for SysV at least) may be exceeded.
  .NOEXPORT:
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test2/rpc/TestClient.cpp
  
  Index: TestClient.cpp
  ===================================================================
  /*
   *   Copyright 2003-2004 The Apache Software Foundation.
   *
   *   Licensed under the Apache License, Version 2.0 (the "License");
   *   you may not use this file except in compliance with the License.
   *   You may obtain a copy of the License at
   *
   *       http://www.apache.org/licenses/LICENSE-2.0
   *
   *   Unless required by applicable law or agreed to in writing, software
   *   distributed under the License is distributed on an "AS IS" BASIS,
   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *   See the License for the specific language governing permissions and
   *   limitations under the License.
   */
  
  /*
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * @author Roshan Weerasuriya (roshan@opensource.lk, roshan@jkcsworld.com)
   */
  
  #include <string>
  using namespace std;
  
  #include "../../gen_src/rpc/InteropTestPortType.h"
  
  #define ARRAYSIZE 2
  
  int
  main(int argc, char *argv[])
  {
      int x;
      char endpoint[256];
      const char *server = "localhost";
      const char *port = "80";
      if (argc == 3)
      {
  	server = argv[1];
  	port = argv[2];
      }
      printf("Usage :\n %s <server> <port>\n\n", argv[0]);
      //sprintf(endpoint, "http://%s:%s/axis/base", server, port);
      //endpoint for Axis CPP sample
      sprintf(endpoint, "http://%s:%s/axis/base", server, port);
      InteropTestPortType ws(endpoint, APTHTTP);
  
      /*create a header of the form:
         <SOAP-ENV:Header>
         <th:newName xmlns:th="http://ws.apache.org/axisCppTest/">
         <TestAuthHeader>
         <username>Test User</username>
         <password>Test Password</password>
         </TestAuthHeader>
         </th:newName>
         </SOAP-ENV:Header>
       */
  
      //set SOAP headers
      IHeaderBlock *phb = ws.createSOAPHeaderBlock("TestHeader", 
  		"http://ws.apache.org/axisCppTest/");
  
      //create parent node
      BasicNode *parentNode = phb->createChild(ELEMENT_NODE);
      parentNode->setLocalName("Credentials");
      //create child node     
      BasicNode *childNode = phb->createChild(ELEMENT_NODE);
      childNode->setLocalName("username");
      //create char node for value
      BasicNode *valueNode = phb->createChild(CHARACTER_NODE);
      valueNode->setValue("Test User");
      //buld node tree
      childNode->addChild(valueNode);
      parentNode->addChild(childNode);
  
      //add another node set
      childNode = phb->createChild(ELEMENT_NODE);
      childNode->setLocalName("password");
  
      valueNode = phb->createChild(CHARACTER_NODE);
      valueNode->setValue("Test Password");
  
      childNode->addChild(valueNode);
      parentNode->addChild(childNode);
  
      phb->addChild(parentNode);
  
      //set second SOAP headers
      phb = ws.createSOAPHeaderBlock("TestHeader2",
                                     "http://ws.apache.org/axisCppTest/");
                                                                                                                                                                              
      //create parent node
      parentNode = phb->createChild(ELEMENT_NODE);
      parentNode->setLocalName("Credentials2");
      childNode = phb->createChild(ELEMENT_NODE);
      childNode->setLocalName("username");
      valueNode = phb->createChild(CHARACTER_NODE);
      valueNode->setValue("Test User");
      childNode->addChild(valueNode);
      parentNode->addChild(childNode);
      //add another node set
      childNode = phb->createChild(ELEMENT_NODE);
      childNode->setLocalName("password");
      valueNode = phb->createChild(CHARACTER_NODE);
      valueNode->setValue("Test Password");
      childNode->addChild(valueNode);
      parentNode->addChild(childNode);
      phb->addChild(parentNode);
  
  
      printf("Sending Requests to end point %s \n\n", endpoint);
      printf("invoking echoString...\n");
      //testing echoString 
      if (0 == strcmp(ws.echoString("hello world"), "hello world"))
  	printf("successful\n");
      else
  	printf("failed\n");
  
      //test removing SOAP header block using pointer
      IHeaderBlock *header = NULL;
      header = ws.getFirstSOAPHeaderBlock();
      ws.deleteSOAPHeaderBlock(header);
      //now the request should have no SOAP headers
  
      if (0 == strcmp(ws.echoString("hello world"), "hello world"))
          printf("successful\n");
      else
          printf("failed\n");
  
  
      printf("Soap Header test end\n");
      return 0;
  }
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test4/Makefile.am
  
  Index: Makefile.am
  ===================================================================
  SUBDIRS = rpc
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test4/rpc/Makefile.am
  
  Index: Makefile.am
  ===================================================================
  bin_PROGRAMS = soapHeaderTest4RPC
  SUBDIRS =
  AM_CPPFLAGS = $(CPPFLAGS)
  soapHeaderTest4RPC_SOURCES = TestClient.cpp  ../../gen_src/rpc/InteropTestPortType.cpp ../../gen_src/rpc/SOAPStruct.cpp 
  
  soapHeaderTest4RPC_LDADD   =  $(LDFLAGS) -laxiscpp_client
  INCLUDES = -I$(AXISCPP_HOME)/include
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test4/rpc/TestClient.cpp
  
  Index: TestClient.cpp
  ===================================================================
  /*
   *   Copyright 2003-2004 The Apache Software Foundation.
   *
   *   Licensed under the Apache License, Version 2.0 (the "License");
   *   you may not use this file except in compliance with the License.
   *   You may obtain a copy of the License at
   *
   *       http://www.apache.org/licenses/LICENSE-2.0
   *
   *   Unless required by applicable law or agreed to in writing, software
   *   distributed under the License is distributed on an "AS IS" BASIS,
   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *   See the License for the specific language governing permissions and
   *   limitations under the License.
   */
  
  /*
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * @author Roshan Weerasuriya (roshan@opensource.lk, roshan@jkcsworld.com)
   */
  
  #include <string>
  using namespace std;
  
  #include "../../gen_src/rpc/InteropTestPortType.h"
  
  #define ARRAYSIZE 2
  
  int
  main(int argc, char *argv[])
  {
      int x;
      char endpoint[256];
      const char *server = "localhost";
      const char *port = "80";
      if (argc == 3)
      {
  	server = argv[1];
  	port = argv[2];
      }
      printf("Usage :\n %s <server> <port>\n\n", argv[0]);
      //sprintf(endpoint, "http://%s:%s/axis/base", server, port);
      //endpoint for Axis CPP sample
      sprintf(endpoint, "http://%s:%s/axis/base", server, port);
      InteropTestPortType ws(endpoint, APTHTTP);
  
      /*create a header of the form:
         <SOAP-ENV:Header>
         <th:newName xmlns:th="http://ws.apache.org/axisCppTest/">
         <TestAuthHeader>
         <username>Test User</username>
         <password>Test Password</password>
         </TestAuthHeader>
         </th:newName>
         </SOAP-ENV:Header>
       */
  
      //set SOAP headers
      IHeaderBlock *phb = ws.createSOAPHeaderBlock("TestHeader", 
  		"http://ws.apache.org/axisCppTest/");
  
      //create parent node
      BasicNode *parentNode = phb->createChild(ELEMENT_NODE);
      parentNode->setLocalName("Credentials");
      //create a element node
      BasicNode *pElementNode = phb->createChild(ELEMENT_NODE);
      pElementNode->setLocalName("ConfidentialStuff");
      //create child node     
      BasicNode *childNode = phb->createChild(ELEMENT_NODE);
      childNode->setLocalName("username");
      //create char node for value
      BasicNode *valueNode = phb->createChild(CHARACTER_NODE);
      valueNode->setValue("Test User");
      //buld node tree
      childNode->addChild(valueNode);
      pElementNode->addChild(childNode);
  
      //add another node set
      childNode = phb->createChild(ELEMENT_NODE);
      childNode->setLocalName("password");
  
      valueNode = phb->createChild(CHARACTER_NODE);
      valueNode->setValue("Test Password");
  
      childNode->addChild(valueNode);
      pElementNode->addChild(childNode);
      
      parentNode->addChild(pElementNode);
  
      phb->addChild(parentNode);
  
      //set second SOAP headers
      phb = ws.createSOAPHeaderBlock("TestHeader2",
                                     "http://ws.apache.org/axisCppTest/");
                                                                                                                                                                              
      //create parent node
      parentNode = phb->createChild(ELEMENT_NODE);
      parentNode->setLocalName("Credentials2");
      childNode = phb->createChild(ELEMENT_NODE);
      childNode->setLocalName("username");
      valueNode = phb->createChild(CHARACTER_NODE);
      valueNode->setValue("Test User");
      childNode->addChild(valueNode);
      parentNode->addChild(childNode);
      //add another node set
      childNode = phb->createChild(ELEMENT_NODE);
      childNode->setLocalName("password");
      valueNode = phb->createChild(CHARACTER_NODE);
      valueNode->setValue("Test Password");
      childNode->addChild(valueNode);
      parentNode->addChild(childNode);
      phb->addChild(parentNode);
  
  
      printf("Sending Requests to end point %s \n\n", endpoint);
      printf("invoking echoString...\n");
      //testing echoString 
      if (0 == strcmp(ws.echoString("hello world"), "hello world"))
  	printf("successful\n");
      else
  	printf("failed\n");
  
      //test removing SOAP header block using pointer
      IHeaderBlock *header = NULL;
      header = ws.getFirstSOAPHeaderBlock();
      ws.deleteSOAPHeaderBlock(header);
      //now the request should have no SOAP headers
  
      if (0 == strcmp(ws.echoString("hello world"), "hello world"))
          printf("successful\n");
      else
          printf("failed\n");
  
  
      printf("Soap Header test end\n");
      return 0;
  }
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test6/Makefile.am
  
  Index: Makefile.am
  ===================================================================
  SUBDIRS = rpc
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test6/rpc/Makefile.am
  
  Index: Makefile.am
  ===================================================================
  bin_PROGRAMS = soapHeaderTest6RPC
  SUBDIRS =
  AM_CPPFLAGS = $(CPPFLAGS)
  soapHeaderTest6RPC_SOURCES = TestClient.cpp  ../../gen_src/rpc/InteropTestPortType.cpp ../../gen_src/rpc/SOAPStruct.cpp 
  
  soapHeaderTest6RPC_LDADD   =  $(LDFLAGS) -laxiscpp_client
  INCLUDES = -I$(AXISCPP_HOME)/include
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test6/rpc/TestClient.cpp
  
  Index: TestClient.cpp
  ===================================================================
  /*
   *   Copyright 2003-2004 The Apache Software Foundation.
   *
   *   Licensed under the Apache License, Version 2.0 (the "License");
   *   you may not use this file except in compliance with the License.
   *   You may obtain a copy of the License at
   *
   *       http://www.apache.org/licenses/LICENSE-2.0
   *
   *   Unless required by applicable law or agreed to in writing, software
   *   distributed under the License is distributed on an "AS IS" BASIS,
   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *   See the License for the specific language governing permissions and
   *   limitations under the License.
   */
  
  /*
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * @author Roshan Weerasuriya (roshan@opensource.lk, roshan@jkcsworld.com)
   */
  
  #include <string>
  using namespace std;
  
  #include "../../gen_src/rpc/InteropTestPortType.h"
  
  #define ARRAYSIZE 2
  
  int
  main(int argc, char *argv[])
  {
      int x;
      char endpoint[256];
      const char *server = "localhost";
      const char *port = "80";
      if (argc == 3)
      {
  	server = argv[1];
  	port = argv[2];
      }
      printf("Usage :\n %s <server> <port>\n\n", argv[0]);
      //sprintf(endpoint, "http://%s:%s/axis/base", server, port);
      //endpoint for Axis CPP sample
      sprintf(endpoint, "http://%s:%s/axis/base", server, port);
      InteropTestPortType ws(endpoint, APTHTTP);
  
      /*create a header of the form:
         <SOAP-ENV:Header>
         <th:newName xmlns:th="http://ws.apache.org/axisCppTest/">
         <TestAuthHeader>
         <username>Test User</username>
         <password>Test Password</password>
         </TestAuthHeader>
         </th:newName>
         </SOAP-ENV:Header>
       */
  
      //set SOAP headers
      IHeaderBlock *phb = ws.createSOAPHeaderBlock("TestHeader", 
  		"http://ws.apache.org/axisCppTest/");
  
      //buld node tree
      phb->addChild(NULL);
  
      //set second SOAP headers
      phb = ws.createSOAPHeaderBlock("TestHeader2",
                                     "http://ws.apache.org/axisCppTest/");
                                                                                                                                                                             
      phb->addChild(NULL);
  
  
      printf("Sending Requests to end point %s \n\n", endpoint);
      printf("invoking echoString...\n");
      //testing echoString 
      if (0 == strcmp(ws.echoString("hello world"), "hello world"))
  	printf("successful\n");
      else
  	printf("failed\n");
  
      //test removing SOAP header block using pointer
      IHeaderBlock *header = NULL;
      header = ws.getFirstSOAPHeaderBlock();
      ws.deleteSOAPHeaderBlock(header);
      //now the request should have no SOAP headers
  
      if (0 == strcmp(ws.echoString("hello world"), "hello world"))
          printf("successful\n");
      else
          printf("failed\n");
  
  
      printf("Soap Header test end\n");
      return 0;
  }
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test8/Makefile.am
  
  Index: Makefile.am
  ===================================================================
  SUBDIRS = rpc
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test8/rpc/Makefile.am
  
  Index: Makefile.am
  ===================================================================
  bin_PROGRAMS = soapHeaderTest8RPC
  SUBDIRS =
  AM_CPPFLAGS = $(CPPFLAGS)
  soapHeaderTest8RPC_SOURCES = TestClient.cpp  ../../gen_src/rpc/InteropTestPortType.cpp ../../gen_src/rpc/SOAPStruct.cpp 
  
  soapHeaderTest8RPC_LDADD   =  $(LDFLAGS) -laxiscpp_client
  INCLUDES = -I$(AXISCPP_HOME)/include
  
  
  
  1.1                  ws-axis/c/tests/client/soapHeader/test8/rpc/TestClient.cpp
  
  Index: TestClient.cpp
  ===================================================================
  /*
   *   Copyright 2003-2004 The Apache Software Foundation.
   *
   *   Licensed under the Apache License, Version 2.0 (the "License");
   *   you may not use this file except in compliance with the License.
   *   You may obtain a copy of the License at
   *
   *       http://www.apache.org/licenses/LICENSE-2.0
   *
   *   Unless required by applicable law or agreed to in writing, software
   *   distributed under the License is distributed on an "AS IS" BASIS,
   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *   See the License for the specific language governing permissions and
   *   limitations under the License.
   */
  
  /*
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * @author Roshan Weerasuriya (roshan@opensource.lk, roshan@jkcsworld.com)
   */
  
  #include <string>
  using namespace std;
  
  #include "../../gen_src/rpc/InteropTestPortType.h"
  
  #define ARRAYSIZE 2
  
  int
  main(int argc, char *argv[])
  {
      int x;
      char endpoint[256];
      const char *server = "localhost";
      const char *port = "80";
      if (argc == 3)
      {
  	server = argv[1];
  	port = argv[2];
      }
      printf("Usage :\n %s <server> <port>\n\n", argv[0]);
      //sprintf(endpoint, "http://%s:%s/axis/base", server, port);
      //endpoint for Axis CPP sample
      sprintf(endpoint, "http://%s:%s/axis/base", server, port);
      InteropTestPortType ws(endpoint, APTHTTP);
  
      /*create a header of the form:
         <SOAP-ENV:Header>
         <th:newName xmlns:th="http://ws.apache.org/axisCppTest/">
         <TestAuthHeader>
         <username>Test User</username>
         <password>Test Password</password>
         </TestAuthHeader>
         </th:newName>
         </SOAP-ENV:Header>
       */
  
      //set SOAP headers
      IHeaderBlock *phb = ws.createSOAPHeaderBlock("TestHeader", 
  		"http://ws.apache.org/axisCppTest/");
  
      //buld node tree
      //phb->addChild(NULL);
  
      //set second SOAP headers
      phb = ws.createSOAPHeaderBlock("TestHeader2",
                                     "http://ws.apache.org/axisCppTest/");
                                                                                                                                                                             
      //phb->addChild(NULL);
  
  
      printf("Sending Requests to end point %s \n\n", endpoint);
      printf("invoking echoString...\n");
      //testing echoString 
      if (0 == strcmp(ws.echoString("hello world"), "hello world"))
  	printf("successful\n");
      else
  	printf("failed\n");
  
      //test removing SOAP header block using pointer
      IHeaderBlock *header = NULL;
      header = ws.getFirstSOAPHeaderBlock();
      ws.deleteSOAPHeaderBlock(header);
      //now the request should have no SOAP headers
  
      if (0 == strcmp(ws.echoString("hello world"), "hello world"))
          printf("successful\n");
      else
          printf("failed\n");
  
  
      printf("Soap Header test end\n");
      return 0;
  }