📄 stdsoap2.h
字号:
# define SOAP_EINPROGRESS WSAEINPROGRESS#else# define SOAP_EINTR EINTR# define SOAP_EAGAIN EAGAIN# ifdef SYMBIAN# define SOAP_EWOULDBLOCK 9898# define SOAP_EINPROGRESS 9899# else# define SOAP_EWOULDBLOCK EWOULDBLOCK# define SOAP_EINPROGRESS EINPROGRESS# endif#endif#ifdef WIN32# ifdef UNDER_CE# define soap_errno GetLastError()# define soap_socket_errno GetLastError()# else# define soap_errno GetLastError()# define soap_socket_errno WSAGetLastError()# endif#else# define soap_errno errno# define soap_socket_errno errno#endif#ifndef SOAP_BUFLEN# ifndef WITH_LEAN# define SOAP_BUFLEN (32768) /* buffer length for socket packets, also used by gethostbyname_r so don't make this too small */# else# define SOAP_BUFLEN (2048)# endif#endif#ifndef SOAP_PTRHASH# ifndef WITH_LEAN# define SOAP_PTRHASH (1024) /* size of pointer analysis hash table (must be power of 2) */# else# define SOAP_PTRHASH (16)# endif#endif#ifndef SOAP_IDHASH# ifndef WITH_LEAN# define SOAP_IDHASH (256) /* size of hash table for receiving id/href's */# else# define SOAP_IDHASH (16)# endif#endif#ifndef SOAP_BLKLEN# define SOAP_BLKLEN (256) /* size of blocks to collect long strings and XML attributes */#endif#ifndef SOAP_TAGLEN# define SOAP_TAGLEN (256) /* maximum length of XML element tag/attribute name + 1 */#endif#ifndef SOAP_HDRLEN# ifndef WITH_LEAN# define SOAP_HDRLEN (8192) /* maximum length of HTTP header line (must be >4096 to read cookies) */# else# define SOAP_HDRLEN (1024)# endif#endif#ifndef SOAP_MAXDIMS# define SOAP_MAXDIMS (16) /* maximum array dimensions (array nestings) must be less than 64 to protect soap->tmpbuf */#endif#ifndef SOAP_MAXLOGS# define SOAP_MAXLOGS (3) /* max number of debug logs per struct soap environment */# define SOAP_INDEX_RECV (0)# define SOAP_INDEX_SENT (1)# define SOAP_INDEX_TEST (2)#endif#ifndef SOAP_MAXKEEPALIVE# define SOAP_MAXKEEPALIVE (100) /* max iterations to keep server connection alive */#endif#ifndef FLT_NAN# if (defined(_MATH_H) || defined(_MATH_INCLUDED))# define FLT_NAN (*(float*)&soap_double_nan)# else# define FLT_NAN (0.0)# endif#endif#ifndef FLT_PINFTY# ifdef FLT_MAX# define FLT_PINFTY FLT_MAX# else# ifdef HUGE_VAL# define FLT_PINFTY (float)HUGE_VAL# else# ifdef FLOAT_MAX# define FLT_PINFTY FLOAT_MAX# else# define FLT_PINFTY (3.40282347e+38)# endif# endif# endif#endif#ifndef FLT_NINFTY# define FLT_NINFTY (-FLT_PINFTY)#endif#ifndef DBL_NAN# if (defined(_MATH_H) || defined(_MATH_INCLUDED))# define DBL_NAN (*(double*)&soap_double_nan)# else# define DBL_NAN (0.0)# endif#endif#ifndef DBL_PINFTY# ifdef DBL_MAX# define DBL_PINFTY DBL_MAX# else# ifdef HUGE_VAL# define DBL_PINFTY (double)HUGE_VAL# else# ifdef DOUBLE_MAX# define DBL_PINFTY DOUBLE_MAX# else# define DBL_PINFTY (1.7976931348623157e+308)# endif# endif# endif#endif#ifndef DBL_NINFTY# define DBL_NINFTY (-DBL_PINFTY)#endif/* gSOAP error codes */#define SOAP_EOF EOF#define SOAP_ERR EOF#define SOAP_OK 0#define SOAP_CLI_FAULT 1#define SOAP_SVR_FAULT 2#define SOAP_TAG_MISMATCH 3#define SOAP_TYPE_MISMATCH 4#define SOAP_SYNTAX_ERROR 5#define SOAP_NO_TAG 6#define SOAP_IOB 7#define SOAP_MUSTUNDERSTAND 8#define SOAP_NAMESPACE 9#define SOAP_OBJ_MISMATCH 10#define SOAP_FATAL_ERROR 11#define SOAP_FAULT 12#define SOAP_NO_METHOD 13#define SOAP_GET_METHOD 14#define SOAP_EOM 15#define SOAP_NULL 16#define SOAP_MULTI_ID 17#define SOAP_MISSING_ID 18#define SOAP_HREF 19#define SOAP_TCP_ERROR 20#define SOAP_HTTP_ERROR 21#define SOAP_SSL_ERROR 22#define SOAP_ZLIB_ERROR 23#define SOAP_DIME_ERROR 24#define SOAP_EOD 25#define SOAP_VERSIONMISMATCH 26#define SOAP_DIME_MISMATCH 27#define SOAP_PLUGIN_ERROR 28#define SOAP_DATAENCODINGUNKNOWN 29#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)#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)#define soap_tcp_error_check(e) ((e) == SOAP_EOF || (e) == SOAP_TCP_ERROR)#define soap_ssl_error_check(e) ((e) == SOAP_SSL_ERROR)#define soap_zlib_error_check(e) ((e) == SOAP_ZLIB_ERROR)#define soap_dime_error_check(e) ((e) == SOAP_DIME_ERROR || (e) == SOAP_DIME_MISMATCH)#define soap_http_error_check(e) ((e) == SOAP_HTTP_ERROR || (e) == SOAP_GET_METHOD || ((e) >= 100 && (e) < 600))/* gSOAP HTTP response status codes 100 to 600 are reserved *//* Special gSOAP HTTP response status codes */#define SOAP_STOP 1000 /* No HTTP response */#define SOAP_HTML 1001 /* Custom HTML response */#define SOAP_FILE 1002 /* Custom file-based response *//* gSOAP HTTP request status codes */#define SOAP_POST 1003#define SOAP_GET 1104/* gSOAP DIME */#define SOAP_DIME_CF 0x01#define SOAP_DIME_ME 0x02#define SOAP_DIME_MB 0x04#define SOAP_DIME_VERSION 0x08 /* DIME version 1 */#define SOAP_DIME_MEDIA 0x10#define SOAP_DIME_ABSURI 0x20/* gSOAP ZLIB */#define SOAP_ZLIB_NONE 0x00#define SOAP_ZLIB_DEFLATE 0x01#define SOAP_ZLIB_GZIP 0x02/* gSOAP transport, connection, and content encoding modes */#define SOAP_IO 0x0003#define SOAP_IO_FLUSH 0x0000 /* flush output immediately, no buffering */#define SOAP_IO_BUFFER 0x0001 /* buffer output in packets of size SOAP_BUFLEN */#define SOAP_IO_STORE 0x0002 /* store entire output to determine length for transport */#define SOAP_IO_CHUNK 0x0003 /* use HTTP chunked transfer AND buffer packets */#define SOAP_IO_LENGTH 0x0004#define SOAP_IO_KEEPALIVE 0x0008#define SOAP_ENC_XML 0x0010 /* plain XML encoding, no HTTP header */#define SOAP_ENC_DIME 0x0020#define SOAP_ENC_ZLIB 0x0040#define SOAP_ENC_SSL 0x0080#define SOAP_XML_STRICT 0x0100 /* input mode flag */#define SOAP_XML_CANONICAL 0x0100 /* output mode flag */#define SOAP_XML_TREE 0x0200#define SOAP_XML_GRAPH 0x0400#define SOAP_XML_NIL 0x0800#define SOAP_C_NOIOB 0x1000#define SOAP_C_UTFSTRING 0x2000#define SOAP_C_LATIN 0x4000#define SOAP_IO_DEFAULT SOAP_IO_FLUSH/* */#define SOAP_BEGIN 0#define SOAP_IN_ENVELOPE 2#define SOAP_IN_HEADER 3#define SOAP_END_HEADER 4#define SOAP_IN_BODY 5#define SOAP_END_BODY 6#define SOAP_END_ENVELOPE 7#define SOAP_END 8/* DEBUG macros */#ifndef WITH_LEAN# ifdef DEBUG# ifndef SOAP_DEBUG# define SOAP_DEBUG# endif# endif#endif#ifdef SOAP_DEBUG# ifndef SOAP_MESSAGE# define SOAP_MESSAGE fprintf# endif# ifndef DBGLOG# define DBGLOG(DBGFILE, CMD) \{ if (soap)\ { if (!soap->fdebug[SOAP_INDEX_##DBGFILE])\ soap_open_logfile(soap, SOAP_INDEX_##DBGFILE);\ if (soap->fdebug[SOAP_INDEX_##DBGFILE])\ { FILE *fdebug = soap->fdebug[SOAP_INDEX_##DBGFILE];\ CMD;\ fflush(fdebug);\ }\ }\}# endif# ifndef DBGMSG# define DBGMSG(DBGFILE, MSG, LEN) \{ if (soap)\ { if (!soap->fdebug[SOAP_INDEX_##DBGFILE])\ soap_open_logfile(soap, SOAP_INDEX_##DBGFILE);\ if (soap->fdebug[SOAP_INDEX_##DBGFILE])\ { FILE *fdebug = soap->fdebug[SOAP_INDEX_##DBGFILE];\ unsigned int i;\ for (i = 0; i < (unsigned int)(LEN); i++) fputc((MSG)[i], fdebug);\ fflush(fdebug);\ }\ }\}# endif#else# define DBGLOG(DBGFILE, CMD)# define DBGMSG(DBGFILE, MSG, LEN)#endiftypedef long wchar; /* for compatibility */struct Namespace{ const char *id; const char *ns; const char *in; char *out;};struct soap_nlist{ struct soap_nlist *next; unsigned int level; short index; /* corresponding entry in ns mapping table */ char *ns; /* only set when parsed ns URI is not in the ns mapping table */ char id[1]; /* the actual string value overflows into allocated region below this struct */};struct soap_blist{ struct soap_blist *next; char *ptr; size_t size;};struct soap_array{ void *__ptr; int __size;};struct soap_plist{ struct soap_plist *next; const void *ptr; const struct soap_array *array; int type; int id; char mark1; char mark2;};struct soap_clist{ struct soap_clist *next; void *ptr; int type; int size; void (*fdelete)(struct soap_clist*);};struct soap_ilist{ struct soap_ilist *next; int type; size_t size; void *link; void *copy; struct soap_clist *clist; void *ptr; unsigned int level; char id[1]; /* the actual id string value overflows into allocated region below this struct */};struct soap_attribute{ struct soap_attribute *next; short visible; char *value; size_t size; char *ns; char name[1]; /* the actual name string overflows into allocated region below this struct */};struct soap_cookie{ struct soap_cookie *next; char *name; char *value; char *domain; char *path; long expire; /* client-side: local time to expire; server-side: seconds to expire */ unsigned int version; short secure; short session; /* server-side */ short env; /* server-side: got cookie from client */ short modified; /* server-side: client cookie was modified */};struct soap{ short version; /* 1 = SOAP1.1 and 2 = SOAP1.2 (set automatically from namespace URI in nsmap table) */ short mode; short imode; short omode; short copy; /* 1 = copy of another soap struct */ const char *float_format; /* points to user-definable format string for floats (<1024 chars) */ const char *double_format; /* points to user-definable format string for doubles (<1024 chars) */ const char *dime_id_format; /* points to user-definable format string for integer DIME id (<SOAP_TAGLEN chars) */ const char *http_version; /* default = "1.0" */ const char *http_content; /* optional custom response content type (with SOAP_FILE) */ const char *encodingStyle; /* default = NULL which means that SOAP encoding is used */ const char *actor; int recv_timeout; /* when > 0, gives socket recv timeout in seconds, < 0 in usec */ int send_timeout; /* when > 0, gives socket send timeout in seconds, < 0 in usec */ int connect_timeout; /* when > 0, gives socket connect() timeout in seconds, < 0 in usec */ int accept_timeout; /* when > 0, gives socket accept() timeout in seconds, < 0 in usec */ int socket_flags; /* socket recv() and send() flags, e.g. set to MSG_NOSIGNAL to disable sigpipe */ int connect_flags; /* connect() SOL_SOCKET sockopt flags, e.g. set to SO_DEBUG to debug socket */ int bind_flags; /* bind() SOL_SOCKET sockopt flags, e.g. set to SO_REUSEADDR to enable reuse */ int accept_flags; /* accept() SOL_SOCKET sockopt flags */ struct Namespace *namespaces; /* Pointer to global namespace mapping table */ struct Namespace *local_namespaces; /* Local namespace mapping table */ struct soap_nlist *nlist; /* namespace stack */ struct soap_blist *blist; /* block allocation stack */ struct soap_clist *clist; /* class instance allocation list */ void *alist; /* memory allocation list */ struct soap_ilist *iht[SOAP_IDHASH]; struct soap_plist *pht[SOAP_PTRHASH]; struct SOAP_ENV__Header *header; struct SOAP_ENV__Fault *fault; void *user; /* to pass user-defined data */ struct soap_plugin *plugins; /* linked list of plug-in data */ char *userid; /* HTTP Basic authorization userid */ char *passwd; /* HTTP Basic authorization passwd */ int (*fpost)(struct soap*, const char*, const char*, int, const char*, const char*, size_t); int (*fget)(struct soap*, const char*, const char*, const char*, const char*, size_t); int (*fposthdr)(struct soap*, const char*, const char*); int (*fresponse)(struct soap*, int, size_t); int (*fparse)(struct soap*); int (*fparsehdr)(struct soap*, const char*, const char*); int (*fconnect)(struct soap*, const char*, const char*, int); int (*fdisconnect)(struct soap*); int (*fopen)(struct soap*, const char*, const char*, int); int (*faccept)(struct soap*, int, struct sockaddr*, int *n); int (*fclose)(struct soap*); int (*fsend)(struct soap*, const char*, size_t); size_t (*frecv)(struct soap*, char*, size_t); int (*fprepare)(struct soap*, const char*, size_t); int (*fignore)(struct soap*, const char*); void *(*fplugin)(struct soap*, const char*); void *(*fdimereadopen)(struct soap*, void*, const char*, const char*, const char*); void *(*fdimewriteopen)(struct soap*, const char*, const char*, const char*); void (*fdimereadclose)(struct soap*, void*); void (*fdimewriteclose)(struct soap*, void*); size_t (*fdimeread)(struct soap*, void*, char*, size_t); int (*fdimewrite)(struct soap*, void*, const char*, size_t); int master; int socket;#if defined(__cplusplus) && !defined(UNDER_CE) std::ostream *os; std::istream *is;#else void *os; /* preserve alignment */ void *is; /* preserve alignment */#endif#ifndef UNDER_CE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -