WsdlPull::WsdlInvoker Class Reference

Collaboration diagram for WsdlPull::WsdlInvoker:

Collaboration graph
[legend]
List of all members.

Public Member Functions

void setLocation (const std::string &url)
void setCredentials (const std::string &user, const std::string &pass)
std::string WsdlInvoker::getSoapMessage ()
void setProxy (const std::string &host, int port=80)
void setVerbose (bool f)
void printTypeNames (bool f)
std::string errors ()
bool status () const
Constructors and Destructors
 WsdlInvoker (const std::string &url)
 WsdlInvoker ()
 ~WsdlInvoker ()
WSDL Inspection
bool setWSDLUri (const std::string &url)
bool init (WsdlParser *parser)
 return names of operations (only for the SOAP binding portType)
int getOperations (std::vector< std::string > &operations)
std::string getOpDocumentaion (const std::string &n)
bool setOperation (const std::string &operation, WsdlPull::MessageType mType=WsdlPull::Input)
 set the operation to invoke
std::string getServiceEndPoint (const std::string &opname)
Simple Invocation usage
bool setValue (const std::string &param, void *val)
 sets the param value for an operation by name of the parameter
bool setValue (const std::string &param, void **values, unsigned int occur)
bool setValue (const std::string &param, std::string val)
bool setValue (const std::string &param, std::vector< std::string > values)
bool setValue (const std::vector< std::string > &parents, void *val)
bool invoke (long timeout=0)
void * getValue (const std::string &param, Schema::Type &t)
A more complex but powerful usage
int getNextInput (std::string &param, Schema::Type &type, int &minimum, int &maximum)
int getNextInput (std::string &param, Schema::Type &type, int &minimum, int &maximum, std::vector< std::string > &parents)
int getNextHeaderInput (std::string &param, Schema::Type &type, int &minimum, int &maximum)
int getNextHeaderInput (std::string &param, Schema::Type &type, int &minimum, int &maximum, std::vector< std::string > &parents)
int nInputHeaders () const
bool setInputValue (const int param, void *val)
bool setInputValue (const int id, void **values, unsigned int occur)
bool setInputValue (const int param, std::string val)
bool setInputValue (const int param, std::vector< std::string > values)
bool getNextOutput (std::string &name, TypeContainer *&tc)
TypeContainergetOutput (const std::string &name)
bool getNextHeaderOutput (std::string &name, TypeContainer *&tc)

Detailed Description

Definition at line 49 of file WsdlInvoker.h.


Constructor & Destructor Documentation

WsdlPull::WsdlInvoker::WsdlInvoker const std::string &  url  ) 
 

The default constructor for WsdlInvoker

Parameters:
wsdl url
stream for logging errors

Definition at line 56 of file WsdlInvoker.cpp.


Member Function Documentation

int WsdlPull::WsdlInvoker::getNextHeaderInput std::string &  param,
Schema::Type type,
int &  minimum,
int &  maximum
 

getNextHeaderInput Similar to the previous method except that it gets the SOAP headers if any Set methods are same as for regular inputs

Definition at line 879 of file WsdlInvoker.cpp.

bool WsdlPull::WsdlInvoker::getNextHeaderOutput std::string &  name,
TypeContainer *&  tc
 

getNextHeaderOutput get the type container which stores the SOAP header

Returns:
false when we finished iterating through all outputs after which it rewinds and you can start again

Definition at line 1039 of file WsdlInvoker.cpp.

int WsdlPull::WsdlInvoker::getNextInput std::string &  param,
Schema::Type type,
int &  minimum,
int &  maximum
 

getNextInput Calling this method repeatedly informs the caller of the input types the web service operation expects. Each call returns a unique id which must be used while setting the value using setInputValue.This method exposes only atomic types.Even if a web service needs a complex type,the api exposes only the constituent particles.The only exception is when a complex content model needs multiple occurrences which is still a TODO

Parameters:
ref:param name Name of the param
ref:Schema::Type,the schema type
ref,: minimum and maximum (occurrences)
ref:parents,parent list of type hierarchy for this parameter.
Returns:
unique id of this parameter

Definition at line 854 of file WsdlInvoker.cpp.

bool WsdlPull::WsdlInvoker::getNextOutput std::string &  name,
TypeContainer *&  tc
 

getNextOutput get the part/elem name and type container

Returns:
false when we finished iterating through all outputs after which it rewinds and you can start again

Definition at line 1013 of file WsdlInvoker.cpp.

TypeContainer * WsdlPull::WsdlInvoker::getOutput const std::string &  name  ) 
 

getOutput return the type container which stores the output for the output part/elem name

Definition at line 1028 of file WsdlInvoker.cpp.

std::string WsdlPull::WsdlInvoker::getServiceEndPoint const std::string &  opname  ) 
 

getServiceEndPoint returns the url to be invoked for the operation

Definition at line 233 of file WsdlInvoker.cpp.

void * WsdlPull::WsdlInvoker::getValue const std::string &  param,
Schema::Type t
 

getValue return the value of the output whose name is 'param'

Parameters:
type is set by reference to enable type casting in client code
Returns:
pointer to the value .0 if there is no simple type or part name whose name is 'param' in the web service output. example float * val = (int*) invoker.getOutput("Result",t);//stock quotes t would be Schema::FLOAT

Definition at line 1055 of file WsdlInvoker.cpp.

bool WsdlPull::WsdlInvoker::init WsdlParser parser  ) 
 

return names of operations (only for the SOAP binding portType)

getOperations

Parameters:
reference to vector<string>
Returns:
int ,number of operations

Definition at line 115 of file WsdlInvoker.cpp.

References XmlPullParserException::col, Schema::SchemaParserException::col, WsdlPull::WsdlException::col, XmlPullParserException::description, Schema::SchemaParserException::description, WsdlPull::WsdlException::description, WsdlPull::Soap::getElementName(), WsdlPull::WsdlParser::getExtensibilityHandler(), WsdlPull::WsdlParser::getPortTypes(), XmlPullParserException::line, Schema::SchemaParserException::line, WsdlPull::WsdlException::line, WsdlPull::Soap::soapBindingUri, and WsdlPull::WsdlParser::status().

bool WsdlPull::WsdlInvoker::invoke long  timeout = 0  ) 
 

invoke invoke the web service operation

Parameters:
timeout set the timeout for the request in seconds
Returns:
true if successful,false otherwise

Definition at line 767 of file WsdlInvoker.cpp.

References XmlSerializer::attribute(), XmlSerializer::endTag(), XmlSerializer::flush(), WsdlPull::WsdlElement::getName(), Schema::SchemaInstaceUri, Schema::SchemaUri, XmlSerializer::setPrefix(), WsdlPull::Soap::soapEncUri, WsdlPull::Soap::soapEnvUri, XmlSerializer::startDocument(), and XmlSerializer::startTag().

int WsdlPull::WsdlInvoker::nInputHeaders  )  const [inline]
 

returns the number of input headers you may need to set

Definition at line 337 of file WsdlInvoker.h.

bool WsdlPull::WsdlInvoker::setInputValue const int  param,
std::string  val
 

setInputValue sets the param value for an operation only simple types can be set.

Parameters:
id return by getNextInput()
string representation of the parameter
Returns:
true if successful,false if the values didnt match or occurrence constraint failed

Definition at line 640 of file WsdlInvoker.cpp.

References Schema::XSDType::getContentModel(), Schema::ComplexType::getContentType(), Schema::SchemaParser::getType(), and Schema::XSDType::isSimple().

bool WsdlPull::WsdlInvoker::setInputValue const int  param,
void *  val
 

setInputValue sets the param value for an operation only simple types can be set.

Parameters:
id return by getNextInput()
void ** pointer to array of pointers to the the values
Returns:
true if successful,false if the values didnt match or occurrence constraint failed

Definition at line 677 of file WsdlInvoker.cpp.

References Schema::XSDType::getContentModel(), Schema::ComplexType::getContentType(), Schema::SchemaParser::getType(), and Schema::XSDType::isSimple().

Referenced by setValue().

bool WsdlPull::WsdlInvoker::setOperation const std::string &  operation,
WsdlPull::MessageType  mType = WsdlPull::Input
 

set the operation to invoke

setOperation

Parameters:
operation name to invoke
Returns:
bool ,true if successful

Definition at line 206 of file WsdlInvoker.cpp.

bool WsdlPull::WsdlInvoker::setValue const std::string &  param,
void *  val
 

sets the param value for an operation by name of the parameter

setValue

Parameters:
name of the operation's parameter
string/void* representation of the parameter
Returns:
true if successful,false if the values didnt match or occurrence constraint failed example invoker.setInputValue("symbol","ABC") or int zip = 94018; invoker.setInputValue("zip",(void*)(&zip)); Note that "symbol" or "zip" above can be a message part or a constituent particle in a complex type The API takes care of it.

Definition at line 711 of file WsdlInvoker.cpp.

References setInputValue().


The documentation for this class was generated from the following files:
Generated on Sun Aug 5 20:01:46 2007 for wsdlpull by  doxygen 1.4.6