📄 soapc.c
字号:
/* soapC.c
Generated by gSOAP 2.3 rev 4 from dsmp.h
Copyright (C) 2001-2003 Genivia inc.
All Rights Reserved.
*/
#include "soapH.h"
#ifdef __cplusplus
extern "C" {
#endif
SOAP_BEGIN_NAMESPACE(soap)
SOAP_SOURCE_STAMP("@(#) soapC.c ver 2.3 rev 4 2003-09-18 05:52:45 GMT")
#ifndef WITH_NOGLOBAL
SOAP_FMAC3 void SOAP_FMAC4 soap_serializeheader(struct soap *soap)
{
soap_serialize_SOAP_ENV__Header(soap, soap->header);
}
SOAP_FMAC3 int SOAP_FMAC4 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_FMAC3 int SOAP_FMAC4 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_FMAC3 void SOAP_FMAC4 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_FMAC3 void SOAP_FMAC4 soap_serializefault(struct soap *soap)
{
soap_serialize_SOAP_ENV__Fault(soap, soap->fault);
}
SOAP_FMAC3 int SOAP_FMAC4 soap_putfault(struct soap *soap)
{
return soap_out_SOAP_ENV__Fault(soap, "SOAP-ENV:Fault", 0, soap->fault, NULL);
}
SOAP_FMAC3 int SOAP_FMAC4 soap_getfault(struct soap *soap)
{
return (soap->fault = soap_in_SOAP_ENV__Fault(soap, "SOAP-ENV:Fault", NULL, NULL)) == NULL;
}
SOAP_FMAC3 const char ** SOAP_FMAC4 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_FMAC3 const char ** SOAP_FMAC4 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_FMAC3 const char ** SOAP_FMAC4 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;
}
#endif
SOAP_FMAC3 int SOAP_FMAC4 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_FMAC3 void * SOAP_FMAC4 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_unsignedByte:
return soap_in_unsignedByte(soap, NULL, NULL, "xsd:unsignedByte");
case SOAP_TYPE_unsignedInt:
return soap_in_unsignedInt(soap, NULL, NULL, "xsd:unsignedInt");
case SOAP_TYPE_dsmp__SyncOrderRelationReq:
return soap_in_dsmp__SyncOrderRelationReq(soap, NULL, NULL, "dsmp:SyncOrderRelationReq");
case SOAP_TYPE_dsmp__address_info:
return soap_in_dsmp__address_info(soap, NULL, NULL, "dsmp:address-info");
case SOAP_TYPE_dsmp__user_id:
return soap_in_dsmp__user_id(soap, NULL, NULL, "dsmp:user-id");
case SOAP_TYPE_dsmp__SyncOrderRelationResp:
return soap_in_dsmp__SyncOrderRelationResp(soap, NULL, NULL, "dsmp:SyncOrderRelationResp");
case SOAP_TYPE_xsd__base64Binary:
return soap_in_xsd__base64Binary(soap, NULL, NULL, "xsd:base64Binary");
case SOAP_TYPE_PointerTodsmp__SyncOrderRelationResp:
return soap_in_PointerTodsmp__SyncOrderRelationResp(soap, NULL, NULL, "dsmp:SyncOrderRelationResp");
case SOAP_TYPE_PointerTodsmp__SyncOrderRelationReq:
return soap_in_PointerTodsmp__SyncOrderRelationReq(soap, NULL, NULL, "dsmp:SyncOrderRelationReq");
case SOAP_TYPE_PointerTodsmp__user_id:
return soap_in_PointerTodsmp__user_id(soap, NULL, NULL, "dsmp:user-id");
case SOAP_TYPE_PointerTodsmp__address_info:
return soap_in_PointerTodsmp__address_info(soap, NULL, NULL, "dsmp:address-info");
case SOAP_TYPE_PointerToxsd__base64Binary:
return soap_in_PointerToxsd__base64Binary(soap, NULL, NULL, "xsd:base64Binary");
case SOAP_TYPE_dsmp__TransactionID:
{ char **s;
s = soap_in_dsmp__TransactionID(soap, NULL, NULL, "dsmp:TransactionID");
return s ? *s : NULL;
}
case SOAP_TYPE_PointerToxsd__string:
return soap_in_PointerToxsd__string(soap, NULL, NULL, "xsd:string");
case SOAP_TYPE_xsd__integer:
{ char **s;
s = soap_in_xsd__integer(soap, NULL, NULL, "xsd:integer");
return s ? *s : NULL;
}
case SOAP_TYPE_PointerTounsignedByte:
return soap_in_PointerTounsignedByte(soap, NULL, NULL, "xsd:unsignedByte");
case SOAP_TYPE_xsd__string:
{ char **s;
s = soap_in_xsd__string(soap, NULL, NULL, "xsd:string");
return s ? *s : NULL;
}
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:unsignedByte"))
{ *type = SOAP_TYPE_unsignedByte;
return soap_in_unsignedByte(soap, NULL, NULL, NULL);
}
if (!soap_match_tag(soap, soap->type, "xsd:unsignedInt"))
{ *type = SOAP_TYPE_unsignedInt;
return soap_in_unsignedInt(soap, NULL, NULL, NULL);
}
if (!soap_match_tag(soap, soap->type, "dsmp:SyncOrderRelationReq"))
{ *type = SOAP_TYPE_dsmp__SyncOrderRelationReq;
return soap_in_dsmp__SyncOrderRelationReq(soap, NULL, NULL, NULL);
}
if (!soap_match_tag(soap, soap->type, "dsmp:address-info"))
{ *type = SOAP_TYPE_dsmp__address_info;
return soap_in_dsmp__address_info(soap, NULL, NULL, NULL);
}
if (!soap_match_tag(soap, soap->type, "dsmp:user-id"))
{ *type = SOAP_TYPE_dsmp__user_id;
return soap_in_dsmp__user_id(soap, NULL, NULL, NULL);
}
if (!soap_match_tag(soap, soap->type, "dsmp:SyncOrderRelationResp"))
{ *type = SOAP_TYPE_dsmp__SyncOrderRelationResp;
return soap_in_dsmp__SyncOrderRelationResp(soap, NULL, NULL, NULL);
}
if (!soap_match_tag(soap, soap->type, "xsd:base64Binary"))
{ *type = SOAP_TYPE_xsd__base64Binary;
return soap_in_xsd__base64Binary(soap, NULL, NULL, NULL);
}
if (!soap_match_tag(soap, soap->type, "dsmp:TransactionID"))
{ char **s;
*type = SOAP_TYPE_dsmp__TransactionID;
s = soap_in_dsmp__TransactionID(soap, NULL, NULL, NULL);
return s ? *s : NULL;
}
if (!soap_match_tag(soap, soap->type, "xsd:integer"))
{ char **s;
*type = SOAP_TYPE_xsd__integer;
s = soap_in_xsd__integer(soap, NULL, NULL, NULL);
return s ? *s : NULL;
}
if (!soap_match_tag(soap, soap->type, "xsd:string"))
{ char **s;
*type = SOAP_TYPE_xsd__string;
s = soap_in_xsd__string(soap, NULL, NULL, NULL);
return s ? *s : 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_FMAC3 int SOAP_FMAC4 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_FMAC3 int SOAP_FMAC4 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_FMAC3 int SOAP_FMAC4 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_unsignedByte:
return soap_out_unsignedByte(soap, tag, id, (const unsigned char *)ptr, "xsd:unsignedByte");
case SOAP_TYPE_unsignedInt:
return soap_out_unsignedInt(soap, tag, id, (const unsigned int *)ptr, "xsd:unsignedInt");
case SOAP_TYPE_dsmp__SyncOrderRelationReq:
return soap_out_dsmp__SyncOrderRelationReq(soap, tag, id, (const struct dsmp__SyncOrderRelationReq *)ptr, "dsmp:SyncOrderRelationReq");
case SOAP_TYPE_dsmp__address_info:
return soap_out_dsmp__address_info(soap, tag, id, (const struct dsmp__address_info *)ptr, "dsmp:address-info");
case SOAP_TYPE_dsmp__user_id:
return soap_out_dsmp__user_id(soap, tag, id, (const struct dsmp__user_id *)ptr, "dsmp:user-id");
case SOAP_TYPE_dsmp__SyncOrderRelationResp:
return soap_out_dsmp__SyncOrderRelationResp(soap, tag, id, (const struct dsmp__SyncOrderRelationResp *)ptr, "dsmp:SyncOrderRelationResp");
case SOAP_TYPE_xsd__base64Binary:
return soap_out_xsd__base64Binary(soap, tag, id, (const struct xsd__base64Binary *)ptr, "xsd:base64Binary");
case SOAP_TYPE_PointerTodsmp__SyncOrderRelationResp:
return soap_out_PointerTodsmp__SyncOrderRelationResp(soap, tag, id, (struct dsmp__SyncOrderRelationResp *const*)ptr, "dsmp:SyncOrderRelationResp");
case SOAP_TYPE_PointerTodsmp__SyncOrderRelationReq:
return soap_out_PointerTodsmp__SyncOrderRelationReq(soap, tag, id, (struct dsmp__SyncOrderRelationReq *const*)ptr, "dsmp:SyncOrderRelationReq");
case SOAP_TYPE_PointerTodsmp__user_id:
return soap_out_PointerTodsmp__user_id(soap, tag, id, (struct dsmp__user_id *const*)ptr, "dsmp:user-id");
case SOAP_TYPE_PointerTodsmp__address_info:
return soap_out_PointerTodsmp__address_info(soap, tag, id, (struct dsmp__address_info *const*)ptr, "dsmp:address-info");
case SOAP_TYPE_PointerToxsd__base64Binary:
return soap_out_PointerToxsd__base64Binary(soap, tag, id, (struct xsd__base64Binary *const*)ptr, "xsd:base64Binary");
case SOAP_TYPE_dsmp__TransactionID:
return soap_out_string(soap, tag, id, (char**)&ptr, "dsmp:TransactionID");
case SOAP_TYPE_PointerToxsd__string:
return soap_out_PointerToxsd__string(soap, tag, id, (char **const*)ptr, "xsd:string");
case SOAP_TYPE_xsd__integer:
return soap_out_string(soap, tag, id, (char**)&ptr, "xsd:integer");
case SOAP_TYPE_PointerTounsignedByte:
return soap_out_PointerTounsignedByte(soap, tag, id, (unsigned char *const*)ptr, "xsd:unsignedByte");
case SOAP_TYPE_xsd__string:
return soap_out_string(soap, tag, id, (char**)&ptr, "xsd:string");
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_LEANER
SOAP_FMAC3 int SOAP_FMAC4 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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -