stdsoap2.h

00001 /*
00002 
00003 stdsoap2.h 2.5.1
00004 
00005 Runtime environment.
00006 
00007 gSOAP XML Web services tools
00008 Copyright (C) 2000-2004, Robert van Engelen, Genivia, Inc. All Rights Reserved.
00009 
00010 Contributors:
00011 
00012 Wind River Systems, Inc., for the following additions (marked WR[...]) :
00013   - vxWorks compatible
00014   - Support for IPv6.
00015 
00016 --------------------------------------------------------------------------------
00017 gSOAP public license.
00018 
00019 The contents of this file are subject to the gSOAP Public License Version 1.3
00020 (the "License"); you may not use this file except in compliance with the
00021 License. You may obtain a copy of the License at
00022 http://www.cs.fsu.edu/~engelen/soaplicense.html
00023 Software distributed under the License is distributed on an "AS IS" basis,
00024 WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00025 for the specific language governing rights and limitations under the License.
00026 
00027 The Initial Developer of the Original Code is Robert A. van Engelen.
00028 Copyright (C) 2000-2004 Robert A. van Engelen, Genivia inc. All Rights Reserved.
00029 --------------------------------------------------------------------------------
00030 GPL license.
00031 
00032 This program is free software; you can redistribute it and/or modify it under
00033 the terms of the GNU General Public License as published by the Free Software
00034 Foundation; either version 2 of the License, or (at your option) any later
00035 version.
00036 
00037 This program is distributed in the hope that it will be useful, but WITHOUT ANY
00038 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
00039 PARTICULAR PURPOSE. See the GNU General Public License for more details.
00040 
00041 You should have received a copy of the GNU General Public License along with
00042 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
00043 Place, Suite 330, Boston, MA 02111-1307 USA
00044 
00045 Author contact information:
00046 engelen@genivia.com / engelen@acm.org
00047 --------------------------------------------------------------------------------
00048 */
00049 
00050 #ifdef WITH_SOAPDEFS_H
00051 # include "soapdefs.h"          /* include user-defined stuff */
00052 #endif
00053 
00054 #ifndef _THREAD_SAFE
00055 # define _THREAD_SAFE
00056 #endif
00057 
00058 #ifndef OPENSERVER
00059 # ifndef _REENTRANT
00060 #  define _REENTRANT
00061 # endif
00062 #endif
00063 
00064 #ifndef SOAP_BEGIN_NAMESPACE
00065 # define SOAP_BEGIN_NAMESPACE(name)
00066 #endif
00067 
00068 #ifndef SOAP_END_NAMESPACE
00069 # define SOAP_END_NAMESPACE(name)
00070 #endif
00071 
00072 #ifndef SOAP_FMAC1      /* stdsoap2.h declaration macro */
00073 # define SOAP_FMAC1
00074 #endif
00075 
00076 #ifndef SOAP_FMAC2      /* stdsoap2.h declaration macro */
00077 # define SOAP_FMAC2
00078 #endif
00079 
00080 #ifndef SOAP_FMAC3      /* (de)serializer declaration macro */
00081 # define SOAP_FMAC3
00082 #endif
00083 
00084 #ifndef SOAP_FMAC4      /* (de)serializer declaration macro */
00085 # define SOAP_FMAC4
00086 #endif
00087 
00088 #ifndef SOAP_FMAC5      /* stub/skeleton declaration macro */
00089 # define SOAP_FMAC5
00090 #endif
00091 
00092 #ifndef SOAP_FMAC6      /* stub/skeleton declaration macro */
00093 # define SOAP_FMAC6
00094 #endif
00095 
00096 #ifndef SOAP_CMAC       /* class declaration macro */
00097 # define SOAP_CMAC
00098 #endif
00099 
00100 #ifndef SOAP_NMAC       /* namespace table declaration macro */
00101 # define SOAP_NMAC
00102 #endif
00103 
00104 #ifndef SOAP_SOURCE_STAMP
00105 # define SOAP_SOURCE_STAMP(str)
00106 #endif
00107 
00108 #ifdef WITH_LEANER
00109 # ifndef WITH_LEAN
00110 #  define WITH_LEAN
00111 # endif
00112 #endif
00113 
00114 #ifdef WITH_LEAN
00115 # ifdef WITH_COOKIES
00116 #  error "Cannot build WITH_LEAN code WITH_COOKIES enabled"
00117 # endif
00118 #endif
00119 
00120 #ifndef STDSOAP_H
00121 #define STDSOAP_H
00122 
00123 /* WR[ */
00124 #if (defined(__vxworks) || defined(__VXWORKS__))
00125 #define VXWORKS
00126 #endif
00127 /* ]WR */
00128 
00129 #ifdef _WIN32
00130 # ifndef WIN32
00131 #  define WIN32
00132 # endif
00133 #endif
00134 
00135 #ifdef UNDER_CE
00136 # ifndef WIN32
00137 #  define WIN32
00138 # endif
00139 #endif
00140 
00141 #ifdef __BORLANDC__
00142 # ifdef __WIN32__
00143 #  ifndef WIN32
00144 #   define WIN32
00145 #  endif
00146 # endif
00147 #endif
00148 
00149 #ifdef __CYGWIN__
00150 # ifndef CYGWIN
00151 #  define CYGWIN
00152 # endif
00153 #endif
00154 
00155 #ifdef __SYMBIAN32__ 
00156 # define SYMBIAN
00157 #endif
00158 
00159 #ifdef __MWERKS__
00160 # define PALM
00161 #endif
00162 
00163 #ifdef PALM_GCC
00164 # define PALM
00165 #endif
00166 
00167 #ifdef HAVE_CONFIG_H
00168 # include "config.h"
00169 #else
00170 # if defined(UNDER_CE)
00171 #  define WITH_LEAN
00172 # elif defined(WIN32)
00173 #  define HAVE_STRRCHR
00174 #  define HAVE_STRTOD
00175 #  define HAVE_STRTOL
00176 #  define HAVE_STRTOUL
00177 #  define HAVE_SYS_TIMEB_H
00178 #  define HAVE_FTIME
00179 # elif defined(CYGWIN)
00180 #  define HAVE_STRRCHR
00181 #  define HAVE_STRTOD
00182 #  define HAVE_STRTOL
00183 #  define HAVE_STRTOUL
00184 #  define HAVE_SYS_TIMEB_H
00185 #  define HAVE_FTIME
00186 #  define HAVE_RAND_R
00187 #  define HAVE_GMTIME_R
00188 #  define HAVE_LOCALTIME_R
00189 # elif defined(__APPLE__)
00190 #  define HAVE_STRRCHR
00191 #  define HAVE_STRTOD
00192 #  define HAVE_STRTOL
00193 #  define HAVE_STRTOUL
00194 #  define HAVE_RAND_R
00195 #  define HAVE_GMTIME_R
00196 #  define HAVE_LOCALTIME_R
00197 #  define HAVE_TIMEGM
00198 # elif defined(_AIXVERSION_431)
00199 #  define HAVE_STRRCHR
00200 #  define HAVE_STRTOD
00201 #  define HAVE_STRTOL
00202 #  define HAVE_STRTOUL
00203 #  define HAVE_SYS_TIMEB_H
00204 #  define HAVE_FTIME
00205 #  define HAVE_RAND_R
00206 #  define HAVE_GMTIME_R
00207 #  define HAVE_LOCALTIME_R
00208 # elif defined(HP_UX)
00209 #  define HAVE_STRRCHR
00210 #  define HAVE_STRTOD
00211 #  define HAVE_STRTOL
00212 #  define HAVE_STRTOUL
00213 #  define HAVE_SYS_TIMEB_H
00214 #  define HAVE_FTIME
00215 #  define HAVE_RAND_R
00216 #  define HAVE_GMTIME_R
00217 #  define HAVE_LOCALTIME_R
00218 # elif defined(FREEBSD)
00219 #  define HAVE_STRRCHR
00220 #  define HAVE_STRTOD
00221 #  define HAVE_STRTOL
00222 #  define HAVE_STRTOUL
00223 #  define HAVE_GETTIMEOFDAY
00224 #  define HAVE_RAND_R
00225 #  define HAVE_GMTIME_R
00226 #  define HAVE_LOCALTIME_R
00227 # elif defined(__VMS)
00228 #  define HAVE_STRRCHR
00229 #  define HAVE_STRTOD
00230 #  define HAVE_STRTOL
00231 #  define HAVE_STRTOUL
00232 #  define HAVE_SYS_TIMEB_H
00233 #  define HAVE_FTIME
00234 #  define HAVE_RAND_R
00235 #  define HAVE_GMTIME_R
00236 #  define HAVE_LOCALTIME_R
00237 # elif defined(__GLIBC__)
00238 #  define HAVE_STRRCHR
00239 #  define HAVE_STRTOD
00240 #  define HAVE_STRTOL
00241 #  define HAVE_STRTOUL
00242 #  define HAVE_SYS_TIMEB_H
00243 #  define HAVE_FTIME
00244 #  define HAVE_RAND_R
00245 #  define HAVE_GMTIME_R
00246 #  define HAVE_LOCALTIME_R
00247 #  define HAVE_TIMEGM
00248 # elif defined(TRU64)
00249 #  define HAVE_STRRCHR
00250 #  define HAVE_STRTOD
00251 #  define HAVE_STRTOL
00252 #  define HAVE_STRTOUL
00253 #  define HAVE_GETTIMEOFDAY
00254 #  define HAVE_SYS_TIMEB_H
00255 #  define HAVE_RAND_R
00256 #  define HAVE_GMTIME_R
00257 #  define HAVE_LOCALTIME_R
00258 # elif defined(MAC_CARBON)
00259 #  define HAVE_STRRCHR
00260 #  define HAVE_STRTOD
00261 #  define HAVE_STRTOL
00262 #  define HAVE_STRTOUL
00263 #  define HAVE_FTIME
00264 #  define HAVE_RAND_R
00265 #  define HAVE_GETHOSTBYNAME_R
00266 #  define HAVE_GMTIME_R
00267 #  define HAVE_LOCALTIME_R
00268 # elif defined(PALM)
00269 #  define HAVE_STRTOD   /* strtod() is defined in palmmissing.h */
00270 #  ifndef CONST2
00271 #   define CONST2
00272 #  endif
00273 #  define WITH_LEAN
00274 #  define WITH_NONAMESPACES
00275 #  define _LINUX_CTYPE_H
00276 #  include <sys_types.h>
00277    typedef WChar wchar_t;
00278 #  define IGNORE_STDIO_STUBS
00279    typedef Int32 time_t;
00280 #  define tm HostTmType
00281 #  define strftime HostStrFTime
00282 #  define mktime HostMkTime
00283 #  define localtime HostLocalTime
00284 #  define tm_year tm_year_
00285 #  define tm_hour tm_hour_
00286 #  define tm_mon tm_mon_
00287 #  define tm_min tm_min_
00288 #  define tm_sec tm_sec_
00289 #  define tm_mday tm_mday_
00290 #  define tm_isdst tm_isdst_
00291 #  include <StdIOPalm.h>
00292 #  define O_NONBLOCK FNONBIO
00293 #  include <sys_time.h>
00294 #  if 1
00295     void displayText(char *text);
00296 #   define pdebug(s) displayText(s) 
00297 #   define pdebugV(s,p) sprintf(buff,s,p); displayText(buff)
00298 #  else
00299 #   define pdebug(s) WinDrawChars(s,strlen(s),10,10) 
00300 #   define pdebugV(s,p) sprintf(buff,s,p); WinDrawChars(buff,strlen(buff),10,10)
00301 #  endif
00302 #  include "palmmissing.h"
00303 #  include "slib_socket.h"
00304 # elif defined(SYMBIAN)
00305 #  define WITH_LEAN
00306 #  define WITH_NONAMESPACES
00307 #  define CONST2 const
00308 #  undef SOAP_FMAC1
00309 #  define SOAP_FMAC1 EXPORT_C
00310 #  ifdef __cplusplus
00311 #   include <e32std.h>
00312 #  else
00313 #   define TInt64 long
00314 #  endif
00315 /* WR[ */
00316 # elif defined(VXWORKS)
00317 #  define HAVE_STRRCHR
00318 #  define HAVE_STRTOD
00319 #  define HAVE_STRTOL
00320 #  define HAVE_STRTOUL
00321 #  define HAVE_RAND_R
00322 #  define HAVE_PGMTIME_R
00323 #  define HAVE_PLOCALTIME_R
00324 #  define HAVE_MKTIME
00325 /* ]WR */
00326 # else
00327 #  define HAVE_STRRCHR
00328 #  define HAVE_STRTOD
00329 #  define HAVE_STRTOL
00330 #  define HAVE_STRTOUL
00331 #  define HAVE_SYS_TIMEB_H
00332 #  define HAVE_FTIME
00333 #  define HAVE_RAND_R
00334 #  define HAVE_GETHOSTBYNAME_R
00335 #  define HAVE_GMTIME_R
00336 #  define HAVE_LOCALTIME_R
00337 # endif
00338 #endif
00339 
00340 #if defined(TRU64)
00341 # define SOAP_LONG_FORMAT "%ld"
00342 # define SOAP_ULONG_FORMAT "%lu"
00343 #elif defined(WIN32)
00344 # define SOAP_LONG_FORMAT "%I64d"
00345 # define SOAP_ULONG_FORMAT "%I64u"
00346 #endif
00347 
00348 #ifndef SOAP_LONG_FORMAT
00349 # define SOAP_LONG_FORMAT "%lld"        /* printf format for 64 bit ints */
00350 #endif
00351 
00352 #ifndef SOAP_ULONG_FORMAT
00353 # define SOAP_ULONG_FORMAT "%llu"       /* printf format for unsigned 64 bit ints */
00354 #endif
00355 
00356 #ifndef SOAP_MALLOC                     /* use libc malloc */
00357 # define SOAP_MALLOC(n) malloc(n)
00358 #endif
00359 
00360 #ifndef SOAP_FREE                       /* use libc free */
00361 # define SOAP_FREE(p) free(p)
00362 #endif
00363 
00364 #include <stdlib.h>
00365 
00366 #ifndef PALM
00367 # include <stdio.h>
00368 #endif
00369 
00370 #ifndef PALM_GCC
00371 # include <string.h>
00372 #endif
00373 
00374 #include <ctype.h>      /* for tolower() */
00375 #include <limits.h>
00376 
00377 #if defined(__cplusplus) && !defined(UNDER_CE)
00378 # include <iostream>
00379 using namespace std;
00380 #endif
00381 
00382 #ifndef UNDER_CE
00383 # ifndef PALM
00384 #  include <errno.h>
00385 #  ifndef MAC_CARBON
00386 #   include <sys/types.h>
00387 #  endif
00388 #  ifndef WITH_LEAN
00389 #   ifdef HAVE_SYS_TIMEB_H
00390 #    include <sys/timeb.h>              /* for ftime() */
00391 #   endif
00392 #   include <time.h>
00393 #  endif
00394 # endif
00395 #endif
00396 
00397 #ifdef OPENSERVER
00398 # include <sys/socket.h>
00399 # include <sys/stream.h>
00400 # include <sys/protosw.h>
00401   extern int h_errno;
00402 #endif
00403 
00404 #ifndef MAC_CARBON
00405 # ifndef WIN32
00406 #  ifndef PALM
00407 #   include <sys/socket.h>
00408 /* WR[ */
00409 #   ifdef VXWORKS
00410 #    include <sockLib.h>
00411 #   endif
00412 #   ifndef VXWORKS
00413 /* ]WR */
00414 #    ifndef SYMBIAN
00415 #     include <strings.h>
00416 #    endif
00417 /* WR[ */
00418 #   endif
00419 /* ]WR */
00420 #   ifdef SUN_OS
00421 #    include <sys/stream.h>             /* SUN */
00422 #    include <sys/socketvar.h>          /* SUN < 2.8 (?) */
00423 #   endif
00424 /* WR[ */
00425 #   ifdef VXWORKS
00426 #    include <sys/times.h>
00427 #   else
00428 /* ]WR */
00429 #    include <sys/time.h>
00430 /* WR[ */
00431 #   endif
00432 /* ]WR */
00433 #   include <netinet/in.h>
00434 #   include <netinet/tcp.h>             /* TCP_NODELAY */
00435 #   include <arpa/inet.h>
00436 #  endif
00437 # endif
00438 #endif
00439 
00440 #ifdef WITH_FASTCGI
00441 # include <fcgi_stdio.h>
00442 #endif
00443 
00444 #ifdef WITH_OPENSSL
00445 # define OPENSSL_NO_KRB5
00446 # include <openssl/ssl.h>
00447 # include <openssl/err.h>
00448 # include <openssl/rand.h>
00449 # ifndef ALLOW_OLD_VERSIONS
00450 #  if (OPENSSL_VERSION_NUMBER < 0x00905100L)
00451 #   error "Must use OpenSSL 0.9.6 or later"
00452 #  endif
00453 # endif
00454 #endif
00455 
00456 #ifdef WITH_GZIP
00457 # ifndef WITH_ZLIB
00458 #  define WITH_ZLIB
00459 # endif
00460 #endif
00461 
00462 #ifdef WITH_CASEINSENSITIVETAGS
00463 # define SOAP_STRCMP soap_tag_cmp       /* case insensitve XML element/attribute names */
00464 #else
00465 # define SOAP_STRCMP strcmp             /* case sensitive XML element/attribute names */
00466 #endif
00467 
00468 #ifdef WITH_ZLIB
00469 # include <zlib.h>
00470 #endif
00471 
00472 #ifndef PALM_GCC
00473 # include <math.h>      /* for isnan() */
00474 #endif
00475 
00476 /* #define DEBUG */ /* Uncomment to debug sending (in file SENT.log) receiving (in file RECV.log) and messages (in file TEST.log) */
00477 
00478 #ifdef __cplusplus
00479 extern "C" {
00480 #endif
00481 
00482 #define soap_get0(soap) (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx])
00483 #define soap_get1(soap) (((soap)->bufidx>=(soap)->buflen && soap_recv(soap)) ? EOF : (unsigned char)(soap)->buf[(soap)->bufidx++])
00484 #define soap_revget1(soap) ((soap)->bufidx--)
00485 #define soap_unget(soap, c) ((soap)->ahead = c)
00486 #define soap_register_plugin(soap, plugin) soap_register_plugin_arg(soap, plugin, NULL)
00487 #define soap_imode(soap, n) ((soap)->mode = (soap)->imode = (n))
00488 #define soap_set_imode(soap, n) ((soap)->mode = (soap)->imode |= (n))
00489 #define soap_clr_imode(soap, n) ((soap)->mode = (soap)->imode &= ~(n))
00490 #define soap_omode(soap, n) ((soap)->mode = (soap)->omode = (n))
00491 #define soap_set_omode(soap, n) ((soap)->mode = (soap)->omode |= (n))
00492 #define soap_clr_omode(soap, n) ((soap)->mode = (soap)->omode &= ~(n))
00493 #define soap_destroy(soap) soap_delete((soap), NULL)
00494 
00495 #ifdef WIN32
00496 # ifndef UNDER_CE
00497 #  include <io.h>
00498 #  include <fcntl.h>
00499 # endif
00500 # include <winsock.h>
00501 /* WR[ */
00502 # ifdef WITH_IPV6
00503 #  include <ws2tcpip.h>
00504 #  include <wspiapi.h>
00505 # endif
00506 #else
00507 # ifdef VXWORKS
00508 #  include <hostLib.h>
00509 #  include <ioctl.h>
00510 #  include <ioLib.h>
00511 # endif
00512 /* ]WR */
00513 # ifndef MAC_CARBON
00514 #  ifndef PALM
00515 #   include <netdb.h>
00516 #   include <netinet/in.h>
00517 #  endif
00518 #  include <unistd.h>
00519 #  include <fcntl.h>
00520 # endif
00521 #endif
00522 
00523 #ifdef WIN32
00524 # define SOAP_SOCKET SOCKET
00525 #else
00526 # define SOAP_SOCKET int
00527 # define closesocket(n) close(n)
00528 #endif
00529 
00530 #define soap_valid_socket(n) ((n) >= 0)
00531 #define SOAP_INVALID_SOCKET (-1)
00532 
00533 /* WR[ */
00534 #ifdef VXWORKS
00535 # ifdef __INCmathh 
00536 #  define _MATH_H
00537 #   include <private/mathP.h>
00538 #   define isnan(num) isNan(num)
00539 # endif
00540 #endif
00541 
00542 #ifdef WIN32 
00543 # define _MATH_H
00544 # include <float.h>
00545 # define isnan(num) _isnan(num)
00546 #endif
00547 /* ]WR */
00548 
00549 #if (!defined(_MATH_H) && !defined(_MATH_INCLUDED))
00550 # ifndef isnan
00551 #  define isnan(_) (0)
00552 # endif
00553 #endif
00554 
00555 extern const struct soap_double_nan { unsigned int n1, n2; } soap_double_nan;
00556 
00557 #if defined(SYMBIAN)
00558 # define LONG64 TInt64
00559 # define ULONG64 TInt64
00560 #elif !defined(WIN32)
00561 # define LONG64 long long
00562 # define ULONG64 unsigned LONG64
00563 #elif defined(UNDER_CE)
00564 # define LONG64 __int64
00565 # define ULONG64 unsigned LONG64
00566 #elif defined(__BORLANDC__)
00567 # define LONG64 __int64
00568 # define ULONG64 unsigned LONG64
00569 #endif
00570 
00571 #ifdef WIN32
00572 # define SOAP_EINTR WSAEINTR
00573 # define SOAP_EAGAIN WSAEWOULDBLOCK
00574 # define SOAP_EWOULDBLOCK WSAEWOULDBLOCK
00575 # define SOAP_EINPROGRESS WSAEINPROGRESS
00576 #else
00577 # define SOAP_EINTR EINTR
00578 # define SOAP_EAGAIN EAGAIN
00579 # ifdef SYMBIAN
00580 #  define SOAP_EWOULDBLOCK 9898
00581 #  define SOAP_EINPROGRESS 9899
00582 # else
00583 #  define SOAP_EWOULDBLOCK EWOULDBLOCK
00584 #  define SOAP_EINPROGRESS EINPROGRESS
00585 # endif
00586 #endif
00587 
00588 #ifdef WIN32
00589 # ifdef UNDER_CE
00590 #  define soap_errno GetLastError()
00591 #  define soap_socket_errno GetLastError()
00592 # else
00593 #  define soap_errno GetLastError()
00594 #  define soap_socket_errno WSAGetLastError()
00595 # endif
00596 #else
00597 # define soap_errno errno
00598 # define soap_socket_errno errno
00599 #endif
00600 
00601 #ifndef SOAP_BUFLEN
00602 # ifndef WITH_LEAN
00603 #  define SOAP_BUFLEN  (32768) /* buffer length for socket packets, also used by gethostbyname_r so don't make this too small */
00604 # else
00605 #  define SOAP_BUFLEN   (2048)
00606 # endif
00607 #endif
00608 #ifndef SOAP_PTRHASH
00609 # ifndef WITH_LEAN
00610 #  define SOAP_PTRHASH  (1024) /* size of pointer analysis hash table (must be power of 2) */
00611 # else
00612 #  define SOAP_PTRHASH    (16)
00613 # endif
00614 #endif
00615 #ifndef SOAP_IDHASH
00616 # ifndef WITH_LEAN
00617 #  define SOAP_IDHASH    (256) /* size of hash table for receiving id/href's */
00618 # else
00619 #  define SOAP_IDHASH     (16)
00620 # endif
00621 #endif
00622 #ifndef SOAP_BLKLEN
00623 # define SOAP_BLKLEN     (256) /* size of blocks to collect long strings and XML attributes */
00624 #endif
00625 #ifndef SOAP_TAGLEN
00626 # define SOAP_TAGLEN     (256) /* maximum length of XML element tag/attribute name + 1 */
00627 #endif
00628 #ifndef SOAP_HDRLEN
00629 # ifndef WITH_LEAN
00630 #  define SOAP_HDRLEN   (8192) /* maximum length of HTTP header line (must be >4096 to read cookies) */
00631 # else
00632 #  define SOAP_HDRLEN   (1024)
00633 # endif
00634 #endif
00635 #ifndef SOAP_MAXDIMS
00636 # define SOAP_MAXDIMS    (16) /* maximum array dimensions (array nestings) must be less than 64 to protect soap->tmpbuf */
00637 #endif
00638 
00639 #ifndef SOAP_MAXLOGS
00640 # define SOAP_MAXLOGS     (3) /* max number of debug logs per struct soap environment */
00641 # define SOAP_INDEX_RECV  (0)
00642 # define SOAP_INDEX_SENT  (1)
00643 # define SOAP_INDEX_TEST  (2)
00644 #endif
00645 
00646 #ifndef SOAP_MAXKEEPALIVE
00647 # define SOAP_MAXKEEPALIVE (100) /* max iterations to keep server connection alive */
00648 #endif
00649 
00650 /* WR[ */
00651 #ifdef VXWORKS
00652 # ifndef FLT_MAX
00653 #  define FLT_MAX _ARCH_FLT_MAX
00654 # endif
00655 # ifndef DBL_MAX
00656 #  define DBL_MAX _ARCH_DBL_MAX
00657 # endif
00658 #endif
00659 /* ]WR */
00660 
00661 #ifndef FLT_NAN
00662 # if (defined(_MATH_H) || defined(_MATH_INCLUDED))
00663 #  define FLT_NAN (*(float*)&soap_double_nan)
00664 # else
00665 #  define FLT_NAN (0.0)
00666 # endif
00667 #endif
00668 
00669 #ifndef FLT_PINFTY
00670 # ifdef FLT_MAX
00671 #  define FLT_PINFTY FLT_MAX
00672 # else
00673 #  ifdef HUGE_VAL
00674 #    define FLT_PINFTY (float)HUGE_VAL
00675 #  else
00676 #   ifdef FLOAT_MAX
00677 #    define FLT_PINFTY FLOAT_MAX
00678 #   else
00679 #    define FLT_PINFTY (3.40282347e+38)
00680 #   endif
00681 #  endif
00682 # endif
00683 #endif
00684 
00685 #ifndef FLT_NINFTY
00686 # define FLT_NINFTY (-FLT_PINFTY)
00687 #endif
00688 
00689 #ifndef DBL_NAN
00690 # if (defined(_MATH_H) || defined(_MATH_INCLUDED))
00691 #  define DBL_NAN (*(double*)&soap_double_nan)
00692 # else
00693 #  define DBL_NAN (0.0)
00694 # endif
00695 #endif
00696 #ifndef DBL_PINFTY
00697 # ifdef DBL_MAX
00698 #  define DBL_PINFTY DBL_MAX
00699 # else
00700 #  ifdef HUGE_VAL
00701 #   define DBL_PINFTY (double)HUGE_VAL
00702 #  else
00703 #   ifdef DOUBLE_MAX
00704 #    define DBL_PINFTY DOUBLE_MAX
00705 #   else
00706 #    define DBL_PINFTY (1.7976931348623157e+308)
00707 #   endif
00708 #  endif
00709 # endif
00710 #endif
00711 
00712 #ifndef DBL_NINFTY
00713 # define DBL_NINFTY (-DBL_PINFTY)
00714 #endif
00715 
00716 /* gSOAP error codes */
00717 
00718 #define SOAP_EOF                        EOF
00719 #define SOAP_ERR                        EOF
00720 #define SOAP_OK                         0
00721 #define SOAP_CLI_FAULT                  1
00722 #define SOAP_SVR_FAULT                  2
00723 #define SOAP_TAG_MISMATCH               3
00724 #define SOAP_TYPE                       4
00725 #define SOAP_SYNTAX_ERROR               5
00726 #define SOAP_NO_TAG                     6
00727 #define SOAP_IOB                        7
00728 #define SOAP_MUSTUNDERSTAND             8
00729 #define SOAP_NAMESPACE                  9
00730 #define SOAP_OBJ_MISMATCH               10
00731 #define SOAP_FATAL_ERROR                11
00732 #define SOAP_FAULT                      12
00733 #define SOAP_NO_METHOD                  13
00734 #define SOAP_GET_METHOD                 14
00735 #define SOAP_EOM                        15
00736 #define SOAP_NULL                       16
00737 #define SOAP_MULTI_ID                   17
00738 #define SOAP_MISSING_ID                 18
00739 #define SOAP_HREF                       19
00740 #define SOAP_TCP_ERROR                  20
00741 #define SOAP_HTTP_ERROR                 21
00742 #define SOAP_SSL_ERROR                  22
00743 #define SOAP_ZLIB_ERROR                 23
00744 #define SOAP_DIME_ERROR                 24
00745 #define SOAP_EOD                        25
00746 #define SOAP_VERSIONMISMATCH            26
00747 #define SOAP_DIME_MISMATCH              27
00748 #define SOAP_PLUGIN_ERROR               28
00749 #define SOAP_DATAENCODINGUNKNOWN        29
00750 #define SOAP_REQUIRED                   30
00751 #define SOAP_OCCURS                     31
00752 
00753 #define soap_xml_error_check(e) ((e) == SOAP_TAG_MISMATCH || (e) == SOAP_SYNTAX_ERROR || (e) == SOAP_NAMESPACE || (e) == SOAP_MULTI_ID || (e) == SOAP_MISSING_ID || (e) == SOAP_REQIRED || (e) == SOAP_OCCURS)
00754 #define soap_soap_error_check(e) ((e) == SOAP_CLI_FAULT || (e) == SOAP_SVR_FAULT || (e) == SOAP_VERSIONMISMATCH || (e) == SOAP_MUSTUNDERSTAND || (e) == SOAP_FAULT || (e) == SOAP_NO_METHOD || (e) == SOAP_OBJ_MISMATCH || (e) == SOAP_NULL)
00755 #define soap_tcp_error_check(e) ((e) == SOAP_EOF || (e) == SOAP_TCP_ERROR)
00756 #define soap_ssl_error_check(e) ((e) == SOAP_SSL_ERROR)
00757 #define soap_zlib_error_check(e) ((e) == SOAP_ZLIB_ERROR)
00758 #define soap_dime_error_check(e) ((e) == SOAP_DIME_ERROR || (e) == SOAP_DIME_MISMATCH)
00759 #define soap_http_error_check(e) ((e) == SOAP_HTTP_ERROR || (e) == SOAP_GET_METHOD || ((e) >= 100 && (e) < 600))
00760 
00761 /* gSOAP HTTP response status codes 100 to 600 are reserved */
00762 
00763 /* Special gSOAP HTTP response status codes */
00764 
00765 #define SOAP_STOP               1000    /* No HTTP response */
00766 #define SOAP_HTML               1001    /* Custom HTML response */
00767 #define SOAP_FILE               1002    /* Custom file-based response */
00768 
00769 /* gSOAP HTTP request status codes */
00770 
00771 #define SOAP_POST               1003
00772 #define SOAP_GET                1104
00773 
00774 /* gSOAP DIME */
00775 
00776 #define SOAP_DIME_CF            0x01
00777 #define SOAP_DIME_ME            0x02
00778 #define SOAP_DIME_MB            0x04
00779 #define SOAP_DIME_VERSION       0x08 /* DIME version 1 */
00780 #define SOAP_DIME_MEDIA         0x10
00781 #define SOAP_DIME_ABSURI        0x20
00782 
00783 /* gSOAP ZLIB */
00784 
00785 #define SOAP_ZLIB_NONE          0x00
00786 #define SOAP_ZLIB_DEFLATE       0x01
00787 #define SOAP_ZLIB_INFLATE       0x02
00788 #define SOAP_ZLIB_GZIP          0x02
00789 
00790 /* gSOAP transport, connection, and content encoding modes */
00791 
00792 #define SOAP_IO                 0x000003
00793 #define SOAP_IO_FLUSH           0x000000        /* flush output immediately, no buffering */
00794 #define SOAP_IO_BUFFER          0x000001        /* buffer output in packets of size SOAP_BUFLEN */
00795 #define SOAP_IO_STORE           0x000002        /* store entire output to determine length for transport */
00796 #define SOAP_IO_CHUNK           0x000003        /* use HTTP chunked transfer AND buffer packets */
00797 
00798 #define SOAP_IO_LENGTH          0x000004
00799 #define SOAP_IO_KEEPALIVE       0x000008
00800 
00801 #define SOAP_ENC_XML            0x000010        /* plain XML encoding, no HTTP header */
00802 #define SOAP_ENC_DIME           0x000020
00803 #define SOAP_ENC_ZLIB           0x000040
00804 #define SOAP_ENC_SSL            0x000080
00805 
00806 #define SOAP_XML_STRICT         0x000100        /* input mode flag */
00807 #define SOAP_XML_CANONICAL      0x000200        /* output mode flag */
00808 #define SOAP_XML_TREE           0x000400
00809 #define SOAP_XML_GRAPH          0x000800
00810 #define SOAP_XML_NIL            0x001000
00811 #define SOAP_XML_DOM            0x002000
00812 
00813 #define SOAP_C_NOIOB            0x010000
00814 #define SOAP_C_UTFSTRING        0x020000
00815 #define SOAP_C_LATIN            0x040000
00816 
00817 #define SOAP_DOM_TREE           0x100000
00818 #define SOAP_DOM_NODE           0x200000
00819 
00820 #define SOAP_IO_DEFAULT         SOAP_IO_FLUSH
00821 
00822 /* SSL client/server authentication settings */
00823 
00824 #define SOAP_SSL_NO_AUTHENTICATION              0x00    /* for testing purposes */
00825 #define SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION  0x01    /* client requires server to authenticate */
00826 #define SOAP_SSL_REQUIRE_CLIENT_AUTHENTICATION  0x02    /* server requires client to authenticate */
00827 
00828 #define SOAP_SSL_DEFAULT                        SOAP_SSL_REQUIRE_SERVER_AUTHENTICATION
00829 
00830 /* */
00831 
00832 #define SOAP_BEGIN              0
00833 #define SOAP_IN_ENVELOPE        2
00834 #define SOAP_IN_HEADER          3
00835 #define SOAP_END_HEADER         4
00836 #define SOAP_IN_BODY            5
00837 #define SOAP_END_BODY           6
00838 #define SOAP_END_ENVELOPE       7
00839 #define SOAP_END                8
00840 
00841 /* DEBUG macros */
00842 
00843 #ifndef WITH_LEAN
00844 # ifdef DEBUG
00845 #  ifndef SOAP_DEBUG
00846 #   define SOAP_DEBUG
00847 #  endif
00848 # endif
00849 #endif
00850 
00851 #ifdef SOAP_DEBUG
00852 # ifndef SOAP_MESSAGE
00853 #  define SOAP_MESSAGE fprintf
00854 # endif
00855 # ifndef DBGLOG
00856 #  define DBGLOG(DBGFILE, CMD) \
00857 { if (soap)\
00858   { if (!soap->fdebug[SOAP_INDEX_##DBGFILE])\
00859       soap_open_logfile(soap, SOAP_INDEX_##DBGFILE);\
00860     if (soap->fdebug[SOAP_INDEX_##DBGFILE])\
00861     { FILE *fdebug = soap->fdebug[SOAP_INDEX_##DBGFILE];\
00862       CMD;\
00863       fflush(fdebug);\
00864     }\
00865   }\
00866 }
00867 # endif
00868 # ifndef DBGMSG
00869 #  define DBGMSG(DBGFILE, MSG, LEN) \
00870 { if (soap)\
00871   { if (!soap->fdebug[SOAP_INDEX_##DBGFILE])\
00872       soap_open_logfile(soap, SOAP_INDEX_##DBGFILE);\
00873     if (soap->fdebug[SOAP_INDEX_##DBGFILE])\
00874     { fwrite((MSG), 1, (LEN), soap->fdebug[SOAP_INDEX_##DBGFILE]);\
00875       fflush(soap->fdebug[SOAP_INDEX_##DBGFILE]);\
00876     }\
00877   }\
00878 }
00879 # endif
00880 #else
00881 # define DBGLOG(DBGFILE, CMD)
00882 # define DBGMSG(DBGFILE, MSG, LEN)
00883 #endif
00884 
00885 typedef long wchar; /* for compatibility */
00886 
00887 struct Namespace
00888 { const char *id;
00889   const char *ns;
00890   const char *in;
00891   char *out;
00892 };
00893 
00894 struct soap_nlist
00895 { struct soap_nlist *next;
00896   unsigned int level;
00897   short index; /* corresponding entry in ns mapping table */
00898   char *ns; /* only set when parsed ns URI is not in the ns mapping table */
00899   char id[1]; /* the actual string value overflows into allocated region below this struct */
00900 };
00901 
00902 struct soap_blist
00903 { struct soap_blist *next;
00904   char *ptr;
00905   size_t size;
00906 };
00907 
00908 struct soap_array
00909 { void *__ptr;
00910   int __size;
00911 };
00912 
00913 struct soap_plist
00914 { struct soap_plist *next;
00915   const void *ptr;
00916   const struct soap_array *array;
00917   int type;
00918   int id;
00919   char mark1;
00920   char mark2;
00921 };
00922 
00923 struct soap_clist
00924 { struct soap_clist *next;
00925   void *ptr;
00926   int type;
00927   int size;
00928   void (*fdelete)(struct soap_clist*);
00929 };
00930 
00931 struct soap_ilist
00932 { struct soap_ilist *next;
00933   int type;
00934   size_t size;
00935   void *link;
00936   void *copy;
00937   struct soap_clist *clist;
00938   void *ptr;
00939   unsigned int level;
00940   char id[1]; /* the actual id string value overflows into allocated region below this struct */
00941 };
00942 
00943 struct soap_attribute
00944 { struct soap_attribute *next;
00945   short visible;
00946   char *value;
00947   size_t size;
00948   char *ns;
00949   char name[1]; /* the actual name string overflows into allocated region below this struct */
00950 };
00951 
00952 struct soap_cookie
00953 { struct soap_cookie *next;
00954   char *name;
00955   char *value;
00956   char *domain;
00957   char *path;
00958   long expire;          /* client-side: local time to expire; server-side: seconds to expire */
00959   unsigned int version;
00960   short secure;
00961   short session;        /* server-side */
00962   short env;            /* server-side: got cookie from client */
00963   short modified;       /* server-side: client cookie was modified */
00964 };
00965 
00966 struct soap_dom_attribute
00967 { struct soap_dom_attribute *next;
00968   const char *nstr;
00969   char *name;
00970   char *data;
00971   wchar_t *wide;
00972   struct soap *soap;
00973 #ifdef __cplusplus
00974   struct soap_dom_attribute &set(const char *nstr, const char *name);   // set namespace and name
00975   struct soap_dom_attribute &set(const char *data);             // set data
00976   void unlink();
00977   soap_dom_attribute();
00978   soap_dom_attribute(struct soap *soap);
00979   soap_dom_attribute(struct soap *soap, const char *nstr, const char *name, const char *data);
00980   ~soap_dom_attribute();
00981 #endif
00982 };
00983 
00984 #ifdef __cplusplus
00985 class soap_dom_iterator
00986 { public:
00987   struct soap_dom_element *elt;
00988   const char *nstr;
00989   const char *name;
00990   int type;
00991   bool operator==(const soap_dom_iterator&) const;
00992   bool operator!=(const soap_dom_iterator&) const;
00993   struct soap_dom_element &operator*() const;
00994   soap_dom_iterator &operator++();
00995   soap_dom_iterator();
00996   soap_dom_iterator(struct soap_dom_element*);
00997   ~soap_dom_iterator();
00998 };
00999 #endif
01000 
01001 struct soap_dom_element
01002 { struct soap_dom_element *next;        /* next sibling */
01003   struct soap_dom_element *prnt;        /* parent */
01004   struct soap_dom_element *elts;        /* first child element */
01005   struct soap_dom_attribute *atts;      /* first child attribute */
01006   const char *nstr;                     /* namespace string */
01007   char *name;                           /* element tag name */
01008   char *data;                           /* element content data (with SOAP_C_UTFSTRING flag set) */
01009   wchar_t *wide;                        /* element content data */
01010   int type;                             /* optional: serialized C/C++ data type */
01011   void *node;                           /* optional: pointer to serialized C/C++ data */
01012   struct soap *soap;
01013 #ifdef __cplusplus
01014   typedef soap_dom_iterator iterator;
01015   struct soap_dom_element &set(const char *nstr, const char *name);
01016   struct soap_dom_element &set(const char *data);
01017   struct soap_dom_element &set(void *node, int type);
01018   struct soap_dom_element &add(struct soap_dom_element*);
01019   struct soap_dom_element &add(struct soap_dom_element&);
01020   struct soap_dom_element &add(struct soap_dom_attribute*);
01021   struct soap_dom_element &add(struct soap_dom_attribute&);
01022   soap_dom_iterator begin();
01023   soap_dom_iterator end();
01024   soap_dom_iterator find(const char *nstr, const char *name);
01025   soap_dom_iterator find(int type);
01026   void unlink();
01027   soap_dom_element();
01028   soap_dom_element(struct soap *soap);
01029   soap_dom_element(struct soap *soap, const char *nstr, const char *name);
01030   soap_dom_element(struct soap *soap, const char *nstr, const char *name, const char *data);
01031   soap_dom_element(struct soap *soap, const char *nstr, const char *name, void *node, int type);
01032   ~soap_dom_element();
01033 #endif
01034 };
01035 
01036 #if defined(__cplusplus) && !defined(UNDER_CE)
01037 }
01038 extern ostream &operator<<(ostream&, const struct soap_dom_element&);
01039 extern istream &operator>>(istream&, struct soap_dom_element&);
01040 extern "C" {
01041 #endif
01042 
01043 struct soap
01044 { short version;                /* 1 = SOAP1.1 and 2 = SOAP1.2 (set automatically from namespace URI in nsmap table) */
01045   unsigned int mode;
01046   unsigned int imode;
01047   unsigned int omode;
01048   short copy;                   /* 1 = copy of another soap struct */
01049   const char *float_format;     /* points to user-definable format string for floats (<1024 chars) */
01050   const char *double_format;    /* points to user-definable format string for doubles (<1024 chars) */
01051   const char *dime_id_format;   /* points to user-definable format string for integer DIME id (<SOAP_TAGLEN chars) */
01052   const char *http_version;     /* default = "1.0" */
01053   const char *http_content;     /* optional custom response content type (with SOAP_FILE) */
01054   const char *encodingStyle;    /* default = NULL which means that SOAP encoding is used */
01055   const char *actor;
01056   int recv_timeout;             /* when > 0, gives socket recv timeout in seconds, < 0 in usec */
01057   int send_timeout;             /* when > 0, gives socket send timeout in seconds, < 0 in usec */
01058   int connect_timeout;          /* when > 0, gives socket connect() timeout in seconds, < 0 in usec */
01059   int accept_timeout;           /* when > 0, gives socket accept() timeout in seconds, < 0 in usec */
01060   int socket_flags;             /* socket recv() and send() flags, e.g. set to MSG_NOSIGNAL to disable sigpipe */
01061   int connect_flags;            /* connect() SOL_SOCKET sockopt flags, e.g. set to SO_DEBUG to debug socket */
01062   int bind_flags;               /* bind() SOL_SOCKET sockopt flags, e.g. set to SO_REUSEADDR to enable reuse */
01063   int accept_flags;             /* accept() SOL_SOCKET sockopt flags */
01064   struct Namespace *namespaces; /* Pointer to global namespace mapping table */
01065   struct Namespace *local_namespaces;   /* Local namespace mapping table */
01066   struct soap_nlist *nlist;     /* namespace stack */
01067   struct soap_blist *blist;     /* block allocation stack */
01068   struct soap_clist *clist;     /* class instance allocation list */
01069   void *alist;                  /* memory allocation list */
01070   struct soap_ilist *iht[SOAP_IDHASH];
01071   struct soap_plist *pht[SOAP_PTRHASH];
01072   struct SOAP_ENV__Header *header;
01073   struct SOAP_ENV__Fault *fault;
01074   void *user;                   /* to pass user-defined data */
01075   struct soap_plugin *plugins;  /* linked list of plug-in data */
01076   char *userid;                 /* HTTP Basic authorization userid */
01077   char *passwd;                 /* HTTP Basic authorization passwd */
01078   int (*fpost)(struct soap*, const char*, const char*, int, const char*, const char*, size_t);
01079   int (*fget)(struct soap*);
01080   int (*fposthdr)(struct soap*, const char*, const char*);
01081   int (*fresponse)(struct soap*, int, size_t);
01082   int (*fparse)(struct soap*);
01083   int (*fparsehdr)(struct soap*, const char*, const char*);
01084   int (*fconnect)(struct soap*, const char*, const char*, int);
01085   int (*fdisconnect)(struct soap*);
01086   int (*fopen)(struct soap*, const char*, const char*, int);
01087   int (*faccept)(struct soap*, int, struct sockaddr*, int *n);
01088   int (*fclose)(struct soap*);
01089   int (*fsend)(struct soap*, const char*, size_t);
01090   size_t (*frecv)(struct soap*, char*, size_t);
01091   int (*fprepare)(struct soap*, const char*, size_t);
01092   int (*fignore)(struct soap*, const char*);
01093   void *(*fplugin)(struct soap*, const char*);
01094   void *(*fdimereadopen)(struct soap*, void*, const char*, const char*, const char*);
01095   void *(*fdimewriteopen)(struct soap*, const char*, const char*, const char*);
01096   void (*fdimereadclose)(struct soap*, void*);
01097   void (*fdimewriteclose)(struct soap*, void*);
01098   size_t (*fdimeread)(struct soap*, void*, char*, size_t);
01099   int (*fdimewrite)(struct soap*, void*, const char*, size_t);
01100   int master;
01101   int socket;
01102 #if defined(__cplusplus) && !defined(UNDER_CE)
01103   ostream *os;
01104   istream *is;
01105 #else
01106   void *os;     /* preserve alignment */
01107   void *is;     /* preserve alignment */
01108 #endif
01109 #ifndef UNDER_CE
01110   int sendfd;
01111   int recvfd;
01112 #else
01113   FILE *sendfd;
01114   FILE *recvfd;
01115   char errorstr[256];
01116   wchar_t werrorstr[256];
01117 #endif
01118   size_t bufidx;
01119   size_t buflen;
01120   wchar ahead;
01121   short cdata;
01122   short body;
01123   unsigned int level;
01124   size_t count;         /* message length counter */
01125   size_t length;        /* message length as set by HTTP header */
01126   char buf[SOAP_BUFLEN];/* send and receive buffer */
01127   char msgbuf[1024];    /* output buffer for (error) messages <=1024 bytes */
01128   char tmpbuf[1024];    /* output buffer for HTTP headers and DIME >=1024 bytes */
01129   char tag[SOAP_TAGLEN];
01130   char id[SOAP_TAGLEN];
01131   char href[SOAP_TAGLEN];
01132   char type[SOAP_TAGLEN];
01133   char arrayType[SOAP_TAGLEN];
01134   char arraySize[SOAP_TAGLEN];
01135   char arrayOffset[SOAP_TAGLEN];
01136   short other;
01137   short root;
01138   short position;
01139   int positions[SOAP_MAXDIMS];
01140   struct soap_attribute *attributes;    /* attribute list */
01141   short encoding;
01142   short mustUnderstand;
01143   short null;
01144   short ns;
01145   short part;
01146   short alloced;
01147   short peeked;
01148   short dot_net_bug;
01149   size_t chunksize;
01150   size_t chunkbuflen;
01151   char endpoint[SOAP_TAGLEN];
01152   char path[SOAP_TAGLEN];
01153   char host[SOAP_TAGLEN];
01154   char *action;
01155   int port;
01156   short keep_alive;
01157   const char *proxy_host;       /* Proxy Server host name */
01158   int proxy_port;               /* Proxy Server port (default = 8080) */
01159   const char *proxy_userid;     /* Proxy Authorization user name */
01160   const char *proxy_passwd;     /* Proxy Authorization password */
01161   int status;                   /* -1 when request, else error code to be returned by server */
01162   int error;
01163   int errmode;
01164   int errnum;
01165   unsigned long idnum;
01166   unsigned long ip;
01167   size_t dime_count;
01168   int dime_flags;
01169   size_t dime_size;
01170   size_t dime_chunksize;
01171   size_t dime_buflen;
01172   char *dime_ptr;
01173   char *dime_id;
01174   char *dime_type;
01175   char *dime_options;
01176   struct soap_dom_element *dom;
01177 #ifndef WITH_LEAN
01178   const char *logfile[SOAP_MAXLOGS];
01179   FILE *fdebug[SOAP_MAXLOGS];
01180   struct soap_cookie *cookies;
01181   const char *cookie_domain;
01182   const char *cookie_path;
01183   int cookie_max;
01184 #endif
01185 #ifdef WITH_OPENSSL
01186   int (*fsslauth)(struct soap*);
01187   int (*fsslverify)(int, X509_STORE_CTX*);
01188   BIO *bio;
01189   SSL *ssl;
01190   SSL_CTX *ctx;
01191   short require_server_auth;
01192   short require_client_auth;
01193   short rsa;                    /* when set, use RSA instead of DH */
01194   const char *keyfile;
01195   const char *password;
01196   const char *dhfile;
01197   const char *cafile;
01198   const char *capath;
01199   const char *randfile;
01200   SSL_SESSION *session;
01201   char session_host[SOAP_TAGLEN];
01202   int session_port;
01203 #endif
01204 #ifdef WITH_ZLIB
01205   short zlib_state;             /* SOAP_ZLIB_NONE, SOAP_ZLIB_DEFLATE, or SOAP_ZLIB_INFLATE */
01206   short zlib_in;                /* SOAP_ZLIB_NONE, SOAP_ZLIB_DEFLATE, or SOAP_ZLIB_GZIP */
01207   short zlib_out;               /* SOAP_ZLIB_NONE, SOAP_ZLIB_DEFLATE, or SOAP_ZLIB_GZIP */
01208   z_stream d_stream;            /* decompression stream */
01209   char z_buf[SOAP_BUFLEN];      /* buffer */
01210   size_t z_buflen;
01211   unsigned short z_level;       /* compression level to be used (0=none, 1=fast to 9=best) */
01212   unsigned long z_crc;          /* internal gzip crc */
01213   float z_ratio_in;             /* detected compression ratio compressed_length/length of inbound message */
01214   float z_ratio_out;            /* detected compression ratio compressed_length/length of outbound message */
01215 #endif
01216 #ifdef PALM
01217    UInt16 stdLibNum;
01218    UInt16 stdLib2Num;
01219    UInt16 stdLib3Num;
01220    UInt16 genLibNum;
01221    Err fH_errno;
01222    Err fErrno;
01223    Int32 timeout;
01224    NetHostInfoBufType hostInfo;
01225    UInt16 socketLibNum;
01226 #endif
01227 /* WR[ */
01228 #ifdef WMW_RPM_IO
01229   void *rpmreqid;
01230 #endif /* WMW_RPM_IO */
01231 /* ]WR */
01232 };
01233 
01234 struct soap_code_map
01235 { long code;
01236   const char *string;
01237 };
01238 
01239 struct soap_plugin
01240 { struct soap_plugin *next;
01241   const char *id;
01242   void *data;
01243   int (*fcopy)(struct soap *soap, struct soap_plugin *dst, struct soap_plugin *src);
01244   void (*fdelete)(struct soap *soap, struct soap_plugin *p); /* should delete fields of plugin only and not free(p) */
01245 };
01246 
01247 #ifndef WITH_NONAMESPACES
01248 extern SOAP_NMAC struct Namespace namespaces[];
01249 #endif
01250 
01251 SOAP_FMAC1 void SOAP_FMAC2 soap_fault(struct soap*);
01252 SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultcode(struct soap*);
01253 SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultstring(struct soap*);
01254 SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultdetail(struct soap*);
01255 SOAP_FMAC1 void SOAP_FMAC2 soap_serializeheader(struct soap*);
01256 SOAP_FMAC1 int SOAP_FMAC2 soap_putheader(struct soap*);
01257 SOAP_FMAC1 int SOAP_FMAC2 soap_getheader(struct soap*);
01258 SOAP_FMAC1 void SOAP_FMAC2 soap_serializefault(struct soap*);
01259 SOAP_FMAC1 int SOAP_FMAC2 soap_putfault(struct soap*);
01260 SOAP_FMAC1 int SOAP_FMAC2 soap_getfault(struct soap*);
01261 
01262 SOAP_FMAC1 int SOAP_FMAC2 soap_poll(struct soap*);
01263 SOAP_FMAC1 int SOAP_FMAC2 soap_connect_command(struct soap*, int, const char*, const char*);
01264 SOAP_FMAC1 int SOAP_FMAC2 soap_connect(struct soap*, const char*, const char*);
01265 SOAP_FMAC1 int SOAP_FMAC2 soap_bind(struct soap*, const char*, int, int);
01266 SOAP_FMAC1 int SOAP_FMAC2 soap_accept(struct soap*);
01267 SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_accept(struct soap*);
01268 
01269 SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_server_context(struct soap*, unsigned short, const char*, const char*, const char*, const char*, const char*, const char*, const char*);
01270 SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_client_context(struct soap*, unsigned short, const char*, const char*, const char*, const char*, const char*);
01271 
01272 SOAP_FMAC1 int SOAP_FMAC2 soap_puthttphdr(struct soap*, int status, size_t count);
01273 
01274 SOAP_FMAC1 int SOAP_FMAC2 soap_hash(const char*);
01275 SOAP_FMAC1 void SOAP_FMAC2 soap_set_endpoint(struct soap*, const char*);
01276 SOAP_FMAC1 int SOAP_FMAC2 soap_flush_raw(struct soap*, const char*, size_t);
01277 SOAP_FMAC1 int SOAP_FMAC2 soap_flush(struct soap*);
01278 SOAP_FMAC1 wchar SOAP_FMAC2 soap_get(struct soap*);
01279 SOAP_FMAC1 wchar SOAP_FMAC2 soap_getchar(struct soap*);
01280 SOAP_FMAC1 int SOAP_FMAC2 soap_tag_cmp(const char*, const char*);
01281 SOAP_FMAC1 void SOAP_FMAC2 soap_set_fault(struct soap*);
01282 SOAP_FMAC1 int SOAP_FMAC2 soap_sender_fault(struct soap*, const char*, const char*);
01283 SOAP_FMAC1 int SOAP_FMAC2 soap_receiver_fault(struct soap*, const char*, const char*);
01284 SOAP_FMAC1 int SOAP_FMAC2 soap_set_sender_error(struct soap*, const char*, const char*, int);
01285 SOAP_FMAC1 int SOAP_FMAC2 soap_set_receiver_error(struct soap*, const char*, const char*, int);
01286 
01287 SOAP_FMAC1 int SOAP_FMAC2 soap_send_raw(struct soap*, const char*, size_t);
01288 SOAP_FMAC1 int SOAP_FMAC2 soap_recv_raw(struct soap*);
01289 SOAP_FMAC1 int SOAP_FMAC2 soap_send(struct soap*, const char*);
01290 SOAP_FMAC1 int SOAP_FMAC2 soap_recv(struct soap*);
01291 
01292 SOAP_FMAC1 int SOAP_FMAC2 soap_pututf8(struct soap*, unsigned long);
01293 SOAP_FMAC1 wchar SOAP_FMAC2 soap_getutf8(struct soap*);
01294 
01295 SOAP_FMAC1 int SOAP_FMAC2 soap_putbase64(struct soap*, const unsigned char*, size_t);
01296 SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_getbase64(struct soap*, size_t*, int);
01297 SOAP_FMAC1 int SOAP_FMAC2 soap_puthex(struct soap*, const unsigned char*, size_t);
01298 SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_gethex(struct soap*, size_t*);
01299 
01300 
01301 SOAP_FMAC1 struct soap_ilist* SOAP_FMAC2 soap_lookup(struct soap*, const char*);
01302 SOAP_FMAC1 struct soap_ilist* SOAP_FMAC2 soap_enter(struct soap*, const char*);
01303 SOAP_FMAC1 void SOAP_FMAC2 soap_resolve_ptr(struct soap_ilist*);
01304 SOAP_FMAC1 int SOAP_FMAC2 soap_resolve(struct soap*);
01305 
01306 SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_lookup(struct soap*, const void *p, int t, struct soap_plist**);
01307 SOAP_FMAC1 int SOAP_FMAC2 soap_array_pointer_lookup(struct soap*, const void *p, const struct soap_array *a, int n, int t, struct soap_plist**);
01308 SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_lookup_id(struct soap*, void *p, int t, struct soap_plist**);
01309 SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_enter(struct soap*, const void *p, int t, struct soap_plist**);
01310 SOAP_FMAC1 int SOAP_FMAC2 soap_array_pointer_enter(struct soap*, const void *p, const struct soap_array *a, int t, struct soap_plist**);
01311 
01312 SOAP_FMAC1 int SOAP_FMAC2 soap_embed_element(struct soap *soap, const void *p, const char *tag, int type);
01313 SOAP_FMAC1 int SOAP_FMAC2 soap_embed_array(struct soap *soap, const void *p, const struct soap_array *a, int n, const char *tag, int type);
01314 
01315 SOAP_FMAC1 void SOAP_FMAC2 soap_begin_count(struct soap*);
01316 SOAP_FMAC1 int SOAP_FMAC2 soap_begin_send(struct soap*);
01317 SOAP_FMAC1 int SOAP_FMAC2 soap_end_send(struct soap*);
01318 
01319 SOAP_FMAC1 void SOAP_FMAC2 soap_embedded(struct soap*, const void *p, int t);
01320 SOAP_FMAC1 int SOAP_FMAC2 soap_reference(struct soap*, const void *p, int t);
01321 SOAP_FMAC1 int SOAP_FMAC2 soap_array_reference(struct soap*, const void *p, const struct soap_array *a, int n, int t);
01322 SOAP_FMAC1 int SOAP_FMAC2 soap_embedded_id(struct soap*, int id, const void *p, int t);
01323 SOAP_FMAC1 int SOAP_FMAC2 soap_is_embedded(struct soap*, struct soap_plist*);
01324 SOAP_FMAC1 int SOAP_FMAC2 soap_is_single(struct soap*, struct soap_plist*);
01325 SOAP_FMAC1 int SOAP_FMAC2 soap_is_multi(struct soap*, struct soap_plist*);
01326 SOAP_FMAC1 void SOAP_FMAC2 soap_set_embedded(struct soap*, struct soap_plist*);
01327 
01328 SOAP_FMAC1 const struct soap_code_map* SOAP_FMAC2 soap_code(const struct soap_code_map*, const char *str);
01329 SOAP_FMAC1 LONG64 SOAP_FMAC2 soap_int_code(const struct soap_code_map*, const char *str, LONG64 other);
01330 SOAP_FMAC1 const char* SOAP_FMAC2 soap_str_code(const struct soap_code_map*, LONG64 code);
01331 
01332 SOAP_FMAC1 int SOAP_FMAC2 soap_getline(struct soap*, char*, int);
01333 SOAP_FMAC1 int SOAP_FMAC2 soap_begin_recv(struct soap*);
01334 SOAP_FMAC1 int SOAP_FMAC2 soap_end_recv(struct soap*);
01335 
01336 SOAP_FMAC1 void* SOAP_FMAC2 soap_malloc(struct soap*, size_t);
01337 SOAP_FMAC1 void SOAP_FMAC2 soap_dealloc(struct soap*, void*);
01338 SOAP_FMAC1 struct soap_clist * SOAP_FMAC2 soap_link(struct soap*, void*, int, int, void (*fdelete)(struct soap_clist*));
01339 SOAP_FMAC1 void SOAP_FMAC2 soap_unlink(struct soap*, const void*);
01340 SOAP_FMAC1 void SOAP_FMAC2 soap_free(struct soap*);
01341 
01342 SOAP_FMAC1 int SOAP_FMAC2 soap_lookup_type(struct soap*, const char *id);
01343 
01344 SOAP_FMAC1 void* SOAP_FMAC2 soap_id_lookup(struct soap*, const char *id, void **p, int t, size_t n, unsigned int k);
01345 SOAP_FMAC1 void* SOAP_FMAC2 soap_id_forward(struct soap*, const char *id, void *p, int t, size_t n);
01346 SOAP_FMAC1 void* SOAP_FMAC2 soap_id_enter(struct soap*, const char *id, void *p, int t, size_t n, int k);
01347 
01348 SOAP_FMAC1 int SOAP_FMAC2 soap_size(const int *, int);
01349 SOAP_FMAC1 int SOAP_FMAC2 soap_getoffsets(const char *, const int *, int *, int);
01350 SOAP_FMAC1 int SOAP_FMAC2 soap_getsize(const char *, const char *, int *);
01351 SOAP_FMAC1 int SOAP_FMAC2 soap_getsizes(const char *, int *, int);
01352 SOAP_FMAC1 int SOAP_FMAC2 soap_getposition(const char *, int *);
01353 
01354 SOAP_FMAC1 char* SOAP_FMAC2 soap_putsize(struct soap*, const char *, int);
01355 SOAP_FMAC1 char* SOAP_FMAC2 soap_putsizesoffsets(struct soap*, const char *, const int *, const int *, int);
01356 SOAP_FMAC1 char* SOAP_FMAC2 soap_putsizes(struct soap*, const char *, const int *, int);
01357 SOAP_FMAC1 char* SOAP_FMAC2 soap_putoffset(struct soap*, int);
01358 SOAP_FMAC1 char* SOAP_FMAC2 soap_putoffsets(struct soap*, const int *, int);
01359  
01360 SOAP_FMAC1 int SOAP_FMAC2 soap_closesock(struct soap*);
01361 
01362 SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_new(void);
01363 SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_new1(int);
01364 SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_new2(int, int);
01365 SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_copy(struct soap*);
01366 SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_copy_context(struct soap*,struct soap*);
01367 SOAP_FMAC1 void SOAP_FMAC2 soap_init(struct soap*);
01368 SOAP_FMAC1 void SOAP_FMAC2 soap_init1(struct soap*, int);
01369 SOAP_FMAC1 void SOAP_FMAC2 soap_init2(struct soap*, int, int);
01370 SOAP_FMAC1 void SOAP_FMAC2 soap_done(struct soap*);
01371 SOAP_FMAC1 void SOAP_FMAC2 soap_cleanup(struct soap*);
01372 SOAP_FMAC1 void SOAP_FMAC2 soap_begin(struct soap*);
01373 SOAP_FMAC1 void SOAP_FMAC2 soap_end(struct soap*);
01374 SOAP_FMAC1 void SOAP_FMAC2 soap_delete(struct soap*, void*);
01375 
01376 #ifndef WITH_LEAN
01377 SOAP_FMAC1 void SOAP_FMAC2 soap_set_recv_logfile(struct soap*, const char*);
01378 SOAP_FMAC1 void SOAP_FMAC2 soap_set_sent_logfile(struct soap*, const char*);
01379 SOAP_FMAC1 void SOAP_FMAC2 soap_set_test_logfile(struct soap*, const char*);
01380 SOAP_FMAC1 void SOAP_FMAC2 soap_close_logfiles(struct soap*);
01381 SOAP_FMAC1 void SOAP_FMAC2 soap_open_logfile(struct soap*, int);
01382 #endif
01383 
01384 SOAP_FMAC1 char* SOAP_FMAC2 soap_value(struct soap*);
01385 
01386 SOAP_FMAC1 wchar SOAP_FMAC2 soap_advance(struct soap*);
01387 SOAP_FMAC1 wchar SOAP_FMAC2 soap_skip(struct soap*);
01388 
01389 SOAP_FMAC1 int SOAP_FMAC2 soap_match_tag(struct soap*, const char*, const char *);
01390 SOAP_FMAC1 int SOAP_FMAC2 soap_match_array(struct soap*, const char*);
01391 
01392 SOAP_FMAC1 int SOAP_FMAC2 soap_element(struct soap*, const char*, int, const char*);
01393 SOAP_FMAC1 int SOAP_FMAC2 soap_element_begin_out(struct soap*, const char *tag, int id, const char *type);
01394 SOAP_FMAC1 int SOAP_FMAC2 soap_array_begin_out(struct soap*, const char *tag, int id, const char *type, const char *offset);
01395 SOAP_FMAC1 int SOAP_FMAC2 soap_element_ref(struct soap*, const char *tag, int id, int href);
01396 SOAP_FMAC1 int SOAP_FMAC2 soap_element_href(struct soap*, const char *tag, int id, const char *href);
01397 SOAP_FMAC1 int SOAP_FMAC2 soap_element_null(struct soap*, const char *tag, int id, const char *type);
01398 SOAP_FMAC1 int SOAP_FMAC2 soap_element_result(struct soap*, const char *tag);
01399 SOAP_FMAC1 int SOAP_FMAC2 soap_element_end_out(struct soap*, const char *tag);
01400 SOAP_FMAC1 int SOAP_FMAC2 soap_element_start_end_out(struct soap*, const char *tag);
01401 
01402 SOAP_FMAC1 int SOAP_FMAC2 soap_attribute(struct soap*, const char*, const char*);
01403 
01404 SOAP_FMAC1 int SOAP_FMAC2 soap_element_begin_in(struct soap*, const char *tag);
01405 
01406 SOAP_FMAC1 int SOAP_FMAC2 soap_element_end_in(struct soap*, const char *tag);
01407 
01408 SOAP_FMAC1 int SOAP_FMAC2 soap_peek_element(struct soap*);
01409 
01410 SOAP_FMAC1 void SOAP_FMAC2 soap_retry(struct soap*);
01411 SOAP_FMAC1 void SOAP_FMAC2 soap_revert(struct soap*);
01412 
01413 SOAP_FMAC1 char* SOAP_FMAC2 soap_strdup(struct soap*, const char*);
01414 
01415 SOAP_FMAC1 int SOAP_FMAC2 soap_string_out(struct soap*, const char *s, int flag);
01416 SOAP_FMAC1 char* SOAP_FMAC2 soap_string_in(struct soap*, int);
01417 SOAP_FMAC1 int SOAP_FMAC2 soap_wstring_out(struct soap*, const wchar_t *s, int flag);
01418 SOAP_FMAC1 wchar_t* SOAP_FMAC2 soap_wstring_in(struct soap*, int);
01419 
01420 SOAP_FMAC1 int SOAP_FMAC2 soap_match_namespace(struct soap*, const char *, const char*, int n1, int n2);
01421 SOAP_FMAC1 const char* SOAP_FMAC2 soap_default_namespace(struct soap*);
01422 
01423 SOAP_FMAC1 int SOAP_FMAC2 soap_set_namespaces(struct soap*, struct Namespace*);
01424 
01425 SOAP_FMAC1 void SOAP_FMAC2 soap_pop_namespace(struct soap*);
01426 SOAP_FMAC1 int SOAP_FMAC2 soap_push_namespace(struct soap*, const char *,const char *);
01427 SOAP_FMAC1 int SOAP_FMAC2 soap_push_default_namespace(struct soap*, const char *, int);
01428 
01429 SOAP_FMAC1 int SOAP_FMAC2 soap_new_block(struct soap*);
01430 SOAP_FMAC1 void* SOAP_FMAC2 soap_push_block(struct soap*, size_t);
01431 SOAP_FMAC1 void SOAP_FMAC2 soap_pop_block(struct soap*);
01432 SOAP_FMAC1 size_t SOAP_FMAC2 soap_size_block(struct soap*, size_t);
01433 SOAP_FMAC1 char* SOAP_FMAC2 soap_first_block(struct soap*);
01434 SOAP_FMAC1 char* SOAP_FMAC2 soap_next_block(struct soap*);
01435 SOAP_FMAC1 size_t SOAP_FMAC2 soap_block_size(struct soap*);
01436 SOAP_FMAC1 char* SOAP_FMAC2 soap_save_block(struct soap*, char*);
01437 SOAP_FMAC1 char* SOAP_FMAC2 soap_store_block(struct soap*, char*);
01438 SOAP_FMAC1 void SOAP_FMAC2 soap_end_block(struct soap*);
01439 
01440 SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_begin_out(struct soap*);
01441 SOAP_FMAC1 int soap_envelope_end_out(struct soap*);
01442 
01443 SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_begin_in(struct soap*);
01444 SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_end_in(struct soap*);
01445 
01446 SOAP_FMAC1 int SOAP_FMAC2 soap_body_begin_out(struct soap*);
01447 SOAP_FMAC1 int SOAP_FMAC2 soap_body_end_out(struct soap*);
01448 
01449 SOAP_FMAC1 int SOAP_FMAC2 soap_body_begin_in(struct soap*);
01450 SOAP_FMAC1 int SOAP_FMAC2 soap_body_end_in(struct soap*);
01451 
01452 SOAP_FMAC1 int SOAP_FMAC2 soap_recv_header(struct soap*);
01453 
01454 SOAP_FMAC1 int SOAP_FMAC2 soap_response(struct soap*, int);
01455 
01456 SOAP_FMAC1 int SOAP_FMAC2 soap_send_fault(struct soap*);
01457 
01458 SOAP_FMAC1 int SOAP_FMAC2 soap_recv_fault(struct soap*);
01459 
01460 SOAP_FMAC1 void SOAP_FMAC2 soap_print_fault(struct soap*, FILE*);
01461 SOAP_FMAC1 void SOAP_FMAC2 soap_print_fault_location(struct soap*, FILE*);
01462 
01463 SOAP_FMAC1 int SOAP_FMAC2 soap_s2byte(struct soap*, const char*, char*);
01464 SOAP_FMAC1 int SOAP_FMAC2 soap_s2short(struct soap*, const char*, short*);
01465 SOAP_FMAC1 int SOAP_FMAC2 soap_s2int(struct soap*, const char*, int*);
01466 SOAP_FMAC1 int SOAP_FMAC2 soap_s2long(struct soap*, const char*, long*);
01467 SOAP_FMAC1 int SOAP_FMAC2 soap_s2LONG64(struct soap*, const char*, LONG64*);
01468 SOAP_FMAC1 int SOAP_FMAC2 soap_s2float(struct soap*, const char*, float*);
01469 SOAP_FMAC1 int SOAP_FMAC2 soap_s2double(struct soap*, const char*, double*);
01470 SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedByte(struct soap*, const char*, unsigned char*);
01471 SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedShort(struct soap*, const char*, unsigned short*);
01472 SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedInt(struct soap*, const char*, unsigned int*);
01473 SOAP_FMAC1 int SOAP_FMAC2 soap_s2unsignedLong(struct soap*, const char*, unsigned long*);
01474 SOAP_FMAC1 int SOAP_FMAC2 soap_s2ULONG64(struct soap*, const char*, ULONG64*);
01475 SOAP_FMAC1 int SOAP_FMAC2 soap_s2dateTime(struct soap*, const char*, time_t*);
01476 SOAP_FMAC1 int SOAP_FMAC2 soap_s2string(struct soap*, const char*, char**);
01477 SOAP_FMAC1 int SOAP_FMAC2 soap_s2QName(struct soap*, const char*, char**);
01478 SOAP_FMAC1 int SOAP_FMAC2 soap_s2base64(struct soap*, const unsigned char*, char*, size_t);
01479 
01480 SOAP_FMAC1 const char* SOAP_FMAC2 soap_byte2s(struct soap*, char);
01481 SOAP_FMAC1 const char* SOAP_FMAC2 soap_short2s(struct soap*, short);
01482 SOAP_FMAC1 const char* SOAP_FMAC2 soap_int2s(struct soap*, int);
01483 SOAP_FMAC1 const char* SOAP_FMAC2 soap_long2s(struct soap*, long);
01484 SOAP_FMAC1 const char* SOAP_FMAC2 soap_LONG642s(struct soap*, LONG64);
01485 SOAP_FMAC1 const char* SOAP_FMAC2 soap_float2s(struct soap*, float);
01486 SOAP_FMAC1 const char* SOAP_FMAC2 soap_double2s(struct soap*, double);
01487 SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedByte2s(struct soap*, unsigned char);
01488 SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedShort2s(struct soap*, unsigned short);
01489 SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedInt2s(struct soap*, unsigned int);
01490 SOAP_FMAC1 const char* SOAP_FMAC2 soap_unsignedLong2s(struct soap*, unsigned long);
01491 SOAP_FMAC1 const char* SOAP_FMAC2 soap_ULONG642s(struct soap*, ULONG64);
01492 SOAP_FMAC1 const char* SOAP_FMAC2 soap_dateTime2s(struct soap*, time_t);
01493 SOAP_FMAC1 const char* SOAP_FMAC2 soap_QName2s(struct soap*, const char*);
01494 SOAP_FMAC1 const char* SOAP_FMAC2 soap_base642s(struct soap*, const char*, char*, size_t, size_t*);
01495 
01496 SOAP_FMAC1 int* SOAP_FMAC2 soap_inint(struct soap*, const char *tag, int *p, const char *, int);
01497 SOAP_FMAC1 char* SOAP_FMAC2 soap_inbyte(struct soap*, const char *tag, char *p, const char *, int);
01498 SOAP_FMAC1 long* SOAP_FMAC2 soap_inlong(struct soap*, const char *tag, long *p, const char *, int);
01499 SOAP_FMAC1 LONG64* SOAP_FMAC2 soap_inLONG64(struct soap*, const char *tag, LONG64 *p, const char *, int);
01500 SOAP_FMAC1 short* SOAP_FMAC2 soap_inshort(struct soap*, const char *tag, short *p, const char *, int);
01501 SOAP_FMAC1 float* SOAP_FMAC2 soap_infloat(struct soap*, const char *tag, float *p, const char *, int);
01502 SOAP_FMAC1 double* SOAP_FMAC2 soap_indouble(struct soap*, const char *tag, double *p, const char *, int);
01503 SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_inunsignedByte(struct soap*, const char *tag, unsigned char *p, const char *, int);
01504 SOAP_FMAC1 unsigned short* SOAP_FMAC2 soap_inunsignedShort(struct soap*, const char *tag, unsigned short *p, const char *, int);
01505 SOAP_FMAC1 unsigned int* SOAP_FMAC2 soap_inunsignedInt(struct soap*, const char *tag, unsigned int *p, const char *, int);
01506 SOAP_FMAC1 unsigned long* SOAP_FMAC2 soap_inunsignedLong(struct soap*, const char *tag, unsigned long *p, const char *, int);
01507 SOAP_FMAC1 ULONG64* SOAP_FMAC2 soap_inULONG64(struct soap*, const char *tag, ULONG64 *p, const char *, int);
01508 SOAP_FMAC1 time_t* SOAP_FMAC2 soap_indateTime(struct soap*, const char *tag, time_t *p, const char *, int);
01509 SOAP_FMAC1 char** SOAP_FMAC2 soap_instring(struct soap*, const char *tag, char **p, const char *, int, int);
01510 SOAP_FMAC1 wchar_t** SOAP_FMAC2 soap_inwstring(struct soap*, const char *tag, wchar_t **p, const char *, int);
01511 SOAP_FMAC1 char** SOAP_FMAC2 soap_inliteral(struct soap*, const char *tag, char **p);
01512 SOAP_FMAC1 wchar_t** SOAP_FMAC2 soap_inwliteral(struct soap*, const char *tag, wchar_t **p);
01513 
01514 SOAP_FMAC1 int SOAP_FMAC2 soap_outbyte(struct soap*, const char *tag, int id, const char *p, const char *, int);
01515 SOAP_FMAC1 int SOAP_FMAC2 soap_outshort(struct soap*, const char *tag, int id, const short *p, const char *, int);
01516 SOAP_FMAC1 int SOAP_FMAC2 soap_outint(struct soap*, const char *tag, int id, const int *p, const char *, int);
01517 SOAP_FMAC1 int SOAP_FMAC2 soap_outlong(struct soap*, const char *tag, int id, const long *p, const char *, int);
01518 SOAP_FMAC1 int SOAP_FMAC2 soap_outLONG64(struct soap*, const char *tag, int id, const LONG64 *p, const char *, int);
01519 SOAP_FMAC1 int SOAP_FMAC2 soap_outfloat(struct soap*, const char *tag, int id, const float *p, const char *, int);
01520 SOAP_FMAC1 int SOAP_FMAC2 soap_outdouble(struct soap*, const char *tag, int id, const double *p, const char *, int);
01521 SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedByte(struct soap*, const char *tag, int id, const unsigned char *p, const char *, int);
01522 SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedShort(struct soap*, const char *tag, int id, const unsigned short *p, const char *, int);
01523 SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedInt(struct soap*, const char *tag, int id, const unsigned int *p, const char *, int);
01524 SOAP_FMAC1 int SOAP_FMAC2 soap_outunsignedLong(struct soap*, const char *tag, int id, const unsigned long *p, const char *, int);
01525 SOAP_FMAC1 int SOAP_FMAC2 soap_outULONG64(struct soap*, const char *tag, int id, const ULONG64 *p, const char *, int);
01526 SOAP_FMAC1 int SOAP_FMAC2 soap_outdateTime(struct soap*, const char *tag, int id, const time_t *p, const char *, int);
01527 SOAP_FMAC1 int SOAP_FMAC2 soap_outstring(struct soap*, const char *tag, int id, char *const*p, const char *, int);
01528 SOAP_FMAC1 int SOAP_FMAC2 soap_outwstring(struct soap*, const char *tag, int id, wchar_t *const*p, const char *, int);
01529 SOAP_FMAC1 int SOAP_FMAC2 soap_outliteral(struct soap*, const char *tag, char *const*p);
01530 SOAP_FMAC1 int SOAP_FMAC2 soap_outwliteral(struct soap*, const char *tag, wchar_t *const*p);
01531 
01532 #ifndef WITH_LEANER
01533 SOAP_FMAC1 void SOAP_FMAC2 soap_set_attached(struct soap*, struct soap_plist*, const char*, const char*, const char*, size_t);
01534 SOAP_FMAC1 int SOAP_FMAC2 soap_move(struct soap*, long);
01535 SOAP_FMAC1 size_t SOAP_FMAC2 soap_tell(struct soap*);
01536 SOAP_FMAC1 char* SOAP_FMAC2 soap_dime_option(struct soap*, unsigned short, const char*);
01537 SOAP_FMAC1 int SOAP_FMAC2 soap_getdimehdr(struct soap*);
01538 SOAP_FMAC1 int SOAP_FMAC2 soap_getdime(struct soap*);
01539 SOAP_FMAC1 int SOAP_FMAC2 soap_putdimehdr(struct soap*);
01540 SOAP_FMAC1 int SOAP_FMAC2 soap_putdime(struct soap*, int, char*, char*, char*, void*, size_t);
01541 #endif
01542 
01543 SOAP_FMAC1 int SOAP_FMAC2 soap_register_plugin_arg(struct soap*, int (*fcreate)(struct soap*, struct soap_plugin*, void*), void*);
01544 SOAP_FMAC1 void* SOAP_FMAC2 soap_lookup_plugin(struct soap*, const char*);
01545 
01546 SOAP_FMAC1 struct soap_attribute * SOAP_FMAC2 soap_attr(struct soap *soap, const char *name);
01547 SOAP_FMAC1 const char* SOAP_FMAC2 soap_attr_value(struct soap *soap, const char *name);
01548 SOAP_FMAC1 int SOAP_FMAC2 soap_set_attr(struct soap *soap, const char *name, const char *value);
01549 SOAP_FMAC1 void SOAP_FMAC2 soap_clr_attr(struct soap *soap);
01550 
01551 #ifdef WITH_COOKIES
01552 SOAP_FMAC1 int SOAP_FMAC2 soap_encode_cookie(const char*, char*, int);
01553 SOAP_FMAC1 const char* SOAP_FMAC2 soap_decode_cookie(char*, int, const char*);
01554 SOAP_FMAC1 extern struct soap_cookie* SOAP_FMAC2 soap_set_cookie(struct soap*, const char*, const char*, const char*, const char*);
01555 SOAP_FMAC1 extern struct soap_cookie* SOAP_FMAC2 soap_cookie(struct soap*, const char*, const char*, const char*);
01556 SOAP_FMAC1 extern char* SOAP_FMAC2 soap_cookie_value(struct soap*, const char*, const char*, const char*);
01557 SOAP_FMAC1 extern long SOAP_FMAC2 soap_cookie_expire(struct soap*, const char*, const char*, const char*);
01558 SOAP_FMAC1 extern int SOAP_FMAC2 soap_set_cookie_expire(struct soap*, const char*, long, const char*, const char*);
01559 SOAP_FMAC1 extern int SOAP_FMAC2 soap_set_cookie_session(struct soap*, const char*, const char*, const char*);
01560 SOAP_FMAC1 extern int SOAP_FMAC2 soap_clr_cookie_session(struct soap*, const char*, const char*, const char*);
01561 SOAP_FMAC1 extern void SOAP_FMAC2 soap_clr_cookie(struct soap*, const char*, const char*, const char*);
01562 SOAP_FMAC1 extern int SOAP_FMAC2 soap_getenv_cookies(struct soap*);
01563 SOAP_FMAC1 extern struct soap_cookie* SOAP_FMAC2 soap_copy_cookies(struct soap*);
01564 SOAP_FMAC1 extern void SOAP_FMAC2 soap_free_cookies(struct soap*);
01565 #endif
01566 
01567 #if defined(PALM) && !defined(NOSHAREDLIB) && !(defined(BUILDING_STDSOAP) || defined(BUILDING_STDSOAP2) || defined(BUILDING_STDLIB) || defined(BUILDING_STDLIB2) || defined(PALM_1) || defined(PALM_2))
01568 # include "palmSharedLib.h"
01569 #endif
01570 
01571 #ifdef __cplusplus
01572 }
01573 #endif
01574 
01575 #endif
01576 

Generated on Mon Jun 5 10:20:42 2006 for Intelligence.kdevelop by  doxygen 1.4.6