⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 soapc.c

📁 apache模组的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
/* 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 __cplusplusextern "C" {#endifSOAP_BEGIN_NAMESPACE(soap)SOAP_SOURCE_STAMP("@(#) soapC.c ver 2.3 rev 4 2003-09-18 05:52:45 GMT")#ifndef WITH_NOGLOBALSOAP_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;}#endifSOAP_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_LEANERSOAP_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;		switch (soap_lookup_type(soap, soap->dime_id))		{		case SOAP_TYPE_xsd__base64Binary:		{	struct xsd__base64Binary * a;			a = (struct xsd__base64Binary *)soap_id_enter(soap, soap->dime_id, NULL, SOAP_TYPE_xsd__base64Binary, sizeof(struct xsd__base64Binary), 0);			if (a)			{	a->__ptr = (unsigned char*)soap->dime_ptr;				a->__size = soap->dime_size;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -