Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members  

stdsoap2.h

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

Generated on Wed Feb 18 13:45:56 2004 for strongroom by doxygen1.2.18