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