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

stdsoap2.h

Go to the documentation of this file.
00001 /*      stdsoap2.h 2.1.3b
00002 
00003 The contents of this file are subject to the gSOAP Public License Version 1.0
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-2002 Robert A. van Engelen. All Rights Reserved.
00013 
00014 */
00015 
00016 #ifdef WITH_SOAPDEFS_H
00017 #include "soapdefs.h"
00018 #endif
00019 
00020 #ifndef _THREAD_SAFE
00021 #define _THREAD_SAFE
00022 #endif
00023 
00024 #ifndef _REENTRANT
00025 #define _REENTRANT
00026 #endif
00027 
00028 #ifndef SOAP_FMAC1
00029 #define SOAP_FMAC1
00030 #endif
00031 
00032 #ifndef SOAP_FMAC2
00033 #define SOAP_FMAC2
00034 #endif
00035 
00036 #ifndef SOAP_CMAC
00037 #define SOAP_CMAC
00038 #endif
00039 
00040 #ifdef UNDER_CE
00041 #ifndef WIN32
00042 #define WIN32
00043 #endif
00044 #endif
00045 
00046 #ifdef __BORLANDC__
00047 #ifdef __WIN32__
00048 #ifndef WIN32
00049 #define WIN32
00050 #endif
00051 #endif
00052 #endif
00053 
00054 #include <stdio.h>
00055 #include <stdlib.h>
00056 #include <string.h>
00057 #include <ctype.h>
00058 #include <limits.h>
00059 
00060 #ifndef UNDER_CE
00061 #include <errno.h>
00062 #include <sys/types.h>
00063 #include <time.h>
00064 #endif
00065 
00066 #if !defined(WIN32) && !defined(__APPLE__)
00067 #include <sys/time.h>
00068 #include <netinet/tcp.h>        /* for TCP_NODELAY */
00069 #include <arpa/inet.h>
00070 #endif
00071 
00072 #ifdef WITH_FASTCGI
00073 #include <fcgi_stdio.h>
00074 #endif
00075 
00076 #ifdef WITH_OPENSSL
00077 #include <openssl/ssl.h>
00078 #include <openssl/err.h>
00079 #ifndef ALLOW_OLD_VERSIONS
00080 #if (OPENSSL_VERSION_NUMBER < 0x00905100L)
00081 #error "Must use OpenSSL 0.9.6 or later"
00082 #endif
00083 #endif
00084 #endif
00085 
00086 #include <math.h>       /* for isnan(): remove if NaN and INF support is not required */
00087 
00088 #ifndef STDSOAP
00089 #define STDSOAP
00090 
00091 #define DEBUG  /* Uncomment to debug sending (in file SENT.log) receiving (in file RECV.log) and messages (in file TEST.log) */
00092 
00093 #ifdef __cplusplus
00094 extern "C" {
00095 #endif
00096 
00097 #ifdef WIN32
00098 #ifndef UNDER_CE
00099 #include <io.h>
00100 #endif
00101 #include <winsock.h>
00102 #else
00103 #include <sys/socket.h>
00104 #include <netdb.h>
00105 #include <netinet/in.h>
00106 #include <unistd.h>
00107 #define closesocket(n) close(n)
00108 #endif
00109 
00110 #ifndef _MATH_H
00111 #define isnan(_) (0)
00112 #else
00113 extern struct soap_double_nan { int n1, n2; } soap_double_nan;
00114 #endif
00115 
00116 #ifndef WIN32
00117 #define LONG64 long long
00118 #define ULONG64 unsigned LONG64
00119 #endif
00120 
00121 #ifdef __BORLANDC__
00122 #ifdef SYSMAC_H
00123 #define LONG64 ::LONG64
00124 #define ULONG64 ::ULONG64
00125 #endif
00126 #endif
00127 
00128 #ifdef UNDER_CE
00129 #define soap_errno GetLastError()
00130 #define SOAP_EINTR WSAEINTR
00131 #else
00132 #define soap_errno errno
00133 #define SOAP_EINTR EINTR
00134 #endif
00135 
00136 #define SOAP_BUFLEN    8192 /* buffer length for socket packets, also used for gethostbyname buffer so don't make this too small */
00137 #define SOAP_PTRHASH   1024 /* size of pointer analysis hash table (must be power of 2) */
00138 #define SOAP_IDHASH      16 /* size of hash table for receiving element id/href's */
00139 #define SOAP_BLKLEN     256 /* size of blocks to collect long strings */
00140 #define SOAP_TAGLEN     256 /* maximum length of XML tag/element names + 1 */
00141 #define SOAP_MAXDIMS     16 /* maximum array dimensions (array nestings) */
00142 
00143 #define SOAP_MAXLOGS      3 /* max number of debug logs per soap environment */
00144 #define SOAP_INDEX_RECV   0
00145 #define SOAP_INDEX_SENT   1
00146 #define SOAP_INDEX_TEST   2
00147 
00148 #ifndef FLT_NAN
00149 #ifdef _MATH_H
00150 #define FLT_NAN (*(float*)&soap_double_nan)
00151 #else
00152 #define FLT_NAN (0.0)
00153 #endif
00154 #endif
00155 #ifndef FLT_PINFTY
00156 #ifdef HUGE_VAL
00157 #define FLT_PINFTY (float)HUGE_VAL
00158 #else
00159 #ifdef FLT_MAX
00160 #define FLT_PINFTY FLT_MAX
00161 #else
00162 #ifdef FLOAT_MAX
00163 #define FLT_PINFTY FLOAT_MAX
00164 #else
00165 #define FLT_PINFTY (3.40282347e+38)
00166 #endif
00167 #endif
00168 #endif
00169 #endif
00170 #ifndef FLT_NINFTY
00171 #define FLT_NINFTY (-FLT_PINFTY)
00172 #endif
00173 
00174 #ifndef DBL_NAN
00175 #ifdef _MATH_H
00176 #define DBL_NAN (*(double*)&soap_double_nan)
00177 #else
00178 #define DBL_NAN (0.0)
00179 #endif
00180 #endif
00181 #ifndef DBL_PINFTY
00182 #ifdef HUGE_VAL
00183 #define DBL_PINFTY (double)HUGE_VAL
00184 #else
00185 #ifdef DBL_MAX
00186 #define DBL_PINFTY DBL_MAX
00187 #else
00188 #ifdef DOUBLE_MAX
00189 #define DBL_PINFTY DOUBLE_MAX
00190 #else
00191 #define DBL_PINFTY (1.7976931348623157e+308)
00192 #endif
00193 #endif
00194 #endif
00195 #endif
00196 #ifndef DBL_NINFTY
00197 #define DBL_NINFTY (-DBL_PINFTY)
00198 #endif
00199 
00200 /* gSOAP error codes */
00201 
00202 #define SOAP_EOF EOF
00203 #define SOAP_OK 0
00204 #define SOAP_CLI_FAULT 1
00205 #define SOAP_SVR_FAULT 2
00206 #define SOAP_TAG_MISMATCH 3
00207 #define SOAP_TYPE_MISMATCH 4
00208 #define SOAP_SYNTAX_ERROR 5
00209 #define SOAP_NO_TAG 6
00210 #define SOAP_IOB 7
00211 #define SOAP_MUSTUNDERSTAND 8
00212 #define SOAP_NAMESPACE 9
00213 #define SOAP_OBJ_MISMATCH 10
00214 #define SOAP_FATAL_ERROR 11
00215 #define SOAP_FAULT 12
00216 #define SOAP_NO_METHOD 13
00217 #define SOAP_EOM 14
00218 #define SOAP_NULL 15
00219 #define SOAP_MULTI_ID 16
00220 #define SOAP_MISSING_ID 17
00221 #define SOAP_HREF 18
00222 #define SOAP_TCP_ERROR 19
00223 #define SOAP_HTTP_ERROR 20
00224 #define SOAP_SSL_ERROR 21
00225 #define SOAP_VERSIONMISMATCH 22
00226 
00227 /* DEBUG macros */
00228 
00229 #ifdef DEBUG
00230 #ifndef SOAP_MESSAGE
00231 #define SOAP_MESSAGE fprintf
00232 #endif
00233 #define DBGLOG(DBGFILE, DBGCMD) \
00234 { if (!soap->fdebug[SOAP_INDEX_##DBGFILE]) soap_open_logfile(soap, SOAP_INDEX_##DBGFILE);\
00235   if (soap->fdebug[SOAP_INDEX_##DBGFILE])\
00236   { FILE *fdebug = soap->fdebug[SOAP_INDEX_##DBGFILE];\
00237     DBGCMD;\
00238     fflush(fdebug);\
00239   }\
00240 }
00241 #else
00242 #define DBGLOG(DBGFILE, DBGCMD)
00243 #endif
00244 
00245 typedef long wchar; /* for compatibility */
00246 
00247 struct Namespace
00248 { const char *id;
00249   const char *ns;
00250   const char *in;
00251 };
00252 
00253 struct soap_nlist
00254 { struct soap_nlist *next;
00255   char *id;
00256   int level;
00257   int index;
00258 };
00259 
00260 struct soap_blist
00261 { struct soap_blist *next;
00262   char *ptr;
00263   size_t size;
00264 };
00265 
00266 struct soap_ilist
00267 { struct soap_ilist *next;
00268   int type;
00269   size_t size;
00270   void *link;
00271   void *copy;
00272   void *ptr;
00273   int level;
00274   char id[4];
00275 };
00276 
00277 struct soap_plist
00278 { struct soap_plist *next;
00279   void *ptr;
00280   int type;
00281   int id;
00282   char mark1;
00283   char mark2;
00284 };
00285 
00286 struct soap_clist
00287 { struct soap_clist *next;
00288   void *ptr;
00289   int type;
00290   size_t size;
00291 };
00292 
00293 #ifdef WITH_COOKIES
00294 struct soap_cookie
00295 { char *name;
00296   char *value;
00297   char *domain;
00298   char *path;
00299   long expire;          /* client-side: local time to expire; server-side: seconds to expire */
00300   unsigned int version;
00301   short secure;
00302   short session;        /* server-side */
00303   short env;            /* server-side: got cookie from client */
00304   short modified;       /* server-side: client cookie was modified */
00305   struct soap_cookie *next;
00306 };
00307 #endif
00308 
00309 struct soap
00310 { const char *float_format;     /* points to user-definable format string */
00311   const char *double_format;    /* points to user-definable format string */
00312   const char *http_version;     /* default = "1.0" */
00313   const char *encodingStyle;    /* default = NULL which means that SOAP encoding is used */
00314   const char *defaultNamespace; /* default = NULL which means that no default namespace is set */
00315   const char *actor;
00316   short keep_alive;             /* when !=0, attempt to keep connections open */
00317   short disable_href;           /* when !=0, disables hrefs so objects are duplicated on the output */
00318   short enable_embedding;       /* when !=0, enable hrefs within embedded elements */
00319   short enable_null;            /* when !=0, always sends null elements */
00320   short enable_utf_string;      /* when !=0, assume strings are UTF8/16 encoded and just emit them */
00321   short disable_request_count;  /* when !=0, do not count message length for requests */
00322   short disable_response_count; /* when !=0, do not count message length for responses */
00323   short enable_array_overflow;  /* when !=0, ignore elements that do not fit in a fixed-size array */ 
00324   int recv_timeout;             /* when > 0, gives socket recv timeout in seconds */
00325   int send_timeout;             /* when > 0, gives socket send timeout in seconds */
00326   struct Namespace *namespaces; /* Namespace mapping table */
00327   struct soap_nlist *nlist;     /* namespace stack */
00328   struct soap_blist *blist;     /* block allocation stack */
00329   struct soap_clist *clist;     /* class instance allocation list */
00330   void *alist;                  /* memory allocation list */
00331   struct soap_ilist *iht[SOAP_IDHASH];
00332   struct soap_plist *pht[SOAP_PTRHASH];
00333   struct SOAP_ENV__Header *header;
00334   struct SOAP_ENV__Fault *fault;
00335   void *user;                   /* reserved for callbacks to pass user-defined data */
00336   int (*fpost)(struct soap*, const char*, const char*, const char*, const char*, size_t);
00337   int (*fresponse)(struct soap*, int, size_t);
00338   int (*fparse)(struct soap*);
00339   int (*fopen)(struct soap*, const char*, const char*, int);
00340   int (*fclose)(struct soap*);
00341   int (*fsend)(struct soap*, const char*, size_t);
00342   size_t (*frecv)(struct soap*, char*, size_t);
00343   int (*fignore)(struct soap*, const char*);
00344   int master;
00345   int socket;
00346 #ifndef UNDER_CE
00347   int sendfd;
00348   int recvfd;
00349 #else
00350   FILE *sendfd;
00351   FILE *recvfd;
00352   char errorstr[256];
00353   wchar_t werrorstr[256];
00354 #endif
00355   short buffering;
00356   int bufidx;
00357   int buflen;
00358   char buf[SOAP_BUFLEN];/* send and receive buffer */
00359   char msgbuf[1024];    /* buffer for (error) messages */
00360   char tmpbuf1[256];    /* buffer for array size attributes */
00361   char tmpbuf2[256];    /* buffer for array offset attributes */
00362   char tmpbuf3[256];    /* buffer for array position attributes */
00363   char tagbuf[1024];    /* buffer for combining XML element name and attributes */
00364   size_t count;
00365   short counting;
00366   int level;
00367   short body;
00368   char tag[SOAP_TAGLEN];
00369   char id[SOAP_TAGLEN];
00370   char href[SOAP_TAGLEN];
00371   char type[SOAP_TAGLEN];
00372   char arrayType[SOAP_TAGLEN];
00373   char arraySize[SOAP_TAGLEN];
00374   char offset[SOAP_TAGLEN];
00375   short other;
00376   short root;
00377   short position;
00378   int positions[SOAP_MAXDIMS];
00379   int mustUnderstand;
00380   short null;
00381   short ns;
00382   short is_in_header;
00383   short chunked;
00384   short alloced;
00385   short peeked;
00386   short cdata;
00387   size_t chunksize;
00388   int chunkbuflen;
00389   char path[SOAP_TAGLEN];
00390   char host[SOAP_TAGLEN];
00391   char endpoint[SOAP_TAGLEN];
00392   char *action;
00393   int port;
00394   const char *proxy_host;
00395   int proxy_port;
00396   int error;
00397   int errmode;
00398   int errnum;
00399   int idnum;
00400   wchar ahead1;
00401   wchar ahead2;
00402   unsigned long ip;
00403   const char *logfile[SOAP_MAXLOGS];
00404   FILE *fdebug[SOAP_MAXLOGS];
00405 #ifdef WITH_COOKIES
00406   struct soap_cookie *cookies;
00407   const char *cookie_domain;
00408   const char *cookie_path;
00409   int cookie_max;
00410 #endif
00411 #ifdef WITH_OPENSSL
00412   BIO *bio;
00413   SSL *ssl;
00414   short require_server_auth;
00415   const char *keyfile;
00416   const char *password;
00417   const char *dhfile;
00418   const char *cafile;
00419 #endif
00420   short dot_net_bug;
00421 };
00422 
00423 extern struct Namespace namespaces[];
00424 
00425 SOAP_FMAC1 int SOAP_FMAC2 soap_serve(struct soap*);
00426 SOAP_FMAC1 int SOAP_FMAC2 soap_connect(struct soap*, const char*, const char*);
00427 SOAP_FMAC1 int SOAP_FMAC2 soap_bind(struct soap*, const char*, int, int);
00428 SOAP_FMAC1 int SOAP_FMAC2 soap_accept(struct soap*);
00429 SOAP_FMAC1 int SOAP_FMAC2 soap_ssl_accept(struct soap*);
00430 
00431 #ifndef WITH_NOGLOBAL
00432 SOAP_FMAC1 void* SOAP_FMAC2 soap_instantiate(struct soap*, int t, const char*, const char*);
00433 SOAP_FMAC1 void SOAP_FMAC2 soap_delete(struct soap*, void*, int, int);
00434 SOAP_FMAC1 void SOAP_FMAC2 soap_fault(struct soap*);
00435 SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultcode(struct soap*);
00436 SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultstring(struct soap*);
00437 SOAP_FMAC1 const char** SOAP_FMAC2 soap_faultdetail(struct soap*);
00438 
00439 SOAP_FMAC1 void SOAP_FMAC2 soap_serializeheader(struct soap*);
00440 SOAP_FMAC1 void SOAP_FMAC2 soap_putheader(struct soap*);
00441 SOAP_FMAC1 int SOAP_FMAC2 soap_getheader(struct soap*);
00442 
00443 SOAP_FMAC1 void SOAP_FMAC2 soap_serializefault(struct soap*);
00444 SOAP_FMAC1 void SOAP_FMAC2 soap_putfault(struct soap*);
00445 SOAP_FMAC1 int SOAP_FMAC2 soap_getfault(struct soap*);
00446 
00447 SOAP_FMAC1 void SOAP_FMAC2 soap_putindependent(struct soap*);
00448 SOAP_FMAC1 int SOAP_FMAC2 soap_getindependent(struct soap*);
00449 #endif
00450 
00451 SOAP_FMAC1 int SOAP_FMAC2 soap_send(struct soap*, const char*);
00452 SOAP_FMAC1 int SOAP_FMAC2 soap_recv(struct soap*);
00453 
00454 SOAP_FMAC1 int SOAP_FMAC2 soap_puthex(struct soap*, int);
00455 SOAP_FMAC1 int SOAP_FMAC2 soap_gethex(struct soap*);
00456 
00457 SOAP_FMAC1 int SOAP_FMAC2 soap_putbase64(struct soap*, const unsigned char*, size_t);
00458 SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_getbase64(struct soap*, int*, int);
00459 
00460 SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_lookup(struct soap*, const void *p, int t, struct soap_plist**);
00461 SOAP_FMAC1 int SOAP_FMAC2 soap_array_pointer_lookup(struct soap*, const void *p, int n, int t, struct soap_plist**);
00462 SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_lookup_id(struct soap*, void *p, int t, struct soap_plist**);
00463 SOAP_FMAC1 int SOAP_FMAC2 soap_pointer_enter(struct soap*, const void *p, int t, struct soap_plist**);
00464 SOAP_FMAC1 int SOAP_FMAC2 soap_array_pointer_enter(struct soap*, const void *p, int t, struct soap_plist**);
00465 
00466 SOAP_FMAC1 void SOAP_FMAC2 soap_begin_count(struct soap*);
00467 SOAP_FMAC1 void SOAP_FMAC2 soap_begin_send(struct soap*);
00468 SOAP_FMAC1 int SOAP_FMAC2 soap_end_send(struct soap*);
00469 
00470 SOAP_FMAC1 void SOAP_FMAC2 soap_embedded(struct soap*, const void *p, int t);
00471 SOAP_FMAC1 int SOAP_FMAC2 soap_reference(struct soap*, const void *p, int t);
00472 SOAP_FMAC1 int SOAP_FMAC2 soap_array_reference(struct soap*, const void *p, int n, int t);
00473 SOAP_FMAC1 int SOAP_FMAC2 soap_embedded_id(struct soap*, int id, const void *p, int t);
00474 SOAP_FMAC1 int SOAP_FMAC2 soap_is_embedded(struct soap*, struct soap_plist*);
00475 SOAP_FMAC1 int SOAP_FMAC2 soap_is_single(struct soap*, struct soap_plist*);
00476 SOAP_FMAC1 int SOAP_FMAC2 soap_is_multi(struct soap*, struct soap_plist*);
00477 SOAP_FMAC1 void SOAP_FMAC2 soap_set_embedded(struct soap*, struct soap_plist*);
00478 
00479 SOAP_FMAC1 int SOAP_FMAC2 soap_getline(struct soap*, char*, int);
00480 SOAP_FMAC1 int SOAP_FMAC2 soap_begin_recv(struct soap*);
00481 SOAP_FMAC1 int SOAP_FMAC2 soap_end_recv(struct soap*);
00482 
00483 SOAP_FMAC1 void SOAP_FMAC2 soap_send_namespaces(struct soap*);
00484 
00485 SOAP_FMAC1 void* SOAP_FMAC2 soap_malloc(struct soap*, size_t);
00486 SOAP_FMAC1 void SOAP_FMAC2 soap_dealloc(struct soap*, void *);
00487 SOAP_FMAC1 void SOAP_FMAC2 soap_free(struct soap*);
00488 SOAP_FMAC1 void SOAP_FMAC2 soap_destroy(struct soap*);
00489 
00490 SOAP_FMAC1 int SOAP_FMAC2 soap_lookup_type(struct soap*, const char *id);
00491 
00492 SOAP_FMAC1 void* SOAP_FMAC2 soap_id_lookup(struct soap*, const char *id, void **p, int t, size_t n, int k);
00493 SOAP_FMAC1 void* SOAP_FMAC2 soap_id_forward(struct soap*, const char *id, void *p, int t, size_t n);
00494 SOAP_FMAC1 void* SOAP_FMAC2 soap_id_enter(struct soap*, const char *id, void *p, int t, size_t n, int k);
00495 SOAP_FMAC1 void* SOAP_FMAC2 soap_class_id_enter(struct soap*, const char*, void*, int, const char*, const char*);
00496 
00497 SOAP_FMAC1 int SOAP_FMAC2 soap_size(const int *, int);
00498 SOAP_FMAC1 int SOAP_FMAC2 soap_getoffsets(const char *, const int *, int *, int);
00499 SOAP_FMAC1 int SOAP_FMAC2 soap_getsize(const char *, const char *, int *);
00500 SOAP_FMAC1 int SOAP_FMAC2 soap_getsizes(const char *, int *, int);
00501 SOAP_FMAC1 int SOAP_FMAC2 soap_getposition(const char *, int *);
00502 
00503 SOAP_FMAC1 char* SOAP_FMAC2 soap_putsize(struct soap*, const char *, int);
00504 SOAP_FMAC1 char* SOAP_FMAC2 soap_putsizesoffsets(struct soap*, const char *, const int *, const int *, int);
00505 SOAP_FMAC1 char* SOAP_FMAC2 soap_putsizes(struct soap*, const char *, const int *, int);
00506 SOAP_FMAC1 char* SOAP_FMAC2 soap_putoffset(struct soap*, int);
00507 SOAP_FMAC1 char* SOAP_FMAC2 soap_putoffsets(struct soap*, const int *, int);
00508 SOAP_FMAC1 char* SOAP_FMAC2 soap_putposition(struct soap*);
00509  
00510 SOAP_FMAC1 int SOAP_FMAC2 soap_ignore_element(struct soap*);
00511 
00512 SOAP_FMAC1 int SOAP_FMAC2 soap_closesock(struct soap*);
00513 
00514 SOAP_FMAC1 struct soap *SOAP_FMAC2 soap_new();
00515 SOAP_FMAC1 void SOAP_FMAC2 soap_init(struct soap*);
00516 SOAP_FMAC1 void SOAP_FMAC2 soap_begin(struct soap*);
00517 SOAP_FMAC1 void SOAP_FMAC2 soap_end(struct soap*);
00518 
00519 SOAP_FMAC1 void SOAP_FMAC2 soap_set_recv_logfile(struct soap*, const char*);
00520 SOAP_FMAC1 void SOAP_FMAC2 soap_set_sent_logfile(struct soap*, const char*);
00521 SOAP_FMAC1 void SOAP_FMAC2 soap_set_test_logfile(struct soap*, const char*);
00522 SOAP_FMAC1 void SOAP_FMAC2 soap_close_logfiles(struct soap*);
00523 SOAP_FMAC1 void SOAP_FMAC2 soap_open_logfile(struct soap*, int);
00524 
00525 SOAP_FMAC1 char* SOAP_FMAC2 soap_value(struct soap*);
00526 
00527 SOAP_FMAC1 wchar SOAP_FMAC2 soap_skip(struct soap*);
00528 
00529 SOAP_FMAC1 int SOAP_FMAC2 soap_match_tag(struct soap*, const char*, const char *);
00530 
00531 SOAP_FMAC1 int SOAP_FMAC2 soap_match_array(struct soap*, const char*);
00532 
00533 SOAP_FMAC1 void SOAP_FMAC2 soap_element_begin_out(struct soap*, const char *tag, int id, const char *type);
00534 SOAP_FMAC1 void SOAP_FMAC2 soap_array_begin_out(struct soap*, const char *tag, int id, const char *type, const char *offset);
00535 
00536 SOAP_FMAC1 void SOAP_FMAC2 soap_element_end_out(struct soap*, const char *tag);
00537 
00538 SOAP_FMAC1 void SOAP_FMAC2 soap_element_ref(struct soap*, const char *tag, int id, int href);
00539 
00540 SOAP_FMAC1 void SOAP_FMAC2 soap_element_null(struct soap*, const char *tag, int id, const char *type);
00541 
00542 SOAP_FMAC1 int SOAP_FMAC2 soap_element_begin_in(struct soap*, const char *tag);
00543 
00544 SOAP_FMAC1 int SOAP_FMAC2 soap_element_end_in(struct soap*, const char *tag);
00545 
00546 SOAP_FMAC1 int SOAP_FMAC2 soap_peek_element(struct soap*);
00547 
00548 SOAP_FMAC1 void SOAP_FMAC2 soap_revert(struct soap*);
00549 
00550 SOAP_FMAC1 int SOAP_FMAC2 soap_ignore_element(struct soap*);
00551 
00552 SOAP_FMAC1 void SOAP_FMAC2 soap_convert_string_out(struct soap*, const char *s);
00553 
00554 SOAP_FMAC1 int SOAP_FMAC2 soap_match_namespace(struct soap*, const char *, const char*, int n1, int n2);
00555 
00556 SOAP_FMAC1 void SOAP_FMAC2 soap_pop_namespace(struct soap*);
00557 SOAP_FMAC1 int SOAP_FMAC2 soap_push_namespace(struct soap*, const char *,const char *);
00558 
00559 SOAP_FMAC1 int SOAP_FMAC2 soap_new_block(struct soap*);
00560 SOAP_FMAC1 void* SOAP_FMAC2 soap_push_block(struct soap*, size_t);
00561 SOAP_FMAC1 void SOAP_FMAC2 soap_pop_block(struct soap*);
00562 SOAP_FMAC1 void SOAP_FMAC2 soap_store_block(struct soap*, char *);
00563 
00564 SOAP_FMAC1 void SOAP_FMAC2 soap_envelope_begin_out(struct soap*);
00565 SOAP_FMAC1 void soap_envelope_end_out(struct soap*);
00566 
00567 SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_begin_in(struct soap*);
00568 SOAP_FMAC1 int SOAP_FMAC2 soap_envelope_end_in(struct soap*);
00569 
00570 SOAP_FMAC1 void SOAP_FMAC2 soap_body_begin_out(struct soap*);
00571 SOAP_FMAC1 void SOAP_FMAC2 soap_body_end_out(struct soap*);
00572 
00573 SOAP_FMAC1 int SOAP_FMAC2 soap_body_begin_in(struct soap*);
00574 SOAP_FMAC1 int SOAP_FMAC2 soap_body_end_in(struct soap*);
00575 
00576 SOAP_FMAC1 int SOAP_FMAC2 soap_recv_header(struct soap*);
00577 
00578 SOAP_FMAC1 int SOAP_FMAC2 soap_response(struct soap*);
00579 
00580 SOAP_FMAC1 int SOAP_FMAC2 soap_send_fault(struct soap*);
00581 
00582 SOAP_FMAC1 int SOAP_FMAC2 soap_recv_fault(struct soap*);
00583 
00584 SOAP_FMAC1 void SOAP_FMAC2 soap_print_fault(struct soap*, FILE*);
00585 SOAP_FMAC1 void SOAP_FMAC2 soap_print_fault_location(struct soap*, FILE*);
00586 
00587 SOAP_FMAC1 void SOAP_FMAC2 soap_outint(struct soap*, const char *tag, int id, const int *p, const char *, int);
00588 SOAP_FMAC1 int* SOAP_FMAC2 soap_inint(struct soap*, const char *tag, int *p, const char *, int);
00589 
00590 SOAP_FMAC1 void SOAP_FMAC2 soap_outbyte(struct soap*, const char *tag, int id, const char *p, const char *, int);
00591 SOAP_FMAC1 char* SOAP_FMAC2 soap_inbyte(struct soap*, const char *tag, char *p, const char *, int);
00592 
00593 SOAP_FMAC1 void SOAP_FMAC2 soap_outlong(struct soap*, const char *tag, int id, const long *p, const char *, int);
00594 SOAP_FMAC1 long* SOAP_FMAC2 soap_inlong(struct soap*, const char *tag, long *p, const char *, int);
00595 
00596 SOAP_FMAC1 void SOAP_FMAC2 soap_outLONG64(struct soap*, const char *tag, int id, const LONG64 *p, const char *, int);
00597 SOAP_FMAC1 LONG64* SOAP_FMAC2 soap_inLONG64(struct soap*, const char *tag, LONG64 *p, const char *, int);
00598 
00599 SOAP_FMAC1 void SOAP_FMAC2 soap_outshort(struct soap*, const char *tag, int id, const short *p, const char *, int);
00600 SOAP_FMAC1 short* SOAP_FMAC2 soap_inshort(struct soap*, const char *tag, short *p, const char *, int);
00601 
00602 SOAP_FMAC1 void soap_outfloat(struct soap*, const char *tag, int id, const float *p, const char *, int);
00603 SOAP_FMAC1 float* SOAP_FMAC2 soap_infloat(struct soap*, const char *tag, float *p, const char *, int);
00604 
00605 SOAP_FMAC1 void SOAP_FMAC2 soap_outdouble(struct soap*, const char *tag, int id, const double *p, const char *, int);
00606 SOAP_FMAC1 double* SOAP_FMAC2 soap_indouble(struct soap*, const char *tag, double *p, const char *, int);
00607 
00608 SOAP_FMAC1 void SOAP_FMAC2 soap_outunsignedByte(struct soap*, const char *tag, int id, const unsigned char *p, const char *, int);
00609 SOAP_FMAC1 unsigned char* SOAP_FMAC2 soap_inunsignedByte(struct soap*, const char *tag, unsigned char *p, const char *, int);
00610 
00611 SOAP_FMAC1 void SOAP_FMAC2 soap_outunsignedShort(struct soap*, const char *tag, int id, const unsigned short *p, const char *, int);
00612 SOAP_FMAC1 unsigned short* SOAP_FMAC2 soap_inunsignedShort(struct soap*, const char *tag, unsigned short *p, const char *, int);
00613 
00614 SOAP_FMAC1 void SOAP_FMAC2 soap_outunsignedInt(struct soap*, const char *tag, int id, const unsigned int *p, const char *, int);
00615 SOAP_FMAC1 unsigned int* SOAP_FMAC2 soap_inunsignedInt(struct soap*, const char *tag, unsigned int *p, const char *, int);
00616 
00617 SOAP_FMAC1 void SOAP_FMAC2 soap_outunsignedLong(struct soap*, const char *tag, int id, const unsigned long *p, const char *, int);
00618 SOAP_FMAC1 unsigned long* SOAP_FMAC2 soap_inunsignedLong(struct soap*, const char *tag, unsigned long *p, const char *, int);
00619 
00620 SOAP_FMAC1 void SOAP_FMAC2 soap_outULONG64(struct soap*, const char *tag, int id, const ULONG64 *p, const char *, int);
00621 SOAP_FMAC1 ULONG64* SOAP_FMAC2 soap_inULONG64(struct soap*, const char *tag, ULONG64 *p, const char *, int);
00622 
00623 SOAP_FMAC1 void SOAP_FMAC2 soap_outstring(struct soap*, const char *tag, int id, char *const*p, const char *, int);
00624 SOAP_FMAC1 char** SOAP_FMAC2 soap_instring(struct soap*, const char *tag, char **p, const char *, int);
00625 
00626 SOAP_FMAC1 void SOAP_FMAC2 soap_outwstring(struct soap*, const char *tag, int id, wchar_t *const*p, const char *, int);
00627 SOAP_FMAC1 wchar_t** SOAP_FMAC2 soap_inwstring(struct soap*, const char *tag, wchar_t **p, const char *, int);
00628 
00629 SOAP_FMAC1 void SOAP_FMAC2 soap_outliteral(struct soap*, const char *tag, char *const*p);
00630 SOAP_FMAC1 char** SOAP_FMAC2 soap_inliteral(struct soap*, const char *tag, char **p);
00631 
00632 SOAP_FMAC1 void SOAP_FMAC2 soap_outwliteral(struct soap*, const char *tag, wchar_t *const*p);
00633 SOAP_FMAC1 wchar_t** SOAP_FMAC2 soap_inwliteral(struct soap*, const char *tag, wchar_t **p);
00634 
00635 SOAP_FMAC1 void SOAP_FMAC2 soap_outdateTime(struct soap*, const char *tag, int id, const time_t *p, const char *, int);
00636 SOAP_FMAC1 time_t* SOAP_FMAC2 soap_indateTime(struct soap*, const char *tag, time_t *p, const char *, int);
00637 
00638 #ifdef WITH_COOKIES
00639 SOAP_FMAC1 extern struct soap_cookie *SOAP_FMAC2 soap_set_cookie(struct soap*, const char*, const char*, const char*, const char*);
00640 SOAP_FMAC1 extern struct soap_cookie *SOAP_FMAC2 soap_cookie(struct soap*, const char*, const char*, const char*);
00641 SOAP_FMAC1 extern char* SOAP_FMAC2 soap_cookie_value(struct soap*, const char*, const char*, const char*);
00642 SOAP_FMAC1 extern long SOAP_FMAC2 soap_cookie_expire(struct soap*, const char*, const char*, const char*);
00643 SOAP_FMAC1 extern int SOAP_FMAC2 soap_set_cookie_expire(struct soap*, const char*, long, const char*, const char*);
00644 SOAP_FMAC1 extern int SOAP_FMAC2 soap_set_cookie_session(struct soap*, const char*, const char*, const char*);
00645 SOAP_FMAC1 extern int SOAP_FMAC2 soap_clr_cookie_session(struct soap*, const char*, const char*, const char*);
00646 SOAP_FMAC1 extern void SOAP_FMAC2 soap_clr_cookie(struct soap*, const char*, const char*, const char*);
00647 SOAP_FMAC1 extern int SOAP_FMAC2 soap_getenv_cookies(struct soap*);
00648 SOAP_FMAC1 extern void SOAP_FMAC2 soap_free_cookies(struct soap*);
00649 #endif
00650 
00651 #ifdef __cplusplus
00652 }
00653 #endif
00654 
00655 #endif
00656 

Generated at Fri Jul 26 18:26:25 2002 for LEMUR by doxygen1.2.4 written by Dimitri van Heesch, © 1997-2000