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

📄 soapc.c

📁 SOAP协议的C版本
💻 C
📖 第 1 页 / 共 5 页
字号:

SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap *soap, struct SOAP_ENV__Header *a)
{
	soap_default_PointerToxsd__string(soap, &a->TransactionID);
}

SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Header(struct soap *soap, struct SOAP_ENV__Header *a, const char *tag, const char *type)
{
	int i = soap_embed_element(soap, (void*)a, tag, SOAP_TYPE_SOAP_ENV__Header);
	soap_out_SOAP_ENV__Header(soap, tag, i, a, type);
	return soap_putindependent(soap);
}

SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header(struct soap *soap, const char *tag, int id, const struct SOAP_ENV__Header *a, const char *type)
{
	soap_element_begin_out(soap, tag, soap_embedded_id(soap, id, a, SOAP_TYPE_SOAP_ENV__Header), type);
	soap_out_PointerToxsd__string(soap, "dsmp:TransactionID", -1, &a->TransactionID, "");
	soap_element_end_out(soap, tag);
	return SOAP_OK;
}

SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_get_SOAP_ENV__Header(struct soap *soap, struct SOAP_ENV__Header *p, const char *tag, const char *type)
{
	if ((p = soap_in_SOAP_ENV__Header(soap, tag, p, type)))
		soap_getindependent(soap);
	return p;
}

SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap *soap, const char *tag, struct SOAP_ENV__Header *a, const char *type)
{
	short soap_flag_TransactionID = 1;
	if (soap_element_begin_in(soap, tag))
		return NULL;
	if (*soap->type && soap_match_tag(soap, soap->type, type))
	{	soap->error = SOAP_TYPE_MISMATCH;
		soap_revert(soap);
		return NULL;
	}
	if (soap->null)
	{	if (soap->mode & SOAP_XML_NIL)
		{	soap->error = SOAP_NULL;
			return NULL;
		}
		else
			return a;
	}
	if (!*soap->href)
	{	a = (struct SOAP_ENV__Header *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Header, sizeof(struct SOAP_ENV__Header), 0);
		if (!a)
			return NULL;
		if (soap->alloced)
			soap_default_SOAP_ENV__Header(soap, a);
		if (soap->body)
		{	for (;;)
			{	soap->error = SOAP_TAG_MISMATCH;
			if (soap_flag_TransactionID && soap->error == SOAP_TAG_MISMATCH)
				if (soap_in_PointerToxsd__string(soap, "TransactionID", &a->TransactionID, "xsd:string"))
				{	soap_flag_TransactionID = 0;
					continue;
				}
			if (soap->error == SOAP_TAG_MISMATCH)
				soap->error = soap_ignore_element(soap);
			if (soap->error == SOAP_NO_TAG)
				break;
			if (soap->error)
			{	return NULL;
			}
		}
		if (soap_element_end_in(soap, tag))
			return NULL;
		}
	}
	else
	{	a = (struct SOAP_ENV__Header *)soap_id_forward(soap, soap->href, (void**)soap_id_enter(soap, soap->id, a, SOAP_TYPE_SOAP_ENV__Header, sizeof(struct SOAP_ENV__Header), 0), SOAP_TYPE_SOAP_ENV__Header, sizeof(struct SOAP_ENV__Header));
		if (soap->alloced)
			soap_default_SOAP_ENV__Header(soap, a);
		if (soap->body && soap_element_end_in(soap, tag))
			return NULL;
	}
	return a;
}

#endif

SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_xsd__base64Binary(struct soap *soap, struct xsd__base64Binary const*a)
{
	soap_mark_xsd__base64Binary(soap, a);
}

SOAP_FMAC3 void SOAP_FMAC4 soap_mark_xsd__base64Binary(struct soap *soap, struct xsd__base64Binary const*a)
{
	if (a->__ptr)
		soap_array_reference(soap, a, (struct soap_array*)&a->__ptr, a->__size, SOAP_TYPE_xsd__base64Binary);
}

SOAP_FMAC3 void SOAP_FMAC4 soap_default_xsd__base64Binary(struct soap *soap, struct xsd__base64Binary *a)
{
	a->__size = 0;
	a->__ptr = NULL;
}

SOAP_FMAC3 int SOAP_FMAC4 soap_put_xsd__base64Binary(struct soap *soap, struct xsd__base64Binary *a, const char *tag, const char *type)
{
	int i = soap_embed_array(soap, (void*)a, (struct soap_array*)&a->__ptr, a->__size, tag, SOAP_TYPE_xsd__base64Binary);
	soap_out_xsd__base64Binary(soap, tag, i, a, type);
	return soap_putindependent(soap);
}

SOAP_FMAC3 int SOAP_FMAC4 soap_out_xsd__base64Binary(struct soap *soap, const char *tag, int id, const struct xsd__base64Binary *a, const char *type)
{
	int i;
	struct soap_plist *pp;
	int n = a->__size;
	i = soap_array_pointer_lookup(soap, a, (struct soap_array*)&a->__ptr, n, SOAP_TYPE_xsd__base64Binary, &pp);
	if (!a->__ptr)
	{	soap_element_null(soap, tag, i, type);
		return SOAP_OK;
	}
	if (id <= 0 && i)
	{	if (soap_is_embedded(soap, pp))
		{	soap_element_ref(soap, tag, 0, i);
			return SOAP_OK;
		}
		if (soap_is_single(soap, pp))
			i = 0;
	}
	else if (id > 0)
		i = id;
	soap_element_begin_out(soap, tag, i, "xsd:base64Binary");
	if (i)
		soap_set_embedded(soap, pp);
	soap_putbase64(soap, a->__ptr, a->__size);
	soap_element_end_out(soap, tag);
	return SOAP_OK;
}

SOAP_FMAC3 struct xsd__base64Binary * SOAP_FMAC4 soap_get_xsd__base64Binary(struct soap *soap, struct xsd__base64Binary *p, const char *tag, const char *type)
{
	if ((p = soap_in_xsd__base64Binary(soap, tag, p, type)))
		soap_getindependent(soap);
	return p;
}

SOAP_FMAC3 struct xsd__base64Binary * SOAP_FMAC4 soap_in_xsd__base64Binary(struct soap *soap, const char *tag, struct xsd__base64Binary *a, const char *type)
{
	if (soap_element_begin_in(soap, tag))
		return NULL;
	if (*soap->type && soap_match_tag(soap, soap->type, type) && soap_match_tag(soap, soap->type, "SOAP-ENC:base64") && soap_match_tag(soap, soap->type, "SOAP-ENC:base64Binary"))
	{	soap->error = SOAP_TYPE_MISMATCH;
		soap_revert(soap);
		return NULL;
	}
	if (soap->null)
	{	if ((a = (struct xsd__base64Binary *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_xsd__base64Binary, sizeof(struct xsd__base64Binary), 0)))
			soap_default_xsd__base64Binary(soap, a);
			if (soap->body && soap_element_end_in(soap, tag))
				return NULL;
	}
	else if (!*soap->href)
	{	if (!(a = (struct xsd__base64Binary *)soap_id_enter(soap, soap->id, a, SOAP_TYPE_xsd__base64Binary, sizeof(struct xsd__base64Binary), 0)))
			return NULL;
		if (soap->alloced)
			soap_default_xsd__base64Binary(soap, a);
		if (soap->body)
		{
		a->__ptr = soap_getbase64(soap, (size_t*)&a->__size, 0);
		if (soap_element_end_in(soap, tag))
			return NULL;
		}
	}
	else
	{	a = (struct xsd__base64Binary *)soap_id_forward(soap, soap->href, (void**)soap_id_enter(soap, soap->id, a, SOAP_TYPE_xsd__base64Binary, sizeof(struct xsd__base64Binary), 0), SOAP_TYPE_xsd__base64Binary, sizeof(struct xsd__base64Binary));
		if (soap->alloced)
			soap_default_xsd__base64Binary(soap, a);
		if (soap->body && soap_element_end_in(soap, tag))
		return NULL;
	}
	return a;
}

#ifndef WITH_NOGLOBAL

SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *const*a)
{
	if (!soap_reference(soap, a, SOAP_TYPE_PointerToSOAP_ENV__Code))
		soap_mark_PointerToSOAP_ENV__Code(soap, a);
}

SOAP_FMAC3 void SOAP_FMAC4 soap_mark_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *const*a)
{
	if (!soap_reference(soap, *a, SOAP_TYPE_SOAP_ENV__Code))
		soap_mark_SOAP_ENV__Code(soap, *a);
}

SOAP_FMAC3 void SOAP_FMAC4 soap_default_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code **a)
{
	*a = NULL;
}

SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code **a, const char *tag, const char *type)
{
	int i = soap_embed_element(soap, (void*)a, tag, SOAP_TYPE_PointerToSOAP_ENV__Code);
	soap_out_PointerToSOAP_ENV__Code(soap, tag, i, a, type);
	return soap_putindependent(soap);
}

SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Code(struct soap *soap, const char *tag, int id, struct SOAP_ENV__Code *const*a, const char *type)
{
	struct soap_plist *pp;
	register int i;
	id = soap_embedded_id(soap, id, a, SOAP_TYPE_PointerToSOAP_ENV__Code);
	if (!*a)
		return soap_element_null(soap, tag, id, type);
	i = soap_pointer_lookup(soap, *a, SOAP_TYPE_SOAP_ENV__Code, &pp);
	if (i)
	{	if (soap_is_embedded(soap, pp))
			return soap_element_ref(soap, tag, id, i);
		if (soap_is_single(soap, pp))
			return soap_out_SOAP_ENV__Code(soap, tag, 0, *a, type);
		soap_set_embedded(soap, pp);
		return soap_out_SOAP_ENV__Code(soap, tag, i, *a, type);
	}
	return soap_out_SOAP_ENV__Code(soap, tag, soap_pointer_enter(soap, *a, SOAP_TYPE_SOAP_ENV__Code, &pp), *a, type);
}

SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code **p, const char *tag, const char *type)
{
	if ((p = soap_in_PointerToSOAP_ENV__Code(soap, tag, p, type)))
		soap_getindependent(soap);
	return p;
}

SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Code(struct soap *soap, const char *tag, struct SOAP_ENV__Code **a, const char *type)
{
	struct SOAP_ENV__Code *p;
	if (soap_element_begin_in(soap, tag))
		return NULL;
	if (soap->null)
	{	a = (struct SOAP_ENV__Code **)soap_id_enter(soap, soap->id, a, SOAP_TYPE_PointerToSOAP_ENV__Code, sizeof(struct SOAP_ENV__Code *), 1);
		if (a)
			*a = NULL;
		if (soap->body && soap_element_end_in(soap, tag))
			return NULL;
	}
	else if (!*soap->href)
	{	soap_revert(soap);
		if (a)
		{	if ((p = soap_in_SOAP_ENV__Code(soap, tag, *a, type)))
				*a = p;
			else
				a = NULL;
		}
		else if ((p = soap_in_SOAP_ENV__Code(soap, tag, NULL, type)))
		{	a = (struct SOAP_ENV__Code **)soap_id_enter(soap, "", NULL, SOAP_TYPE_PointerToSOAP_ENV__Code, sizeof(struct SOAP_ENV__Code *), 0);
			if (a)
				*a = p;
		}
	}
	else
	{	a = (struct SOAP_ENV__Code **)soap_id_lookup(soap, soap->href, (void**)soap_id_enter(soap, soap->id, a, SOAP_TYPE_PointerToSOAP_ENV__Code, sizeof(struct SOAP_ENV__Code *), 1), SOAP_TYPE_SOAP_ENV__Code, sizeof(struct SOAP_ENV__Code), 0);
		if (soap->body && soap_element_end_in(soap, tag))
			return NULL;
	}
	return a;
}

#endif

SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerTodsmp__SyncOrderRelationResp(struct soap *soap, struct dsmp__SyncOrderRelationResp *const*a)
{
	if (!soap_reference(soap, a, SOAP_TYPE_PointerTodsmp__SyncOrderRelationResp))
		soap_mark_PointerTodsmp__SyncOrderRelationResp(soap, a);
}

SOAP_FMAC3 void SOAP_FMAC4 soap_mark_PointerTodsmp__SyncOrderRelationResp(struct soap *soap, struct dsmp__SyncOrderRelationResp *const*a)
{
	if (!soap_reference(soap, *a, SOAP_TYPE_dsmp__SyncOrderRelationResp))
		soap_mark_dsmp__SyncOrderRelationResp(soap, *a);
}

SOAP_FMAC3 void SOAP_FMAC4 soap_default_PointerTodsmp__SyncOrderRelationResp(struct soap *soap, struct dsmp__SyncOrderRelationResp **a)
{
	*a = NULL;
}

SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerTodsmp__SyncOrderRelationResp(struct soap *soap, struct dsmp__SyncOrderRelationResp **a, const char *tag, const char *type)
{
	int i = soap_embed_element(soap, (void*)a, tag, SOAP_TYPE_PointerTodsmp__SyncOrderRelationResp);
	soap_out_PointerTodsmp__SyncOrderRelationResp(soap, tag, i, a, type);
	return soap_putindependent(soap);
}

SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerTodsmp__SyncOrderRelationResp(struct soap *soap, const char *tag, int id, struct dsmp__SyncOrderRelationResp *const*a, const char *type)
{
	struct soap_plist *pp;
	register int i;
	id = soap_embedded_id(soap, id, a, SOAP_TYPE_PointerTodsmp__SyncOrderRelationResp);
	if (!*a)
		return soap_element_null(soap, tag, id, type);
	i = soap_pointer_lookup(soap, *a, SOAP_TYPE_dsmp__SyncOrderRelationResp, &pp);
	if (i)
	{	if (soap_is_embedded(soap, pp))
			return soap_element_ref(soap, tag, id, i);
		if (soap_is_single(soap, pp))
			return soap_out_dsmp__SyncOrderRelationResp(soap, tag, 0, *a, type);
		soap_set_embedded(soap, pp);
		return soap_out_dsmp__SyncOrderRelationResp(soap, tag, i, *a, type);
	}
	return soap_out_dsmp__SyncOrderRelationResp(soap, tag, soap_pointer_enter(soap, *a, SOAP_TYPE_dsmp__SyncOrderRelationResp, &pp), *a, type);
}

SOAP_FMAC3 struct dsmp__SyncOrderRelationResp ** SOAP_FMAC4 soap_get_PointerTodsmp__SyncOrderRelationResp(struct soap *soap, struct dsmp__SyncOrderRelationResp **p, const char *tag, const char *type)
{
	if ((p = soap_in_PointerTodsmp__SyncOrderRelationResp(soap, tag, p, type)))
		soap_getindependent(soap);
	return p;
}

SOAP_FMAC3 struct dsmp__SyncOrderRelationResp ** SOAP_FMAC4 soap_in_PointerTodsmp__SyncOrderRelationResp(struct soap *soap, const char *tag, struct dsmp__SyncOrderRelationResp **a, const char *type)
{
	struct dsmp__SyncOrderRelationResp *p;
	if (soap_element_begin_in(soap, tag))
		return NULL;
	if (soap->null)
	{	a = (struct dsmp__SyncOrderRelationResp **)soap_id_enter(soap, soap->id, a, SOAP_TYPE_PointerTodsmp__SyncOrderRelationResp, sizeof(struct dsmp__SyncOrderRelationResp *), 1);
		if (a)
			*a = NULL;
		if (soap->body && soap_element_end_in(soap, tag))
			return NULL;
	}
	else if (!*soap->href)
	{	soap_revert(soap);
		if (a)
		{	if ((p = soap_in_dsmp__SyncOrderRelationResp(soap, tag, *a, type)))
				*a = p;
			else
				a = NULL;
		}
		else if ((p = soap_in_dsmp__SyncOrderRelationResp(soap, tag, NULL, type)))
		{	a = (struct dsmp__SyncOrderRelationResp **)soap_id_enter(soap, "", NULL, SOAP_TYPE_PointerTodsmp__SyncOrderRelationResp, sizeof(struct dsmp__SyncOrderRelationResp *), 0);
			if (a)
				*a = p;
		}
	}
	else
	{	a = (struct dsmp__SyncOrderRelationResp **)soap_id_lookup(soap, soap->href, (void**)soap_id_enter(soap, soap->id, a, SOAP_TY

⌨️ 快捷键说明

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