📄 soapc.c
字号:
/* soapC.c Generated by gSOAP 2.3 from quote.h Copyright (C) 2001-2003 Genivia inc. All Rights Reserved.*/#include "soapH.h"#ifdef __cplusplusextern "C" {#endifSOAP_SOURCE_STAMP("@(#) soapC.c ver 2.3 2003-06-24 23:24:12 GMT")#ifndef WITH_NOGLOBALSOAP_FMAC1 void SOAP_FMAC2 soap_serializeheader(struct soap *soap){ soap_serialize_SOAP_ENV__Header(soap, soap->header);}SOAP_FMAC1 int SOAP_FMAC2 soap_putheader(struct soap *soap){ if (soap->header) { soap->part = SOAP_IN_HEADER; soap_out_SOAP_ENV__Header(soap, "SOAP-ENV:Header", 0, soap->header, NULL); soap->part = SOAP_END_HEADER; } return SOAP_OK;}SOAP_FMAC1 int SOAP_FMAC2 soap_getheader(struct soap *soap){ soap->part = SOAP_IN_HEADER; soap->header = soap_in_SOAP_ENV__Header(soap, "SOAP-ENV:Header", NULL, NULL); soap->part = SOAP_END_HEADER; return soap->header == NULL;}SOAP_FMAC1 void SOAP_FMAC2 soap_fault(struct soap *soap){ if (!soap->fault) { soap->fault = (struct SOAP_ENV__Fault*)soap_malloc(soap, sizeof(struct SOAP_ENV__Fault)); soap_default_SOAP_ENV__Fault(soap, soap->fault); } if (soap->version == 2 && !soap->fault->SOAP_ENV__Code) { soap->fault->SOAP_ENV__Code = (struct SOAP_ENV__Code*)soap_malloc(soap, sizeof(struct SOAP_ENV__Code)); soap_default_SOAP_ENV__Code(soap, soap->fault->SOAP_ENV__Code); }}SOAP_FMAC1 void SOAP_FMAC2 soap_serializefault(struct soap *soap){ soap_serialize_SOAP_ENV__Fault(soap, soap->fault);}SOAP_FMAC1 int SOAP_FMAC2 soap_putfault(struct soap *soap){ return soap_out_SOAP_ENV__Fault(soap, "SOAP-ENV:Fault", 0, soap->fault, NULL);}SOAP_FMAC1 int SOAP_FMAC2 soap_getfault(struct soap *soap){ return (soap->fault = soap_in_SOAP_ENV__Fault(soap, "SOAP-ENV:Fault", NULL, NULL)) == NULL;}SOAP_FMAC1 const char ** SOAP_FMAC2 soap_faultcode(struct soap *soap){ soap_fault(soap); if (soap->version == 2) return (const char**)&soap->fault->SOAP_ENV__Code->SOAP_ENV__Value; return (const char**)&soap->fault->faultcode;}SOAP_FMAC1 const char ** SOAP_FMAC2 soap_faultstring(struct soap *soap){ soap_fault(soap); if (soap->version == 2) return (const char**)&soap->fault->SOAP_ENV__Reason; return (const char**)&soap->fault->faultstring;}SOAP_FMAC1 const char ** SOAP_FMAC2 soap_faultdetail(struct soap *soap){ soap_fault(soap); if (soap->version == 2) return (const char**)&soap->fault->SOAP_ENV__Detail; return (const char**)&soap->fault->detail;}#endifSOAP_FMAC1 int SOAP_FMAC2 soap_getindependent(struct soap *soap){ int t; for (;;) if (!soap_getelement(soap, &t)) if (soap->error || soap_ignore_element(soap)) break; if (soap->error == SOAP_NO_TAG || soap->error == SOAP_EOF) soap->error = SOAP_OK; return soap->error;}SOAP_FMAC1 void * SOAP_FMAC2 soap_getelement(struct soap *soap, int *type){ if (soap_peek_element(soap)) return NULL; if (!*soap->id || !(*type = soap_lookup_type(soap, soap->id))) *type = soap_lookup_type(soap, soap->href); switch (*type) { case SOAP_TYPE_byte: return soap_in_byte(soap, NULL, NULL, "xsd:byte"); case SOAP_TYPE_int: return soap_in_int(soap, NULL, NULL, "xsd:int"); case SOAP_TYPE_float: return soap_in_float(soap, NULL, NULL, "xsd:float"); case SOAP_TYPE_ns__getQuote: return soap_in_ns__getQuote(soap, NULL, NULL, "ns:getQuote"); case SOAP_TYPE_ns__getQuoteResponse: return soap_in_ns__getQuoteResponse(soap, NULL, NULL, "ns:getQuoteResponse"); case SOAP_TYPE_PointerTofloat: return soap_in_PointerTofloat(soap, NULL, NULL, "xsd:float"); case SOAP_TYPE__QName: { char **s; s = soap_in__QName(soap, NULL, NULL, "QName"); return s ? *s : NULL; } case SOAP_TYPE_string: { char **s; s = soap_in_string(soap, NULL, NULL, "xsd:string"); return s ? *s : NULL; } default: if (!*soap->type) return NULL; if (!soap_match_tag(soap, soap->type, "xsd:byte")) { *type = SOAP_TYPE_byte; return soap_in_byte(soap, NULL, NULL, NULL); } if (!soap_match_tag(soap, soap->type, "xsd:int")) { *type = SOAP_TYPE_int; return soap_in_int(soap, NULL, NULL, NULL); } if (!soap_match_tag(soap, soap->type, "xsd:float")) { *type = SOAP_TYPE_float; return soap_in_float(soap, NULL, NULL, NULL); } if (!soap_match_tag(soap, soap->type, "ns:getQuote")) { *type = SOAP_TYPE_ns__getQuote; return soap_in_ns__getQuote(soap, NULL, NULL, NULL); } if (!soap_match_tag(soap, soap->type, "ns:getQuoteResponse")) { *type = SOAP_TYPE_ns__getQuoteResponse; return soap_in_ns__getQuoteResponse(soap, NULL, NULL, NULL); } if (!soap_match_tag(soap, soap->type, "QName")) { char **s; *type = SOAP_TYPE__QName; s = soap_in__QName(soap, NULL, NULL, NULL); return s ? *s : NULL; } if (!soap_match_tag(soap, soap->type, "xsd:string")) { char **s; *type = SOAP_TYPE_string; s = soap_in_string(soap, NULL, NULL, NULL); return s ? *s : NULL; } return NULL; }}SOAP_FMAC1 int SOAP_FMAC2 soap_ignore_element(struct soap *soap){ if (soap->mode & SOAP_XML_STRICT) return SOAP_TAG_MISMATCH; if (!soap_peek_element(soap)) { int t; if (soap->mustUnderstand && !soap->other) return soap->error = SOAP_MUSTUNDERSTAND; if (!*soap->id || !soap_getelement(soap, &t)) { soap->peeked = 0; DBGLOG(TEST, SOAP_MESSAGE(fdebug, "Unknown element '%s' (level=%u, %d)\n", soap->tag, soap->level, soap->body)); if (soap->fignore) soap->error = soap->fignore(soap, soap->tag); else soap->error = SOAP_OK; DBGLOG(TEST, if (!soap->error) SOAP_MESSAGE(fdebug, "IGNORING element '%s'\n", soap->tag)); if (!soap->error && soap->body) { soap->level++; while (!soap_ignore_element(soap)) ; if (soap->error == SOAP_NO_TAG) soap->error = soap_element_end_in(soap, NULL); } } } return soap->error;}SOAP_FMAC1 int SOAP_FMAC2 soap_putindependent(struct soap *soap){ int i; struct soap_plist *pp; if (soap->version == 1 && !(soap->mode & (SOAP_XML_TREE | SOAP_XML_GRAPH))) for (i = 0; i < SOAP_PTRHASH; i++) for (pp = soap->pht[i]; pp; pp = pp->next) if ((soap->mode & SOAP_IO_LENGTH) ? pp->mark1 == 2 : pp->mark2 == 2) if (soap_putelement(soap, pp->ptr, "id", pp->id, pp->type)) return soap->error; return SOAP_OK;}SOAP_FMAC1 int SOAP_FMAC2 soap_putelement(struct soap *soap, const void *ptr, const char *tag, int id, int type){ switch (type) { case SOAP_TYPE_byte: return soap_out_byte(soap, tag, id, (const char *)ptr, "xsd:byte"); case SOAP_TYPE_int: return soap_out_int(soap, tag, id, (const int *)ptr, "xsd:int"); case SOAP_TYPE_float: return soap_out_float(soap, tag, id, (const float *)ptr, "xsd:float"); case SOAP_TYPE_ns__getQuote: return soap_out_ns__getQuote(soap, tag, id, (const struct ns__getQuote *)ptr, "ns:getQuote"); case SOAP_TYPE_ns__getQuoteResponse: return soap_out_ns__getQuoteResponse(soap, tag, id, (const struct ns__getQuoteResponse *)ptr, "ns:getQuoteResponse"); case SOAP_TYPE_PointerTofloat: return soap_out_PointerTofloat(soap, tag, id, (float *const*)ptr, "xsd:float"); case SOAP_TYPE__QName: return soap_out_string(soap, tag, id, (char**)&ptr, "QName"); case SOAP_TYPE_string: return soap_out_string(soap, tag, id, (char**)&ptr, "xsd:string"); } return SOAP_OK;}#ifndef WITH_LEANERSOAP_FMAC1 int SOAP_FMAC2 soap_getattachments(struct soap *soap){ if (!(soap->mode & SOAP_ENC_DIME)) return SOAP_OK; while (soap->dime_flags & SOAP_DIME_CF) { if (soap_getdimehdr(soap)) return soap->error; if (soap_move(soap, soap->dime_size)) return soap->error = SOAP_EOF; } if (soap_move(soap, ((soap->dime_size+3)&(~3))-soap_tell(soap))) return soap->error = SOAP_EOF; for (;;) { if (soap_getdime(soap) || !soap->dime_id) break; switch (soap_lookup_type(soap, soap->dime_id)) { case SOAP_TYPE__QName: { char ** a; a = (char **)soap_id_enter(soap, soap->dime_id, NULL, SOAP_TYPE__QName, sizeof(char *), 0); if (a) *a = soap->dime_ptr; break; } case SOAP_TYPE_string: { char ** a; a = (char **)soap_id_enter(soap, soap->dime_id, NULL, SOAP_TYPE_string, sizeof(char *), 0); if (a) *a = soap->dime_ptr; break; } default: soap->error = SOAP_DIME_ERROR; } if (soap->error) break; } if (soap->error == SOAP_EOD) soap->error = SOAP_OK; return soap->error;}SOAP_FMAC1 int SOAP_FMAC2 soap_putattachments(struct soap *soap){ int i; struct soap_plist *pp; if (!(soap->mode & SOAP_ENC_DIME)) return SOAP_OK; for (i = 0; i < SOAP_PTRHASH; i++) for (pp = soap->pht[i]; pp; pp = pp->next) if (pp->mark2 == 3) switch (pp->type) { } return SOAP_OK;}#endifSOAP_FMAC1 void SOAP_FMAC2 soap_default_byte(struct soap *soap, char *a){#ifdef SOAP_DEFAULT_byte *a = SOAP_DEFAULT_byte;#else *a = (char)0;#endif}SOAP_FMAC1 void SOAP_FMAC2 soap_serialize_byte(struct soap *soap, char const*a){ soap_reference(soap, a, SOAP_TYPE_byte);}SOAP_FMAC1 int SOAP_FMAC2 soap_put_byte(struct soap *soap, char *a, const char *tag, const char *type){ int i = soap_embed_element(soap, (void*)a, tag, SOAP_TYPE_byte); if (i >= 0) soap_out_byte(soap, tag, i, a, type); return soap_putindependent(soap);}SOAP_FMAC1 int SOAP_FMAC2 soap_out_byte(struct soap *soap, const char *tag, int id, const char *a, const char *type){ return soap_outbyte(soap, tag, id, a, type, SOAP_TYPE_byte);}SOAP_FMAC1 char * SOAP_FMAC2 soap_get_byte(struct soap *soap, char *p, const char *tag, const char *type){ if ((p = soap_in_byte(soap, tag, p, type))) soap_getindependent(soap); return p;}SOAP_FMAC1 char * SOAP_FMAC2 soap_in_byte(struct soap *soap, const char *tag, char *a, const char *type){ return soap_inbyte(soap, tag, a, type, SOAP_TYPE_byte);}SOAP_FMAC1 void SOAP_FMAC2 soap_default_int(struct soap *soap, int *a){#ifdef SOAP_DEFAULT_int *a = SOAP_DEFAULT_int;#else *a = (int)0;#endif}SOAP_FMAC1 void SOAP_FMAC2 soap_serialize_int(struct soap *soap, int const*a){ soap_reference(soap, a, SOAP_TYPE_int);}SOAP_FMAC1 int SOAP_FMAC2 soap_put_int(struct soap *soap, int *a, const char *tag, const char *type){ int i = soap_embed_element(soap, (void*)a, tag, SOAP_TYPE_int); if (i >= 0) soap_out_int(soap, tag, i, a, type); return soap_putindependent(soap);}SOAP_FMAC1 int SOAP_FMAC2 soap_out_int(struct soap *soap, const char *tag, int id, const int *a, const char *type){ return soap_outint(soap, tag, id, a, type, SOAP_TYPE_int);}SOAP_FMAC1 int * SOAP_FMAC2 soap_get_int(struct soap *soap, int *p, const char *tag, const char *type){ if ((p = soap_in_int(soap, tag, p, type))) soap_getindependent(soap); return p;}SOAP_FMAC1 int * SOAP_FMAC2 soap_in_int(struct soap *soap, const char *tag, int *a, const char *type){ return soap_inint(soap, tag, a, type, SOAP_TYPE_int);}SOAP_FMAC1 void SOAP_FMAC2 soap_default_float(struct soap *soap, float *a){#ifdef SOAP_DEFAULT_float *a = SOAP_DEFAULT_float;#else *a = (float)0;#endif}SOAP_FMAC1 void SOAP_FMAC2 soap_serialize_float(struct soap *soap, float const*a){ soap_reference(soap, a, SOAP_TYPE_float);}SOAP_FMAC1 int SOAP_FMAC2 soap_put_float(struct soap *soap, float *a, const char *tag, const char *type){ int i = soap_embed_element(soap, (void*)a, tag, SOAP_TYPE_float); if (i >= 0) soap_out_float(soap, tag, i, a, type); return soap_putindependent(soap);}SOAP_FMAC1 int SOAP_FMAC2 soap_out_float(struct soap *soap, const char *tag, int id, const float *a, const char *type){ return soap_outfloat(soap, tag, id, a, type, SOAP_TYPE_float);}SOAP_FMAC1 float * SOAP_FMAC2 soap_get_float(struct soap *soap, float *p, const char *tag, const char *type){ if ((p = soap_in_float(soap, tag, p, type))) soap_getindependent(soap); return p;}SOAP_FMAC1 float * SOAP_FMAC2 soap_in_float(struct soap *soap, const char *tag, float *a, const char *type){ return soap_infloat(soap, tag, a, type, SOAP_TYPE_float);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -