/*
 * 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(__SIMPLETYPEARRAYWS_CLIENTSTUB_H__INCLUDED_)
#define __SIMPLETYPEARRAYWS_CLIENTSTUB_H__INCLUDED_

#include <axis/client/Stub.hpp>
#include <axis/OtherFaultException.hpp>
#include <axis/ISoapAttachment.hpp>
#include <axis/ISoapFault.hpp>
AXIS_CPP_NAMESPACE_USE
#include "Type.hpp"

class SimpleTypeArrayWS :public Stub
{
public:
	STORAGE_CLASS_INFO SimpleTypeArrayWS(const char* pchEndpointUri, AXIS_PROTOCOL_TYPE eProtocol=APTHTTP1_1);
	STORAGE_CLASS_INFO SimpleTypeArrayWS();
public:
	STORAGE_CLASS_INFO virtual ~SimpleTypeArrayWS();
public: 
	STORAGE_CLASS_INFO Type* getInput(Type* Value0);
};

#endif /* !defined(__SIMPLETYPEARRAYWS_CLIENTSTUB_H__INCLUDED_)*/
