00001 /* 00002 * Copyright 2003-2004 The Apache Software Foundation. 00003 // (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved 00004 * 00005 * Licensed under the Apache License, Version 2.0 (the "License"); 00006 * you may not use this file except in compliance with the License. 00007 * You may obtain a copy of the License at 00008 * 00009 * http://www.apache.org/licenses/LICENSE-2.0 00010 * 00011 * Unless required by applicable law or agreed to in writing, software 00012 * distributed under the License is distributed on an "AS IS" BASIS, 00013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00014 * See the License for the specific language governing permissions and 00015 * limitations under the License. 00016 * 00017 */ 00018 00019 #if !defined(_AXISUSERAPI_H____OF_AXIS_INCLUDED_) 00020 #define _AXISUSERAPI_H____OF_AXIS_INCLUDED_ 00021 00022 #include <axis/GDefine.hpp> 00023 #include <axis/TypeMapping.hpp> 00024 #include <time.h> 00025 #include <string.h> 00026 00027 AXIS_CPP_NAMESPACE_START 00028 00041 typedef AxisChar * xsd__string; 00046 typedef AxisChar * xsd__normalizedString; 00051 typedef AxisChar * xsd__token; 00056 typedef AxisChar * xsd__language; 00061 typedef AxisChar * xsd__Name; 00066 typedef AxisChar * xsd__NCName; 00071 typedef AxisChar * xsd__ID; 00076 typedef AxisChar * xsd__IDREF; 00081 typedef AxisChar * xsd__IDREFS; 00086 typedef AxisChar * xsd__ENTITY; 00091 typedef AxisChar * xsd__ENTITIES; 00096 typedef AxisChar * xsd__NMTOKEN; 00101 typedef AxisChar * xsd__NMTOKENS; 00106 #ifdef WIN32 00107 typedef __int64 xsd__integer; 00108 #else 00109 typedef long long xsd__integer; 00110 #endif 00111 00115 typedef int xsd__int; 00120 //FJP v Added 00121 #ifdef WIN32 00122 typedef __int64 xsd__long; 00123 #else 00124 typedef long long xsd__long; 00125 #endif 00126 //FJP ^ Added 00131 typedef short xsd__short; 00136 typedef double xsd__decimal; 00141 typedef float xsd__float; 00146 typedef double xsd__double; 00151 typedef enum { false_=0, true_ } xsd__boolean; 00156 typedef signed char xsd__byte; 00161 typedef AxisChar * xsd__QName; 00166 typedef AxisChar * xsd__NOTATION; 00171 typedef struct tm xsd__dateTime; 00176 typedef struct tm xsd__date; 00181 typedef struct tm xsd__time; 00186 typedef struct tm xsd__gYearMonth; 00191 typedef struct tm xsd__gYear; 00196 typedef struct tm xsd__gMonthDay; 00201 typedef struct tm xsd__gDay; 00206 typedef struct tm xsd__gMonth; 00211 typedef long xsd__duration; 00216 #ifdef WIN32 00217 typedef unsigned __int64 xsd__nonNegativeInteger; 00218 #else 00219 typedef unsigned long long xsd__nonNegativeInteger; 00220 #endif 00221 00225 typedef unsigned char xsd__unsignedByte; 00230 typedef unsigned int xsd__unsignedInt; 00235 #ifdef WIN32 00236 typedef unsigned __int64 xsd__unsignedLong; 00237 #else 00238 typedef unsigned long long xsd__unsignedLong; 00239 #endif 00240 00244 typedef unsigned short xsd__unsignedShort; 00249 #ifdef WIN32 00250 typedef __int64 xsd__nonPositiveInteger; 00251 #else 00252 typedef long long xsd__nonPositiveInteger; 00253 #endif 00254 00258 #ifdef WIN32 00259 typedef unsigned __int64 xsd__positiveInteger; 00260 #else 00261 typedef unsigned long long xsd__positiveInteger; 00262 #endif 00263 00267 #ifdef WIN32 00268 typedef __int64 xsd__negativeInteger; 00269 #else 00270 typedef long long xsd__negativeInteger; 00271 #endif 00272 00276 class STORAGE_CLASS_INFO xsd__base64Binary { 00277 public: 00278 00282 xsd__base64Binary(); 00283 00288 xsd__base64Binary(const xsd__base64Binary & original); 00289 00293 ~xsd__base64Binary(); 00294 00300 void set(xsd__unsignedByte * data, xsd__int size); 00301 00307 xsd__unsignedByte * get(xsd__int & size) const; 00308 00313 xsd__int getSize(void) const; 00314 00320 xsd__base64Binary & operator=(const xsd__base64Binary & original); 00321 private: 00325 xsd__unsignedByte * __ptr; 00326 00330 xsd__int __size; 00331 }; 00332 00337 class STORAGE_CLASS_INFO xsd__hexBinary { 00338 public: 00342 xsd__hexBinary(); 00343 00348 xsd__hexBinary(const xsd__hexBinary & original); 00349 00353 ~xsd__hexBinary(); 00354 00360 void set(xsd__unsignedByte * data, xsd__int size); 00361 00367 xsd__unsignedByte * get(xsd__int & size) const; 00368 00373 xsd__int getSize(void) const; 00374 00380 xsd__hexBinary & operator=(const xsd__hexBinary & original); 00381 private: 00385 xsd__unsignedByte * __ptr; 00386 00390 xsd__int __size; 00391 }; 00392 00397 typedef AxisChar * xsd__anyURI; 00398 00404 typedef enum { 00405 RPC_ENCODED, /*default*/ 00406 DOC_LITERAL, 00407 RPC_LITERAL 00408 } AXIS_BINDING_STYLE; 00409 00415 class STORAGE_CLASS_INFO Axis_Array { 00416 public: 00420 Axis_Array(); 00421 00426 Axis_Array(const Axis_Array & original); 00427 00431 virtual ~Axis_Array(); 00432 00437 void clone(const Axis_Array & original); 00438 00443 virtual Axis_Array * clone() const; 00444 00445 00453 void set(void** array, int size, XSDTYPE type); 00454 00462 void** get(int& size, XSDTYPE& type) const; 00463 00467 void clear(); 00468 00474 void addElement(void* element); 00475 00476 friend class SoapDeSerializer; 00477 friend class SoapSerializer; 00478 00479 protected: 00483 void** m_Array; 00484 00488 int m_Size; 00489 00493 XSDTYPE m_Type; 00494 00499 bool m_belongsToAxisEngine; 00500 }; 00501 00502 #define AXIS_OUT_PARAM 00503 00504 static const xsd__boolean xsd_boolean_true = (xsd__boolean) 1; 00505 static const xsd__boolean xsd_boolean_false = (xsd__boolean) 0; 00506 00507 typedef enum { 00508 NORMAL_CHANNEL=0, 00509 SSL_CHANNEL 00510 } AXIS_CHANNEL_TYPE; 00511 00516 typedef char* XML_String; 00517 00522 class STORAGE_CLASS_INFO AnyType 00523 { 00524 public: 00525 AnyType(); 00526 ~AnyType(); 00527 00531 XML_String* _array; 00532 00536 int _size; 00537 }; 00538 00539 AXIS_CPP_NAMESPACE_END 00540 #endif