00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
#if !defined(_STUB_H____OF_AXIS_INCLUDED_)
00069
#define _STUB_H____OF_AXIS_INCLUDED_
00070
00071
#include <axis/client/Call.hpp>
00072
#include <axis/IAttribute.hpp>
00073
#include <vector>
00074
00075
using namespace std;
00076
00093 AXIS_CPP_NAMESPACE_START
00094
00095 class STORAGE_CLASS_INFO Stub
00096 {
00097
public:
00098
00108 Stub(
const char *pcEndPointURI, AXIS_PROTOCOL_TYPE eProtocol);
00109
00117
virtual ~Stub();
00118
00126
void AXISCALL setEndPoint(
const char *pcEndPointURI);
00127
00152 void AXISCALL setTrasportProperty(
const char *pcKey,
const char *pcValue) {};
00153
00165 const char* getFirstTrasportPropertyKey() {
return NULL;};
00166
00167
00182 const char* getNextTrasportPropertyKey() {
return NULL;};
00183
00202 const char* getCurrentTrasportPropertyKey() {
return NULL;};
00203
00224 const char* getCurrentTrasportPropertyValue() {
return NULL;};
00225
00232 void deleteCurrentTrasportProperty(){};
00233
00254 void deleteTrasportProperty(
char* pcKey,
unsigned int uiOccurance = 1){};
00255
00278
void AXISCALL setTransportProperty(
const char *pcKey,
const char *pcValue);
00279
00280
00290
const char* getFirstTransportPropertyKey();
00291
00292
00305
const char* getNextTransportPropertyKey();
00306
00323
const char* getCurrentTransportPropertyKey();
00324
00343
const char* getCurrentTransportPropertyValue();
00344
00349
void deleteCurrentTransportProperty();
00350
00369
void deleteTransportProperty(
char* pcKey,
unsigned int uiOccurance = 1);
00370
00371
00379
void setHandlerProperty(AxisChar* name,
void* value,
int len);
00380
00440
IHeaderBlock * AXISCALL createSOAPHeaderBlock(AxisChar * pachLocalName,
00441 AxisChar * pachUri);
00442
00504
IHeaderBlock* AXISCALL createSOAPHeaderBlock(AxisChar * pachLocalName,
00505 AxisChar * pachUri, AxisChar * pachPrefix);
00506
00516
IHeaderBlock* getFirstSOAPHeaderBlock();
00517
00530
IHeaderBlock* getNextSOAPHeaderBlock();
00531
00549
IHeaderBlock* getCurrentSOAPHeaderBlock();
00550
00555
void deleteCurrentSOAPHeaderBlock();
00556
00576
void deleteSOAPHeaderBlock(
IHeaderBlock* pHeaderBlock);
00577
00584
void setProxy(
const char* pcProxyHost,
unsigned int uiProxyPort);
00585
00593
void setSOAPMethodAttribute(
const AxisChar *pLocalname,
const AxisChar *pPrefix,
const AxisChar *pValue);
00594
00603
void setSOAPMethodAttribute(
const AxisChar *pLocalname,
const AxisChar *pPrefix,
const AxisChar* pUri,
const AxisChar *pValue);
00604
00614
IAttribute* getFirstSOAPMethodAttribute();
00615
00628
IAttribute* getNextSOAPMethodAttribute();
00629
00647
IAttribute* getCurrentSOAPMethodAttribute();
00648
00653
void deleteCurrentSOAPMethodAttribute();
00654
00674
void deleteSOAPMethodAttribute(
IAttribute* pAttribute);
00675
00684
void setTransportTimeout(
const long lSeconds);
00688
int getStatus();
00692
const AxisChar* AXISCALL getNamespacePrefix(
const AxisChar* pNamespace);
00693
00698
void setMaintainSession(
bool bSession);
00699
00704
void setTransportProtocol(AXIS_PROTOCOL_TYPE eProtocol);
00705
00710 AXIS_PROTOCOL_TYPE getTransportProtocol();
00711
00712
protected:
00719
void applyUserPreferences();
00720
00721
00726
void setSOAPHeaders();
00727
00732
void setSOAPMethodAttributes();
00733
00738 Call *getCall() {
return m_pCall; }
00739 Call *m_pCall;
00740
00744
#ifdef WIN32
00745
#pragma warning (disable : 4251)
00746
#endif
00747 vector < IHeaderBlock * >m_vSOAPHeaderBlocks;
00748
#ifdef WIN32
00749
#pragma warning (default : 4251)
00750
#endif
00751
00754 vector <IHeaderBlock *>::iterator m_viCurrentSOAPHeaderBlock;
00755
00759
#ifdef WIN32
00760
#pragma warning (disable : 4251)
00761
#endif
00762 vector <IAttribute*> m_vSOAPMethodAttributes;
00763
#ifdef WIN32
00764
#pragma warning (default : 4251)
00765
#endif
00766
00769 vector <IAttribute*>::iterator m_viCurrentSOAPMethodAttribute;
00770
00774 SOAPTransport* m_pTransport;
00775
00776 };
00777
00778 AXIS_CPP_NAMESPACE_END
00779
00780
#endif