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 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 (const std::string &url, const std::string &schemaPath)
 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 getOpDocumentation (const std::string &n)
std::string getDocumentation ()
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 1033 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 1194 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 1008 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 1168 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 1183 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 259 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 1210 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 135 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 894 of file WsdlInvoker.cpp.

References XmlSerializer::attribute(), XmlPullParserException::col, Schema::SchemaParserException::col, WsdlPull::WsdlException::col, XmlPullParserException::description, Schema::SchemaParserException::description, WsdlPull::WsdlException::description, XmlSerializer::endTag(), XmlSerializer::flush(), WsdlPull::WsdlElement::getName(), XmlPullParserException::line, Schema::SchemaParserException::line, WsdlPull::WsdlException::line, Schema::SchemaInstaceUri, Schema::SchemaUri, XmlSerializer::setPrefix(), WsdlPull::Soap::soapEncUri, WsdlPull::Soap::soapEnvUri, XmlSerializer::startDocument(), and XmlSerializer::startTag().

Referenced by getSoapMessage().

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

returns the number of input headers you may need to set

Definition at line 348 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 767 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 804 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 232 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 838 of file WsdlInvoker.cpp.

References setInputValue().


The documentation for this class was generated from the following files:
Generated on Sat May 3 16:29:16 2008 for wsdlpull by  doxygen 1.4.6