	
#ifndef SOAP_H
#define SOAP_H

#include <string>
#include <list>
using namespace std;

typedef list<char*> StringList;
typedef list<char*>::iterator StringListIter;

#pragma warning(disable:4786)

class Soap
{
 public:
    Soap();
	~Soap();

	Soap& operator =(Soap&);
	Soap& operator <(Soap&);

   //get members

	string			 getEndPointUrl() const;
	string			 getSoapAction() const;
	string			 getMethodName() const;
	string			 getMethodNameSpace() const;
	//NameValueMap*	 getMethodParameters();
	StringList*		 getMethodParameterName() const;
	StringList*		 getMethodParameterValue() const;
	string			 getXmlData() const;

	
//set members

    void setEndPointUrl(string);
	void setSoapAction(string);
	void setMethodName(string);
	void setMethodNameSpace(string);
	//void setMethodParameters(NameValueMap&);
	void setMethodParameterName(StringList&);
	void setMethodParameterValue(StringList&);

 private:

	string			   m_EndPointUrl;
	string			   m_SoapAction;
	string			   m_MethodName;
	string			   m_MethodNameSpace;
	StringList		   m_MethodParameterName;
	StringList		   m_MethodParameterValue;
	StringListIter	   m_MethodParamIter;
	StringListIter	   m_MethodParamVIter;	
};

#endif
