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 ro...@apache.org on 2005/01/04 07:59:47 UTC

cvs commit: ws-axis/c/samples/client/simple Calculator_AxisClientException.hpp Calculator_AxisClientException.cpp Calculator.hpp Calculator.cpp CalcClient.cpp

roshan      2005/01/03 22:59:47

  Modified:    c/samples/client/simple Calculator.cpp CalcClient.cpp
  Added:       c/samples/client/simple Calculator_AxisClientException.hpp
                        Calculator_AxisClientException.cpp Calculator.hpp
  Log:
  changed the source files of the simple sample to reflect the latest code generation, since the files were not reflecting the latest
  
  Revision  Changes    Path
  1.10      +166 -71   ws-axis/c/samples/client/simple/Calculator.cpp
  
  Index: Calculator.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/samples/client/simple/Calculator.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Calculator.cpp	24 Nov 2004 13:25:18 -0000	1.9
  +++ Calculator.cpp	4 Jan 2005 06:59:47 -0000	1.10
  @@ -1,134 +1,229 @@
   /*
  - * This is the Client Stub implementation file genarated by WSDL2Ws tool.
  - * Calculator.cpp: implemtation for the Calculator.
  - *
  + * This file was auto-generated by the Axis C++ Web Service Generator (WSDL2Ws)
  + * This file contains Client Stub implementation for remote web service.
    */
   
  -#include "Calculator.h"
  +#include "Calculator.hpp"
   
   #include <axis/AxisWrapperAPI.hpp>
   
  -AXIS_CPP_NAMESPACE_USE
  +using namespace std;
   
  -bool CallBase::bInitialized;
  -//CallFunctions CallBase::ms_VFtable;
  -Calculator::Calculator(const char* pchEndpointUri)
  -{
  -	m_pCall = new Call();
  -	m_pCall->setProtocol(APTHTTP1_1);
  -	m_pCall->setEndpointURI(pchEndpointUri);
  + Calculator::Calculator(const char* pchEndpointUri, AXIS_PROTOCOL_TYPE eProtocol)
  +:Stub(pchEndpointUri, eProtocol)
  +{
  +}
  +
  +Calculator::Calculator()
  +:Stub(" ", APTHTTP1_1)
  +{
  +	m_pCall->setEndpointURI("http://localhost/axis/Calculator");
   }
   
   Calculator::~Calculator()
   {
  -	delete m_pCall;
   }
   
   
   /*Methods corresponding to the web service methods*/
   
   /*
  - * This method wrap the service methodadd
  + * This method wrap the service method add
    */
  -int Calculator::add(int Value0, int Value1)
  +xsd__int Calculator::add(xsd__int Value0, xsd__int Value1)
   {
  -	int Ret;
  -	if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) return Ret;
  -	m_pCall->setTransportProperty(SOAPACTION_HEADER , "Calculator#add");
  -	m_pCall->setSOAPVersion(SOAP_VER_1_1);
  -	m_pCall->setOperation("add", "http://localhost/axis/Calculator");
  -	m_pCall->addParameter((void*)&Value0, "in0", XSD_INT);
  -	m_pCall->addParameter((void*)&Value1, "in1", XSD_INT);
  -	if (AXIS_SUCCESS == m_pCall->invoke())
  +	xsd__int Ret = 0;
  +	const char* pcCmplxFaultName;
  +	try
   	{
  -		if(AXIS_SUCCESS == m_pCall->checkMessage("addResponse", "http://localhost/axis/Calculator"))
  +		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  +			return Ret;
  +		m_pCall->setTransportProperty(SOAPACTION_HEADER , "Calculator#add");
  +		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  +		m_pCall->setOperation("add", "http://localhost/axis/Calculator");
  +		applyUserPreferences();
  +		m_pCall->addParameter((void*)&Value0, "in0", XSD_INT);
  +		m_pCall->addParameter((void*)&Value1, "in1", XSD_INT);
  +		if (AXIS_SUCCESS == m_pCall->invoke())
   		{
  -			Ret = m_pCall->getElementAsInt("addReturn", 0);
  -                        printf("Ret:%d\n", Ret);
  +			if(AXIS_SUCCESS == m_pCall->checkMessage("addResponse", "http://localhost/axis/Calculator"))
  +			{
  +				Ret = m_pCall->getElementAsInt("addReturn", 0);
  +			}
   		}
  +	updateStateAfterResponse();
  +	m_pCall->unInitialize();
  +		return Ret;
   	}
  +	catch(AxisException& e)
  +	{
  +		int iExceptionCode = e.getExceptionCode();
  +		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  +		{
  +	updateStateAfterResponse();
  +	m_pCall->unInitialize();
  +			throw Calculator_AxisClientException(e.what());
  +		}
  +		ISoapFault* pSoapFault = (ISoapFault*) m_pCall->checkFault("Fault","http://localhost/axis/Calculator" );
  +		if(pSoapFault)
  +		{
  +	updateStateAfterResponse();
   	m_pCall->unInitialize();
  -	return Ret;
  +			throw Calculator_AxisClientException(pSoapFault);
  +		}
  +		else throw;
  +	}
   }
   
   
   /*
  - * This method wrap the service methodsub
  + * This method wrap the service method sub
    */
  -int Calculator::sub(int Value0, int Value1)
  +xsd__int Calculator::sub(xsd__int Value0, xsd__int Value1)
   {
  -	int Ret;
  -	if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) return Ret;
  -	m_pCall->setTransportProperty(SOAPACTION_HEADER , "Calculator#sub");
  -	m_pCall->setSOAPVersion(SOAP_VER_1_1);
  -	m_pCall->setOperation("sub", "http://localhost/axis/Calculator");
  -	m_pCall->addParameter((void*)&Value0, "in0", XSD_INT);
  -	m_pCall->addParameter((void*)&Value1, "in1", XSD_INT);
  -	if (AXIS_SUCCESS == m_pCall->invoke())
  +	xsd__int Ret = 0;
  +	const char* pcCmplxFaultName;
  +	try
   	{
  -		if(AXIS_SUCCESS == m_pCall->checkMessage("subResponse", "http://localhost/axis/Calculator"))
  +		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  +			return Ret;
  +		m_pCall->setTransportProperty(SOAPACTION_HEADER , "Calculator#sub");
  +		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  +		m_pCall->setOperation("sub", "http://localhost/axis/Calculator");
  +		applyUserPreferences();
  +		m_pCall->addParameter((void*)&Value0, "in0", XSD_INT);
  +		m_pCall->addParameter((void*)&Value1, "in1", XSD_INT);
  +		if (AXIS_SUCCESS == m_pCall->invoke())
   		{
  -			Ret = m_pCall->getElementAsInt("subReturn", 0);
  -			printf("Ret:%d\n", Ret);
  +			if(AXIS_SUCCESS == m_pCall->checkMessage("subResponse", "http://localhost/axis/Calculator"))
  +			{
  +				Ret = m_pCall->getElementAsInt("subReturn", 0);
  +			}
   		}
  +	updateStateAfterResponse();
  +	m_pCall->unInitialize();
  +		return Ret;
   	}
  +	catch(AxisException& e)
  +	{
  +		int iExceptionCode = e.getExceptionCode();
  +		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  +		{
  +	updateStateAfterResponse();
  +	m_pCall->unInitialize();
  +			throw Calculator_AxisClientException(e.what());
  +		}
  +		ISoapFault* pSoapFault = (ISoapFault*) m_pCall->checkFault("Fault","http://localhost/axis/Calculator" );
  +		if(pSoapFault)
  +		{
  +	updateStateAfterResponse();
   	m_pCall->unInitialize();
  -	return Ret;
  +			throw Calculator_AxisClientException(pSoapFault);
  +		}
  +		else throw;
  +	}
   }
   
   
   /*
  - * This method wrap the service methodmul
  + * This method wrap the service method mul
    */
  -int Calculator::mul(int Value0, int Value1)
  +xsd__int Calculator::mul(xsd__int Value0, xsd__int Value1)
   {
  -	int Ret;
  -	if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) return Ret;
  -	m_pCall->setTransportProperty(SOAPACTION_HEADER , "Calculator#mul");
  -	m_pCall->setSOAPVersion(SOAP_VER_1_1);
  -	m_pCall->setOperation("mul", "http://localhost/axis/Calculator");
  -	m_pCall->addParameter((void*)&Value0, "in0", XSD_INT);
  -	m_pCall->addParameter((void*)&Value1, "in1", XSD_INT);
  -	if (AXIS_SUCCESS == m_pCall->invoke())
  +	xsd__int Ret = 0;
  +	const char* pcCmplxFaultName;
  +	try
   	{
  -		if(AXIS_SUCCESS == m_pCall->checkMessage("mulResponse", "http://localhost/axis/Calculator"))
  +		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  +			return Ret;
  +		m_pCall->setTransportProperty(SOAPACTION_HEADER , "Calculator#mul");
  +		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  +		m_pCall->setOperation("mul", "http://localhost/axis/Calculator");
  +		applyUserPreferences();
  +		m_pCall->addParameter((void*)&Value0, "in0", XSD_INT);
  +		m_pCall->addParameter((void*)&Value1, "in1", XSD_INT);
  +		if (AXIS_SUCCESS == m_pCall->invoke())
   		{
  -			Ret = m_pCall->getElementAsInt("addReturn", 0);
  -			printf("Ret:%d\n", Ret);
  +			if(AXIS_SUCCESS == m_pCall->checkMessage("mulResponse", "http://localhost/axis/Calculator"))
  +			{
  +				Ret = m_pCall->getElementAsInt("addReturn", 0);
  +			}
   		}
  +	updateStateAfterResponse();
  +	m_pCall->unInitialize();
  +		return Ret;
   	}
  +	catch(AxisException& e)
  +	{
  +		int iExceptionCode = e.getExceptionCode();
  +		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  +		{
  +	updateStateAfterResponse();
   	m_pCall->unInitialize();
  -	return Ret;
  +			throw Calculator_AxisClientException(e.what());
  +		}
  +		ISoapFault* pSoapFault = (ISoapFault*) m_pCall->checkFault("Fault","http://localhost/axis/Calculator" );
  +		if(pSoapFault)
  +		{
  +	updateStateAfterResponse();
  +	m_pCall->unInitialize();
  +			throw Calculator_AxisClientException(pSoapFault);
  +		}
  +		else throw;
  +	}
   }
   
   
   /*
  - * This method wrap the service methoddiv
  + * This method wrap the service method div
    */
  -int Calculator::div(int Value0, int Value1)
  +xsd__int Calculator::div(xsd__int Value0, xsd__int Value1)
   {
  -	int Ret;
  -	if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) return Ret;
  -	m_pCall->setTransportProperty(SOAPACTION_HEADER , "Calculator#div");
  -	m_pCall->setSOAPVersion(SOAP_VER_1_1);
  -	m_pCall->setOperation("div", "http://localhost/axis/Calculator");
  -	m_pCall->addParameter((void*)&Value0, "in0", XSD_INT);
  -	m_pCall->addParameter((void*)&Value1, "in1", XSD_INT);
  -	if (AXIS_SUCCESS == m_pCall->invoke())
  +	xsd__int Ret = 0;
  +	const char* pcCmplxFaultName;
  +	try
   	{
  -		if(AXIS_SUCCESS == m_pCall->checkMessage("divResponse", "http://localhost/axis/Calculator"))
  +		if (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) 
  +			return Ret;
  +		m_pCall->setTransportProperty(SOAPACTION_HEADER , "Calculator#div");
  +		m_pCall->setSOAPVersion(SOAP_VER_1_1);
  +		m_pCall->setOperation("div", "http://localhost/axis/Calculator");
  +		applyUserPreferences();
  +		m_pCall->addParameter((void*)&Value0, "in0", XSD_INT);
  +		m_pCall->addParameter((void*)&Value1, "in1", XSD_INT);
  +		if (AXIS_SUCCESS == m_pCall->invoke())
   		{
  -			Ret = m_pCall->getElementAsInt("addReturn", 0);
  -			printf("Ret:%d\n", Ret);
  +			if(AXIS_SUCCESS == m_pCall->checkMessage("divResponse", "http://localhost/axis/Calculator"))
  +			{
  +				Ret = m_pCall->getElementAsInt("addReturn", 0);
  +			}
   		}
  +	updateStateAfterResponse();
  +	m_pCall->unInitialize();
  +		return Ret;
   	}
  +	catch(AxisException& e)
  +	{
  +		int iExceptionCode = e.getExceptionCode();
  +		if(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)
  +		{
  +	updateStateAfterResponse();
   	m_pCall->unInitialize();
  -	return Ret;
  +			throw Calculator_AxisClientException(e.what());
  +		}
  +		ISoapFault* pSoapFault = (ISoapFault*) m_pCall->checkFault("Fault","http://localhost/axis/Calculator" );
  +		if(pSoapFault)
  +		{
  +	updateStateAfterResponse();
  +	m_pCall->unInitialize();
  +			throw Calculator_AxisClientException(pSoapFault);
  +		}
  +		else throw;
  +	}
   }
   
   int Calculator::getFaultDetail(char** ppcDetail)
   {
  -    m_pCall->getFaultDetail(ppcDetail);
  -	return 0;
  +	return m_pCall->getFaultDetail(ppcDetail);
   }
   
  
  
  
  1.11      +1 -1      ws-axis/c/samples/client/simple/CalcClient.cpp
  
  Index: CalcClient.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/samples/client/simple/CalcClient.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- CalcClient.cpp	29 Nov 2004 12:39:30 -0000	1.10
  +++ CalcClient.cpp	4 Jan 2005 06:59:47 -0000	1.11
  @@ -1,4 +1,4 @@
  -#include "Calculator.h"
  +#include "Calculator.hpp"
   #include <axis/AxisException.hpp>
   #include <iostream>
   
  
  
  
  1.1                  ws-axis/c/samples/client/simple/Calculator_AxisClientException.hpp
  
  Index: Calculator_AxisClientException.hpp
  ===================================================================
  /*
   * This file was auto-generated by the Axis C++ Web Service Generator (WSDL2Ws)
   * This file contains an Exception class of the web service.
   */
  
  #if !defined(__AXISCLIENTEXCEPTION_EXCEPTION_H__INCLUDED_)
  #define __AXISCLIENTEXCEPTION_EXCEPTION_H__INCLUDED_
  
  #include <string>
  #include <exception>
  #include <axis/AxisException.hpp>
  #include <axis/ISoapFault.hpp>
  using namespace std;
  AXIS_CPP_NAMESPACE_USE 
  
  class Calculator_AxisClientException: public AxisException
  {
  public:
  	STORAGE_CLASS_INFO Calculator_AxisClientException();
  	STORAGE_CLASS_INFO Calculator_AxisClientException(ISoapFault* pFault);
  	STORAGE_CLASS_INFO Calculator_AxisClientException(int iExceptionCode);
  	STORAGE_CLASS_INFO Calculator_AxisClientException(exception* e);
  	STORAGE_CLASS_INFO Calculator_AxisClientException(exception* e, int iExceptionCode);
  	STORAGE_CLASS_INFO Calculator_AxisClientException(string sMessage);
  	STORAGE_CLASS_INFO virtual ~Calculator_AxisClientException() throw();
  	STORAGE_CLASS_INFO const char* what() throw();
  	STORAGE_CLASS_INFO const int getExceptionCode();
  	STORAGE_CLASS_INFO const string getMessage(exception* e);
  	STORAGE_CLASS_INFO const string getMessage(int iExceptionCode);
  	STORAGE_CLASS_INFO const ISoapFault* getFault();
  
  private:
  	 void processException(exception* e);
  	 void processException(ISoapFault* pFault);
  	 void processException(exception* e, int iExceptionCode);
  	 void processException(int iExceptionCode);
  	 string m_sMessage;
  	 int m_iExceptionCode;
  	 ISoapFault* m_pISoapFault;
  
  };
  
  #endif /* !defined(__AXISCLIENTEXCEPTION_EXCEPTION_H__INCLUDED_)*/
  
  
  
  1.1                  ws-axis/c/samples/client/simple/Calculator_AxisClientException.cpp
  
  Index: Calculator_AxisClientException.cpp
  ===================================================================
  /*
   * This file was auto-generated by the Axis C++ Web Service Generator (WSDL2Ws)
   * This file contains implementations of the Calculator Exception class of the web service.
   */
  
  #include "Calculator_AxisClientException.hpp"
  
  #include <axis/AxisWrapperAPI.hpp>
  
  Calculator_AxisClientException::Calculator_AxisClientException()
  {
  /* This only serves the purpose of indicating that the 
   * service has thrown an excpetion 
   */ 
  	m_iExceptionCode = AXISC_SERVICE_THROWN_EXCEPTION; 
  	processException(m_iExceptionCode); 
  }
  
  Calculator_AxisClientException::Calculator_AxisClientException(ISoapFault* pFault)
  {
  	m_iExceptionCode = AXISC_SERVICE_THROWN_EXCEPTION;
  	m_pISoapFault = pFault;
  	processException(pFault);}
  
  Calculator_AxisClientException::Calculator_AxisClientException(int iExceptionCode)
  {
  
  	m_iExceptionCode = iExceptionCode;
  	processException (iExceptionCode);
  }
  
  Calculator_AxisClientException::Calculator_AxisClientException(exception* e)
  {
  	processException (e);
  }
  
  Calculator_AxisClientException::Calculator_AxisClientException(exception* e,int iExceptionCode)
  {
  
  	processException (e, iExceptionCode);
  }
  
  Calculator_AxisClientException::Calculator_AxisClientException(string sMessage)
  {
  	 m_sMessage =sMessage;
  }
  
  Calculator_AxisClientException::~Calculator_AxisClientException() throw () 
  {
  	m_sMessage ="";
  }
  
  void Calculator_AxisClientException:: processException(exception* e, int iExceptionCode)
  {
  	m_sMessage = getMessage (e) + getMessage (iExceptionCode);
  }
  
  void Calculator_AxisClientException::processException (ISoapFault* pFault)
  {
  	/*User can do something like deserializing the struct into a string*/
  }
  
  void Calculator_AxisClientException::processException(exception* e)
  {
  	m_sMessage = getMessage (e);
  }
  
  void Calculator_AxisClientException::processException(int iExceptionCode)
  {
  	m_sMessage = getMessage (iExceptionCode);
  }
  
  const string Calculator_AxisClientException::getMessage (exception* objException)
  {
  	string sMessage = objException->what();
  	return sMessage;
  }
  
  const string Calculator_AxisClientException::getMessage (int iExceptionCode)
  {
  	string sMessage;
  	switch(iExceptionCode)
  	{
  		case AXISC_SERVICE_THROWN_EXCEPTION:
  		sMessage = "The Calculator service has thrown an exception. see details";
  		break;
  		default:
  		sMessage = "Unknown Exception has occured in the Calculator service";
  	}
  return sMessage;
  }
  
  const char* Calculator_AxisClientException::what() throw ()
  {
  	return m_sMessage.c_str ();
  }
  
  const int Calculator_AxisClientException::getExceptionCode(){
  	return m_iExceptionCode;
  }
  
  const ISoapFault* Calculator_AxisClientException::getFault(){
  	return m_pISoapFault;
  }
  
  
  
  
  1.1                  ws-axis/c/samples/client/simple/Calculator.hpp
  
  Index: Calculator.hpp
  ===================================================================
  /*
   * 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(__CALCULATOR_CLIENTSTUB_H__INCLUDED_)
  #define __CALCULATOR_CLIENTSTUB_H__INCLUDED_
  
  #include <axis/client/Stub.hpp>
  #include "Calculator_AxisClientException.hpp"
  #include <axis/ISoapFault.hpp>
  
  class Calculator :public Stub
  {
  public:
  	STORAGE_CLASS_INFO Calculator(const char* pchEndpointUri, AXIS_PROTOCOL_TYPE eProtocol=APTHTTP1_1);
  	STORAGE_CLASS_INFO Calculator();
  public:
  	STORAGE_CLASS_INFO virtual ~Calculator();
  public: 
  	STORAGE_CLASS_INFO xsd__int add(xsd__int Value0,xsd__int Value1);
  	STORAGE_CLASS_INFO xsd__int sub(xsd__int Value0,xsd__int Value1);
  	STORAGE_CLASS_INFO xsd__int mul(xsd__int Value0,xsd__int Value1);
  	STORAGE_CLASS_INFO xsd__int div(xsd__int Value0,xsd__int Value1);
  	int getFaultDetail(char** ppcDetail);
  };
  
  #endif /* !defined(__CALCULATOR_CLIENTSTUB_H__INCLUDED_)*/