00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
#if !defined(_CALL_H____OF_AXIS_INCLUDED_)
00049
#define _CALL_H____OF_AXIS_INCLUDED_
00050
00051
#include "../GDefine.hpp"
00052
#include "../TypeMapping.hpp"
00053
#include "../AxisUserAPI.hpp"
00054
#include "../WSDDDefines.hpp"
00055
#include "../IHeaderBlock.hpp"
00056
00057 AXIS_CPP_NAMESPACE_START
00058
00059
class ClientAxisEngine;
00060
class SOAPTransport;
00061
class MessageData;
00062
class SoapDeSerializer;
00063
class SoapSerializer;
00064
00065
class STORAGE_CLASS_INFO CallBase
00066 {
00067
public:
00068
virtual void AXISCALL setSOAPVersion(SOAP_VERSION version)=0;
00069
virtual int AXISCALL setTransportProperty(AXIS_TRANSPORT_INFORMATION_TYPE
00070 type,
const char* value)=0;
00071
virtual int AXISCALL setHandlerProperty(AxisChar* name,
00072
void* value,
int len)=0;
00073
virtual int AXISCALL setProtocol(AXIS_PROTOCOL_TYPE protocol)=0;
00074
virtual int AXISCALL initialize(PROVIDERTYPE nStyle)=0;
00075
virtual int AXISCALL invoke()=0;
00076
virtual int AXISCALL unInitialize()=0;
00077
00078
00079
virtual void AXISCALL setOperation(
const char* pchOperation,
00080
const char* pchNamespace)=0;
00081
virtual int AXISCALL setEndpointURI(
const char* pchEndpointURI)=0;
00082
00083
00084
virtual void AXISCALL addCmplxParameter(
void* pObject,
void* pSZFunct,
00085
void* pDelFunct,
const AxisChar* pName,
const AxisChar* pNamespace)=0;
00086
00087
virtual void AXISCALL addCmplxArrayParameter(Axis_Array* pArray,
00088
void* pSZFunct,
void* pDelFunct,
void* pSizeFunct,
00089
const AxisChar* pName,
const AxisChar* pNamespace)=0;
00090
00091
virtual void AXISCALL addBasicArrayParameter(Axis_Array* pArray,
00092 XSDTYPE nType,
const char* pName)=0;
00093
00094
virtual void AXISCALL addParameter(
void* pValue,
const char* pName,
00095 XSDTYPE nType)=0;
00096
00097
00098
00099
00100
virtual int AXISCALL getElementAsInt(
const AxisChar* pName,
00101
const AxisChar* pNamespace)=0;
00102
virtual xsd__boolean AXISCALL getElementAsBoolean(
const AxisChar* pName,
00103
const AxisChar* pNamespace)=0;
00104
virtual unsigned int AXISCALL getElementAsUnsignedInt(
const AxisChar*
00105 pName,
const AxisChar* pNamespace)=0;
00106
virtual short AXISCALL getElementAsShort(
const AxisChar* pName,
00107
const AxisChar* pNamespace)=0;
00108
virtual unsigned short AXISCALL getElementAsUnsignedShort(
const AxisChar*
00109 pName,
const AxisChar* pNamespace)=0;
00110
virtual char AXISCALL getElementAsByte(
const AxisChar* pName,
00111
const AxisChar* pNamespace)=0;
00112
virtual unsigned char AXISCALL getElementAsUnsignedByte(
const AxisChar*
00113 pName,
const AxisChar* pNamespace)=0;
00114
virtual xsd__long AXISCALL getElementAsLong(
const AxisChar* pName,
00115
const AxisChar* pNamespace)=0;
00116
virtual long AXISCALL getElementAsInteger(
const AxisChar* pName,
00117
const AxisChar* pNamespace)=0;
00118
virtual unsigned long AXISCALL getElementAsUnsignedLong(
const AxisChar*
00119 pName,
const AxisChar* pNamespace)=0;
00120
virtual float AXISCALL getElementAsFloat(
const AxisChar* pName,
00121
const AxisChar* pNamespace)=0;
00122
virtual double AXISCALL getElementAsDouble(
const AxisChar* pName,
00123
const AxisChar* pNamespace)=0;
00124
virtual double AXISCALL getElementAsDecimal(
const AxisChar* pName,
00125
const AxisChar* pNamespace)=0;
00126
virtual AxisChar* AXISCALL getElementAsString(
const AxisChar* pName,
00127
const AxisChar* pNamespace)=0;
00128
virtual AxisChar* AXISCALL getElementAsAnyURI(
const AxisChar* pName,
00129
const AxisChar* pNamespace)=0;
00130
virtual AxisChar* AXISCALL getElementAsQName(
const AxisChar* pName,
00131
const AxisChar* pNamespace)=0;
00132
virtual xsd__hexBinary AXISCALL getElementAsHexBinary(
const AxisChar*
00133 pName,
const AxisChar* pNamespace)=0;
00134
virtual xsd__base64Binary AXISCALL getElementAsBase64Binary(
const
00135 AxisChar* pName,
const AxisChar* pNamespace)=0;
00136
virtual struct tm AXISCALL getElementAsDateTime(const AxisChar* pName,
00137
const AxisChar* pNamespace)=0;
00138
virtual struct tm AXISCALL getElementAsDate(const AxisChar* pName,
00139
const AxisChar* pNamespace)=0;
00140
virtual struct tm AXISCALL getElementAsTime(const AxisChar* pName,
00141
const AxisChar* pNamespace)=0;
00142
virtual long AXISCALL getElementAsDuration(
const AxisChar* pName,
00143
const AxisChar* pNamespace)=0;
00144
00145
00146
00147
00148
virtual int AXISCALL getAttributeAsInt(
const AxisChar* pName,
00149
const AxisChar* pNamespace)=0;
00150
virtual xsd__boolean AXISCALL getAttributeAsBoolean(
const AxisChar* pName,
00151
const AxisChar* pNamespace)=0;
00152
virtual unsigned int AXISCALL getAttributeAsUnsignedInt(
const AxisChar*
00153 pName,
const AxisChar* pNamespace)=0;
00154
virtual short AXISCALL getAttributeAsShort(
const AxisChar* pName,
00155
const AxisChar* pNamespace)=0;
00156
virtual unsigned short AXISCALL getAttributeAsUnsignedShort(
const
00157 AxisChar* pName,
const AxisChar* pNamespace)=0;
00158
virtual char AXISCALL getAttributeAsByte(
const AxisChar* pName,
00159
const AxisChar* pNamespace)=0;
00160
virtual unsigned char AXISCALL getAttributeAsUnsignedByte(
const AxisChar*
00161 pName,
const AxisChar* pNamespace)=0;
00162
virtual long AXISCALL getAttributeAsLong(
const AxisChar* pName,
00163
const AxisChar* pNamespace)=0;
00164
virtual long AXISCALL getAttributeAsInteger(
const AxisChar* pName,
00165
const AxisChar* pNamespace)=0;
00166
virtual unsigned long AXISCALL getAttributeAsUnsignedLong(
const AxisChar*
00167 pName,
const AxisChar* pNamespace)=0;
00168
virtual float AXISCALL getAttributeAsFloat(
const AxisChar* pName,
00169
const AxisChar* pNamespace)=0;
00170
virtual double AXISCALL getAttributeAsDouble(
const AxisChar* pName,
00171
const AxisChar* pNamespace)=0;
00172
virtual double AXISCALL getAttributeAsDecimal(
const AxisChar* pName,
00173
const AxisChar* pNamespace)=0;
00174
virtual AxisChar* AXISCALL getAttributeAsString(
const AxisChar* pName,
00175
const AxisChar* pNamespace)=0;
00176
virtual AxisChar* AXISCALL getAttributeAsAnyURI(
const AxisChar* pName,
00177
const AxisChar* pNamespace)=0;
00178
virtual AxisChar* AXISCALL getAttributeAsQName(
const AxisChar* pName,
00179
const AxisChar* pNamespace)=0;
00180
virtual xsd__hexBinary AXISCALL getAttributeAsHexBinary(
const AxisChar*
00181 pName,
const AxisChar* pNamespace)=0;
00182
virtual xsd__base64Binary AXISCALL getAttributeAsBase64Binary(
const
00183 AxisChar* pName,
const AxisChar* pNamespace)=0;
00184
virtual struct tm AXISCALL getAttributeAsDateTime(const AxisChar* pName,
00185
const AxisChar* pNamespace)=0;
00186
virtual struct tm AXISCALL getAttributeAsDate(const AxisChar* pName,
00187
const AxisChar* pNamespace)=0;
00188
virtual struct tm AXISCALL getAttributeAsTime(const AxisChar* pName,
00189
const AxisChar* pNamespace)=0;
00190
virtual long AXISCALL getAttributeAsDuration(
const AxisChar* pName,
00191
const AxisChar* pNamespace)=0;
00192
00193
00194
virtual void* AXISCALL getCmplxObject(
void* pDZFunct,
void* pCreFunct,
00195
void* pDelFunct,
const AxisChar* pName,
const AxisChar* pNamespace)=0;
00196
00197
virtual Axis_Array AXISCALL getCmplxArray(
void* pDZFunct,
void* pCreFunct,
00198
void* pDelFunct,
void* pSizeFunct,
const AxisChar* pName,
00199
const AxisChar* pNamespace)=0;
00200
00201
virtual Axis_Array AXISCALL getBasicArray(XSDTYPE nType,
00202
const AxisChar* pName,
const AxisChar* pNamespace)=0;
00203
00204
virtual int AXISCALL checkMessage(
const AxisChar* pName,
00205
const AxisChar* pNamespace)=0;
00206
00207
virtual void* AXISCALL checkFault(
const AxisChar* pName,
00208
const AxisChar* pNamespace)=0;
00209
00210
00211
virtual int AXISCALL getStatus()=0;
00212
00213
virtual AnyType* AXISCALL getAnyObject()=0;
00214
virtual int AXISCALL addAnyObject(
AnyType* pAnyObject)=0;
00215
virtual const AxisChar* AXISCALL getNamespacePrefix
00216 (
const AxisChar* pNamespace)=0;
00217
00218
virtual IHeaderBlock* AXISCALL createHeaderBlock(AxisChar *pachLocalName,
00219 AxisChar *pachUri)=0;
00220
00221
virtual IHeaderBlock* AXISCALL createHeaderBlock(AxisChar *pachLocalName,
00222 AxisChar *pachUri, AxisChar *pachPrefix)=0;
00223
00224
static bool bInitialized;
00225 };
00226
00227
00228
class STORAGE_CLASS_INFO Call :
public CallBase
00229 {
00230
public:
00231 Call();
00232
virtual ~Call();
00233
void AXISCALL setSOAPVersion(SOAP_VERSION version);
00234
int AXISCALL setTransportProperty(AXIS_TRANSPORT_INFORMATION_TYPE type,
00235
const char* value);
00236
int AXISCALL setHandlerProperty(AxisChar* name,
void* value,
int len);
00237
int AXISCALL setProtocol(AXIS_PROTOCOL_TYPE protocol);
00238 AXIS_PROTOCOL_TYPE AXISCALL getProtocol();
00239
int AXISCALL unInitialize();
00240
int AXISCALL initialize(PROVIDERTYPE nStyle);
00241
int AXISCALL invoke();
00242
00243
00244
void AXISCALL addCmplxParameter(
void* pObject,
void* pSZFunct,
00245
void* pDelFunct,
const AxisChar* pName,
const AxisChar* pNamespace);
00246
00247
void AXISCALL addCmplxArrayParameter(Axis_Array* pArray,
void* pSZFunct,
00248
void* pDelFunct,
void* pSizeFunct,
const AxisChar* pName,
00249
const AxisChar* pNamespace);
00250
00251
void AXISCALL addBasicArrayParameter(Axis_Array* pArray, XSDTYPE nType,
00252
const AxisChar* pName);
00253
00254
void AXISCALL addParameter(
void* pValue,
const char* pchName,
00255 XSDTYPE nType);
00256
00257
00258
void AXISCALL setOperation(
const char* pchOperation,
00259
const char* pchNamespace);
00260
int AXISCALL setEndpointURI(
const char* pchEndpointURI);
00261
public:
00262
IHeaderBlock* AXISCALL createHeaderBlock(AxisChar *pachLocalName,
00263 AxisChar *pachUri);
00264
IHeaderBlock* AXISCALL createHeaderBlock(AxisChar *pachLocalName,
00265 AxisChar *pachUri, AxisChar *pachPrefix);
00266
IHeaderBlock* createHeaderBlock();
00267
00268
00269
00270
int AXISCALL getElementAsInt(
const AxisChar* pName,
00271
const AxisChar* pNamespace);
00272
int AXISCALL getFaultDetail(
char** ppcDetail);
00273
xsd__boolean AXISCALL getElementAsBoolean(
const AxisChar* pName,
00274
const AxisChar* pNamespace);
00275
unsigned int AXISCALL getElementAsUnsignedInt(
const AxisChar* pName,
00276
const AxisChar* pNamespace);
00277
short AXISCALL getElementAsShort(
const AxisChar* pName,
00278
const AxisChar* pNamespace);
00279
unsigned short AXISCALL getElementAsUnsignedShort(
const AxisChar* pName,
00280
const AxisChar* pNamespace);
00281
char AXISCALL getElementAsByte(
const AxisChar* pName,
00282
const AxisChar* pNamespace);
00283
unsigned char AXISCALL getElementAsUnsignedByte(
const AxisChar* pName,
00284
const AxisChar* pNamespace);
00285
xsd__long AXISCALL getElementAsLong(
const AxisChar* pName,
00286
const AxisChar* pNamespace);
00287
long AXISCALL getElementAsInteger(
const AxisChar* pName,
00288
const AxisChar* pNamespace);
00289
unsigned long AXISCALL getElementAsUnsignedLong(
const AxisChar* pName,
00290
const AxisChar* pNamespace);
00291
float AXISCALL getElementAsFloat(
const AxisChar* pName,
00292
const AxisChar* pNamespace);
00293
double AXISCALL getElementAsDouble(
const AxisChar* pName,
00294
const AxisChar* pNamespace);
00295
double AXISCALL getElementAsDecimal(
const AxisChar* pName,
00296
const AxisChar* pNamespace);
00297 AxisChar* AXISCALL getElementAsString(
const AxisChar* pName,
00298
const AxisChar* pNamespace);
00299 AxisChar* AXISCALL getElementAsAnyURI(
const AxisChar* pName,
00300
const AxisChar* pNamespace);
00301 AxisChar* AXISCALL getElementAsQName(
const AxisChar* pName,
00302
const AxisChar* pNamespace);
00303
xsd__hexBinary AXISCALL getElementAsHexBinary(
const AxisChar* pName,
00304
const AxisChar* pNamespace);
00305
xsd__base64Binary AXISCALL getElementAsBase64Binary(
const AxisChar* pName,
00306
const AxisChar* pNamespace);
00307
struct tm AXISCALL getElementAsDateTime(const AxisChar* pName,
00308
const AxisChar* pNamespace);
00309
struct tm AXISCALL getElementAsDate(const AxisChar* pName,
00310
const AxisChar* pNamespace);
00311
struct tm AXISCALL getElementAsTime(const AxisChar* pName,
00312
const AxisChar* pNamespace);
00313
long AXISCALL getElementAsDuration(
const AxisChar* pName,
00314
const AxisChar* pNamespace);
00315
00316
00317
00318
00319
int AXISCALL getAttributeAsInt(
const AxisChar* pName,
00320
const AxisChar* pNamespace);
00321
xsd__boolean AXISCALL getAttributeAsBoolean(
const AxisChar* pName,
00322
const AxisChar* pNamespace);
00323
unsigned int AXISCALL getAttributeAsUnsignedInt(
const AxisChar* pName,
00324
const AxisChar* pNamespace);
00325
short AXISCALL getAttributeAsShort(
const AxisChar* pName,
00326
const AxisChar* pNamespace);
00327
unsigned short AXISCALL getAttributeAsUnsignedShort(
const AxisChar* pName,
00328
const AxisChar* pNamespace);
00329
char AXISCALL getAttributeAsByte(
const AxisChar* pName,
00330
const AxisChar* pNamespace);
00331
unsigned char AXISCALL getAttributeAsUnsignedByte(
const AxisChar* pName,
00332
const AxisChar* pNamespace);
00333
long AXISCALL getAttributeAsLong(
const AxisChar* pName,
00334
const AxisChar* pNamespace);
00335
long AXISCALL getAttributeAsInteger(
const AxisChar* pName,
00336
const AxisChar* pNamespace);
00337
unsigned long AXISCALL getAttributeAsUnsignedLong(
const AxisChar* pName,
00338
const AxisChar* pNamespace);
00339
float AXISCALL getAttributeAsFloat(
const AxisChar* pName,
00340
const AxisChar* pNamespace);
00341
double AXISCALL getAttributeAsDouble(
const AxisChar* pName,
00342
const AxisChar* pNamespace);
00343
double AXISCALL getAttributeAsDecimal(
const AxisChar* pName,
00344
const AxisChar* pNamespace);
00345 AxisChar* AXISCALL getAttributeAsString(
const AxisChar* pName,
00346
const AxisChar* pNamespace);
00347 AxisChar* AXISCALL getAttributeAsAnyURI(
const AxisChar* pName,
00348
const AxisChar* pNamespace);
00349 AxisChar* AXISCALL getAttributeAsQName(
const AxisChar* pName,
00350
const AxisChar* pNamespace);
00351
xsd__hexBinary AXISCALL getAttributeAsHexBinary(
const AxisChar* pName,
00352
const AxisChar* pNamespace);
00353
xsd__base64Binary AXISCALL getAttributeAsBase64Binary(
const AxisChar*
00354 pName,
const AxisChar* pNamespace);
00355
struct tm AXISCALL getAttributeAsDateTime(const AxisChar* pName,
00356
const AxisChar* pNamespace);
00357
struct tm AXISCALL getAttributeAsDate(const AxisChar* pName,
00358
const AxisChar* pNamespace);
00359
struct tm AXISCALL getAttributeAsTime(const AxisChar* pName,
00360
const AxisChar* pNamespace);
00361
long AXISCALL getAttributeAsDuration(
const AxisChar* pName,
00362
const AxisChar* pNamespace);
00363
00364
00365
void* AXISCALL getCmplxObject(
void* pDZFunct,
void* pCreFunct,
00366
void* pDelFunct,
const AxisChar* pName,
const AxisChar* pNamespace);
00367
00368 Axis_Array AXISCALL getCmplxArray(
void* pDZFunct,
void* pCreFunct,
00369
void* pDelFunct,
void* pSizeFunct,
const AxisChar* pName,
00370
const AxisChar* pNamespace);
00371
00372 Axis_Array AXISCALL getBasicArray(XSDTYPE nType,
const AxisChar* pName,
00373
const AxisChar* pNamespace);
00374
00375
int AXISCALL checkMessage(
const AxisChar* pName,
00376
const AxisChar* pNamespace);
00377
00378
void* AXISCALL checkFault(
const AxisChar* pName,
00379
const AxisChar* pNamespace);
00380
00381
int AXISCALL getStatus();
00382
00383 SOAPTransport* getTransport() {
return m_pTransport; }
00384 SoapSerializer* getSOAPSerializer() {
return (SoapSerializer*)m_pIWSSZ; }
00385
00392
void setProxy(
const char* pcProxyHost,
unsigned int uiProxyPort);
00393
00394
AnyType* AXISCALL getAnyObject();
00395
int AXISCALL addAnyObject(
AnyType* pAnyObject);
00396
const AxisChar* AXISCALL getNamespacePrefix(
const AxisChar* pNamespace);
00397
00398
private:
00399
int openConnection();
00400
void closeConnection();
00401
int makeArray();
00402
00403
private:
00404 ClientAxisEngine* m_pAxisEngine;
00405
00406
#ifdef WIN32
00407
#pragma warning (disable : 4251)
00408
#endif
00409
list<void*> m_handlerProperties;
00410
00411
#ifdef WIN32
00412
#pragma warning (default : 4251)
00413
#endif
00414
00415
00416
00417
00418
00419
00420 SoapSerializer* m_pIWSSZ;
00421 SoapDeSerializer* m_pIWSDZ;
00422
char* m_pcEndPointUri;
00423 AXIS_PROTOCOL_TYPE m_nTransportType;
00424
00425
00426
00427 SOAPTransport* m_pTransport;
00428
00429
00430
int m_nStatus;
00434 string m_strProxyHost;
00438
unsigned int m_uiProxyPort;
00442
bool m_bUseProxy;
00443
00449
bool m_bModuleInitialized;
00450
00454
bool m_bCallInitialized;
00455
00456
00457
char* m_pchSessionID;
00458
00459 };
00460 AXIS_CPP_NAMESPACE_END
00461
00462
#endif