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 ja...@apache.org on 2005/03/14 13:18:08 UTC
cvs commit: ws-axis/c/tests/auto_build/testcases/dynamic/DynamicGetNamespacePrefixTest Calculator.cpp Calculator.hpp
jamejose 2005/03/14 04:18:08
Added: c/tests/auto_build/testcases/dynamic/DynamicGetNamespacePrefixTest
Calculator.cpp Calculator.hpp
Log:
Revision Changes Path
1.1 ws-axis/c/tests/auto_build/testcases/dynamic/DynamicGetNamespacePrefixTest/Calculator.cpp
Index: Calculator.cpp
===================================================================
/*
* This is a manually edited version of the Generated stub code for CaluclatorDoc.wsdl
* to simplify the code to allow the cpp file to be edited to be used as a dynamic client.
* This program tests getNamespacePrefix() API in Call class
* @ Author : James Jose
*/
#include "Calculator.hpp"
#include <axis/AxisWrapperAPI.hpp>
#include <axis/AxisUserAPI.hpp>
#include <stdio.h>
Calculator::Calculator(const char* pcEndpointUri, AXIS_PROTOCOL_TYPE eProtocol)
{
m_pCall=new Call();
m_pCall->setProtocol(eProtocol);
m_pCall->setEndpointURI(pcEndpointUri);
}
Calculator::Calculator()
{
m_pCall=new Call();
m_pCall->setEndpointURI("http://localhost/axis/Calculator");
}
Calculator::~Calculator()
{
free(m_pCall);
m_pCall=NULL;
}
void Calculator::SetSecure( char * pszArguments, ...)
{
char ** ppszArgPtr = &pszArguments;
int iArgIndex = 0;
while( *ppszArgPtr != NULL)
{
sArguments[iArgIndex] = *ppszArgPtr;
iArgIndex++;
ppszArgPtr++;
}
}
xsd__int Calculator::div(xsd__int Value0, xsd__int Value1)
{
xsd__int Ret = 0;
const char* pcCmplxFaultName;
try
{
m_pCall->initialize(CPP_DOC_PROVIDER);
m_pCall->setTransportProperty(SOAPACTION_HEADER , "Calculator#div");
m_pCall->setSOAPVersion(SOAP_VER_1_1);
m_pCall->setOperation("div", "http://localhost/axis/Calculator");
includeSecure();
char cPrefixAndParamName0[17];
sprintf( cPrefixAndParamName0, "%s:arg_0_3", m_pCall->getNamespacePrefix("http://localhost/axis/Calculator"));
m_pCall->addParameter((void*)&Value0, cPrefixAndParamName0, XSD_INT);
char cPrefixAndParamName1[17];
sprintf( cPrefixAndParamName1, "%s:arg_1_3", m_pCall->getNamespacePrefix("http://localhost/axis/Calculator"));
m_pCall->addParameter((void*)&Value1, cPrefixAndParamName1, XSD_INT);
/* Testing getNamespacePrefix API */
/* 1. Test for non existing URI */
const char *pf;
if((pf=m_pCall->getNamespacePrefix("http://localhost/apache/axis/Calculator"))!=NULL)
cout << endl << pf << " is returned as prefix for non existing namespace URI" <<endl;
/* Passing all existing URIs */
cout<< m_pCall->getNamespacePrefix("http://schemas.xmlsoap.org/soap/envelope/")<<endl;
cout<< m_pCall->getNamespacePrefix("http://www.w3.org/2001/XMLSchema")<<endl;
cout<< m_pCall->getNamespacePrefix("http://www.w3.org/2001/XMLSchema-instance")<<endl;
cout<< m_pCall->getNamespacePrefix("http://localhost/axis/Calculator")<<endl;
if (AXIS_SUCCESS == m_pCall->invoke())
{
if(AXIS_SUCCESS == m_pCall->checkMessage("divResponse", "http://localhost/axis/Calculator"))
{
Ret = *(m_pCall->getElementAsInt("divReturn", 0));
}
}
/* Passing URI for SOAP-ENV */
m_pCall->unInitialize();
return Ret;
}
catch(AxisException& e)
{
throw;
}
}
void Calculator::includeSecure()
{
m_pCall->setTransportProperty( SECURE_PROPERTIES, (const char *) &sArguments);
}
int main(int argc, char* argv[])
{
char endpoint[256];
const char* url="http://localhost:9080/Calculator/services/Calculator";
const char* op = 0;
int i1=100, i2=20;
int iResult;
if(argc > 1){
url=argv[1];
}
try
{
sprintf(endpoint, "%s", url);
Calculator ws(endpoint);
cout << ws.div(i1,i2)<<endl;
}
catch(AxisException& e)
{
cout << "Exception : " << e.what() << endl;
}
catch(exception& e)
{
cout << "Unknown exception has occured" << endl;
}
catch(...)
{
cout << "Unspecified exception has occured" << endl;
}
cout << "----------------------------TEST COMPLETE------------------------------------" << endl;
return 0;
}
1.1 ws-axis/c/tests/auto_build/testcases/dynamic/DynamicGetNamespacePrefixTest/Calculator.hpp
Index: Calculator.hpp
===================================================================
/*
* This is a manually edited version of the Generated stub code for CaluclatorDoc.wsdl
* to simplify the code to allow the cpp file to be edited to be used as a dynamic client
*/
#if !defined(__CALCULATOR_CLIENT_H__INCLUDED_)
#define __CALCULATOR_CLIENT_H__INCLUDED_
#include <axis/AxisException.hpp>
#include <axis/client/Call.hpp>
#include <iostream>
#include <string>
#include <exception>
using namespace std;
AXIS_CPP_NAMESPACE_USE
class Calculator
{
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 void SetSecure( char *, ...);
STORAGE_CLASS_INFO xsd__int div(xsd__int Value0,xsd__int Value1);
private:
void includeSecure();
Call *m_pCall;
protected:
std::string sArguments[8];
};
#endif /* !defined(__CALCULATOR_CLIENT_H__INCLUDED_)*/