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

📄 symbol2.c

📁 一款开源的soap库
💻 C
📖 第 1 页 / 共 5 页
字号:
	{ fprintf(fmsg, "Saving %s\n", pathsoapServer);          fserver=fopen(pathsoapServer,"w");	  if (!fserver)		execerror("Cannot write to file");	  copyrightnote(fserver, soapServer);          fprintf(fserver,"\n#include \"%sH.h\"", prefix);	  if (cflag)	    fprintf(fserver,"\n#ifdef __cplusplus\nextern \"C\" {\n#endif");          if (namespaceid)            fprintf(fserver,"\n\nnamespace %s {", namespaceid);	  ident(fserver, soapServer);	  if (!Lflag)	  { flib=fopen(pathsoapServerLib,"w");	    if (!flib)		execerror("Cannot write to file");	    copyrightnote(flib, soapServerLib);	    fprintf(fmsg, "Saving %s\n", pathsoapServerLib);	    fprintf(flib, "\n#ifndef WITH_NOGLOBAL\n#define WITH_NOGLOBAL\n#endif");	    fprintf(flib, "\n#define SOAP_FMAC3 static");	    fprintf(flib, "\n#include \"%s\"", soapC);	    fprintf(flib, "\n#include \"%s\"", soapServer);	    fprintf(flib, "\n\n/* End of %s */\n", soapServerLib);	    fclose(flib);	  }	}	fprintf(fhead,"\n\n#ifndef %sH_H\n#define %sH_H", prefix, prefix);	fprintf(fhead,"\n#include \"%s\"", soapStub);	if (cflag)	  fprintf(fhead,"\n#ifdef __cplusplus\nextern \"C\" {\n#endif");	if (namespaceid)	  fprintf(fhead,"\n\nnamespace %s {", namespaceid);	fprintf(fheader,"\n\n#ifndef %sStub_H\n#define %sStub_H", prefix, prefix);	for (pragma = pragmas; pragma; pragma = pragma->next)	  fprintf(fheader,"\n%s", pragma->pragma);	if (nflag)	  fprintf(fheader,"\n#define WITH_NONAMESPACES");	if (namespaceid)	{ fprintf(fheader,"\n#ifndef WITH_NOGLOBAL\n#define WITH_NOGLOBAL\n#endif");	}	fprintf(fheader,"\n#include \"stdsoap2.h\"");	if (cflag)	  fprintf(fheader,"\n#ifdef __cplusplus\nextern \"C\" {\n#endif");	if (namespaceid)	  fprintf(fheader,"\n\nnamespace %s {", namespaceid);	generate_header(table);	generate_schema(table);	fprintf(fout,"\n\n#include \"%sH.h\"", prefix);	if (cflag)	  fprintf(fout,"\n#ifdef __cplusplus\nextern \"C\" {\n#endif");	if (namespaceid)	  fprintf(fout,"\n\nnamespace %s {", namespaceid);	ident(fout, soapC);        if (!iflag)	  soap_serve(table);	fprintf(fhead, "\nSOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap*);");	fprintf(fhead, "\n#ifndef WITH_NOIDREF");	fprintf(fhead, "\nSOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap*);");	fprintf(fhead, "\nSOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap*);");	fprintf(fhead, "\nSOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap*, const void*, int);");	fprintf(fhead, "\nSOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap*, const void*, const char*, int, int);");	fprintf(fhead, "\nSOAP_FMAC3 void * SOAP_FMAC4 soap_getelement(struct soap*, int*);");	fprintf(fhead, "\n#endif");	if (!lflag)	{	fprintf(fout,"\n\n#ifndef WITH_NOGLOBAL");        if (entry(classtable, lookup("SOAP_ENV__Header"))->info.typ->type == Tstruct)	  fprintf(fout,"\n\nSOAP_FMAC3 void SOAP_FMAC4 soap_serializeheader(struct soap *soap)\n{\n\tif (soap->header)\n\t\tsoap_serialize_SOAP_ENV__Header(soap, soap->header);\n}");	else	  fprintf(fout,"\n\nSOAP_FMAC3 void SOAP_FMAC4 soap_serializeheader(struct soap *soap)\n{\n\tif (soap->header)\n\t\tsoap->header->soap_serialize(soap);\n}");	fprintf(fout,"\n\nSOAP_FMAC3 int SOAP_FMAC4 soap_putheader(struct soap *soap)\n{\n\tif (soap->header)\n\t{\tsoap->part = SOAP_IN_HEADER;\n\t\tsoap_out_SOAP_ENV__Header(soap, \"SOAP-ENV:Header\", 0, soap->header, NULL);\n\t\tsoap->part = SOAP_END_HEADER;\n\t}\n\treturn SOAP_OK;\n}");	fprintf(fout,"\n\nSOAP_FMAC3 int SOAP_FMAC4 soap_getheader(struct soap *soap)\n{\n\tsoap->part = SOAP_IN_HEADER;\n\tsoap->header = soap_in_SOAP_ENV__Header(soap, \"SOAP-ENV:Header\", NULL, NULL);\n\tsoap->part = SOAP_END_HEADER;\n\treturn soap->header == NULL;\n}");        if ((p = entry(classtable, lookup("SOAP_ENV__Fault")))->info.typ->type == Tstruct && !has_class(p->info.typ))	{ fprintf(fout,"\n\nSOAP_FMAC3 void SOAP_FMAC4 soap_fault(struct soap *soap)\n{\n\tif (!soap->fault)\n\t{\tsoap->fault = (struct SOAP_ENV__Fault*)soap_malloc(soap, sizeof(struct SOAP_ENV__Fault));\n\t\tsoap_default_SOAP_ENV__Fault(soap, soap->fault);\n\t}\n\tif (soap->version == 2 && !soap->fault->SOAP_ENV__Code)\n\t{\tsoap->fault->SOAP_ENV__Code = (struct SOAP_ENV__Code*)soap_malloc(soap, sizeof(struct SOAP_ENV__Code));\n\t\tsoap_default_SOAP_ENV__Code(soap, soap->fault->SOAP_ENV__Code);\n\t}\n\tif (soap->version == 2 && !soap->fault->SOAP_ENV__Reason)\n\t{\tsoap->fault->SOAP_ENV__Reason = (struct SOAP_ENV__Reason*)soap_malloc(soap, sizeof(struct SOAP_ENV__Reason));\n\t\tsoap_default_SOAP_ENV__Reason(soap, soap->fault->SOAP_ENV__Reason);\n\t}\n}");	  fprintf(fout,"\n\nSOAP_FMAC3 void SOAP_FMAC4 soap_serializefault(struct soap *soap)\n{\n\tif (soap->fault)\n\t\tsoap_serialize_SOAP_ENV__Fault(soap, soap->fault);\n}");	}	else	{ fprintf(fout,"\n\nSOAP_FMAC3 void SOAP_FMAC4 soap_fault(struct soap *soap)\n{\n\tif (!soap->fault)\n\t{\tsoap->fault = soap_new_SOAP_ENV__Fault(soap, -1);\n\t\tsoap->fault->soap_default(soap);\n\t}\n\tif (soap->version == 2 && !soap->fault->SOAP_ENV__Code)\n\t{\tsoap->fault->SOAP_ENV__Code = (struct SOAP_ENV__Code*)soap_malloc(soap, sizeof(struct SOAP_ENV__Code));\n\t\tsoap_default_SOAP_ENV__Code(soap, soap->fault->SOAP_ENV__Code);\n\t}\n\tif (soap->version == 2 && !soap->fault->SOAP_ENV__Reason)\n\t{\tsoap->fault->SOAP_ENV__Reason = (struct SOAP_ENV__Reason*)soap_malloc(soap, sizeof(struct SOAP_ENV__Reason));\n\t\tsoap_default_SOAP_ENV__Reason(soap, soap->fault->SOAP_ENV__Reason);\n\t}\n}");	  fprintf(fout,"\n\nSOAP_FMAC3 void SOAP_FMAC4 soap_serializefault(struct soap *soap)\n{\n\tsoap_fault(soap);\n\tif (soap->fault)\n\t\tsoap->fault->soap_serialize(soap);\n}");	}        if ((p = entry(classtable, lookup("SOAP_ENV__Fault")))->info.typ->type == Tstruct)	{ fprintf(fout,"\n\nSOAP_FMAC3 int SOAP_FMAC4 soap_putfault(struct soap *soap)\n{\n\tif (soap->fault)\n\t\treturn soap_put_SOAP_ENV__Fault(soap, soap->fault, \"SOAP-ENV:Fault\", NULL);\n\treturn SOAP_OK;\n}");	  fprintf(fout,"\n\nSOAP_FMAC3 int SOAP_FMAC4 soap_getfault(struct soap *soap)\n{\n\treturn (soap->fault = soap_get_SOAP_ENV__Fault(soap, NULL, \"SOAP-ENV:Fault\", NULL)) == NULL;\n}");	}	else	{ fprintf(fout,"\n\nSOAP_FMAC3 int SOAP_FMAC4 soap_putfault(struct soap *soap)\n{\n\tsoap_fault(soap);\n\tif (soap->fault)\n\t\treturn soap->fault->soap_put(soap, \"SOAP-ENV:Fault\", NULL);\n\treturn SOAP_EOM;\n}");	  fprintf(fout,"\n\nSOAP_FMAC3 int SOAP_FMAC4 soap_getfault(struct soap *soap)\n{\n\tsoap_fault(soap);\n\tif (soap->fault)\n\t\treturn soap->fault->soap_get(soap, \"SOAP-ENV:Fault\", NULL) == NULL;\n\treturn SOAP_EOM;\n}");	}	fprintf(fout,"\n\nSOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultcode(struct soap *soap)\n{\n\tsoap_fault(soap);\n\tif (soap->version == 2)\n\t\treturn (const char**)&soap->fault->SOAP_ENV__Code->SOAP_ENV__Value;\n\treturn (const char**)&soap->fault->faultcode;\n}");	fprintf(fout,"\n\nSOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultsubcode(struct soap *soap)\n{\n\tsoap_fault(soap);\n\tif (soap->version == 2)\n\t{\tif (!soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode)\n\t\t{\tsoap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode = (struct SOAP_ENV__Code*)soap_malloc(soap, sizeof(struct SOAP_ENV__Code));\n\t\t\tsoap_default_SOAP_ENV__Code(soap, soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode);\n\t\t}\n\t\treturn (const char**)&soap->fault->SOAP_ENV__Code->SOAP_ENV__Subcode->SOAP_ENV__Value;\n\t}\n\treturn (const char**)&soap->fault->faultcode;\n}");	fprintf(fout,"\n\nSOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultstring(struct soap *soap)\n{\n\tsoap_fault(soap);\n\tif (soap->version == 2)\n\t\treturn (const char**)&soap->fault->SOAP_ENV__Reason->SOAP_ENV__Text;\n\treturn (const char**)&soap->fault->faultstring;\n}");	fprintf(fout,"\n\nSOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultdetail(struct soap *soap)\n{\n\tsoap_fault(soap);");	if (has_detail_string())	  fprintf(fout,"\n\tif (soap->version == 1)\n\t{\tif (!soap->fault->detail)\n\t\t{\tsoap->fault->detail = (struct SOAP_ENV__Detail*)soap_malloc(soap, sizeof(struct SOAP_ENV__Detail));\n\t\t\tsoap_default_SOAP_ENV__Detail(soap, soap->fault->detail);\n\t\t}\n\t\treturn (const char**)&soap->fault->detail->__any;\n\t}");	if (has_Detail_string())	  fprintf(fout,"\n\tif (!soap->fault->SOAP_ENV__Detail)\n\t{\tsoap->fault->SOAP_ENV__Detail = (struct SOAP_ENV__Detail*)soap_malloc(soap, sizeof(struct SOAP_ENV__Detail));\n\t\tsoap_default_SOAP_ENV__Detail(soap, soap->fault->SOAP_ENV__Detail);\n\t}\n\treturn (const char**)&soap->fault->SOAP_ENV__Detail->__any;\n}");        else	  fprintf(fout,"\n\treturn NULL;\n}");	fprintf(fout,"\n\n#endif");	fprintf(fout,"\n\n#ifndef WITH_NOIDREF");	fprintf(fout,"\nSOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap *soap)\n{");	fprintf(fout,"\n\tint t;\n\tfor (;;)");	fprintf(fout,"\n\t\tif (!soap_getelement(soap, &t))");        fprintf(fout,"\n\t\t\tif (soap->error || soap_ignore_element(soap))\n\t\t\t\tbreak;");        fprintf(fout,"\n\tif (soap->error == SOAP_NO_TAG || soap->error == SOAP_EOF)");        fprintf(fout,"\n\t\tsoap->error = SOAP_OK;");        fprintf(fout,"\n\treturn soap->error;");        fprintf(fout,"\n}\n#endif");        fprintf(fout,"\n\n#ifndef WITH_NOIDREF");	fprintf(fout,"\nSOAP_FMAC3 void * SOAP_FMAC4 soap_getelement(struct soap *soap, int *type)\n{");        fprintf(fout,"\n\tif (soap_peek_element(soap))\n\t\treturn NULL;");	fprintf(fout,"\n\tif (!*soap->id || !(*type = soap_lookup_type(soap, soap->id)))\n\t\t*type = soap_lookup_type(soap, soap->href);");	fprintf(fout,"\n\tswitch (*type)\n\t{");	DBGLOG(fprintf(stderr,"\n Calling in_defs( )."));	fflush(fout);	in_defs(table);	DBGLOG(fprintf(stderr,"\n Completed in_defs( )."));        fprintf(fout,"\n\tdefault:\n\t{\tconst char *t = soap->type;\n\t\tif (!*t)\n\t\t\tt = soap->tag;");	fflush(fout);	in_defs2(table);        fprintf(fout,"\n\t\tt = soap->tag;");	in_defs3(table);        fprintf(fout,"\n\t}\n\t}\n\tsoap->error = SOAP_TAG_MISMATCH;\n\treturn NULL;\n}\n#endif");	fprintf(fout,"\n\nSOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap *soap)\n{");	fprintf(fout,"\n\tif (!soap_peek_element(soap))");	fprintf(fout,"\n\t{\tint t;");	fprintf(fout,"\n\t\tif (soap->mustUnderstand && !soap->other)");	fprintf(fout,"\n\t\t\treturn soap->error = SOAP_MUSTUNDERSTAND;");	fprintf(fout,"\n\t\tif (((soap->mode & SOAP_XML_STRICT) && soap->part != SOAP_IN_HEADER) || !soap_match_tag(soap, soap->tag, \"SOAP-ENV:\"))\n\t\t{\tDBGLOG(TEST, SOAP_MESSAGE(fdebug, \"REJECTING element '%%s'\\n\", soap->tag));\n\t\t\treturn soap->error = SOAP_TAG_MISMATCH;\n\t\t}");	fprintf(fout,"\n\t\tif (!*soap->id || !soap_getelement(soap, &t))");	fprintf(fout,"\n\t\t{\tsoap->peeked = 0;");	fprintf(fout,"\n\t\t\tDBGLOG(TEST, SOAP_MESSAGE(fdebug, \"Unknown element '%%s' (level=%%u, %%d)\\n\", soap->tag, soap->level, soap->body));");	fprintf(fout,"\n\t\t\tif (soap->fignore)\n\t\t\t\tsoap->error = soap->fignore(soap, soap->tag);\n\t\t\telse\n\t\t\t\tsoap->error = SOAP_OK;");	fprintf(fout,"\n\t\t\tDBGLOG(TEST, if (!soap->error) SOAP_MESSAGE(fdebug, \"IGNORING element '%%s'\\n\", soap->tag));");	fprintf(fout,"\n\t\t\tif (!soap->error && soap->body)");	fprintf(fout,"\n\t\t\t{\tsoap->level++;");	fprintf(fout,"\n\t\t\t\twhile (!soap_ignore_element(soap))");	fprintf(fout,"\n\t\t\t\t\t;");	fprintf(fout,"\n\t\t\t\tif (soap->error == SOAP_NO_TAG)");	fprintf(fout,"\n\t\t\t\t\tsoap->error = soap_element_end_in(soap, NULL);");	fprintf(fout,"\n\t\t\t}");	fprintf(fout,"\n\t\t}");	fprintf(fout,"\n\t}");	fprintf(fout,"\n\treturn soap->error;");	fprintf(fout,"\n}");	fprintf(fout,"\n\n#ifndef WITH_NOIDREF");	fprintf(fout,"\nSOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap *soap)\n{\n\tint i;\n\tstruct soap_plist *pp;");	fprintf(fout,"\n\tif (soap->version == 1 && soap->encodingStyle && !(soap->mode & (SOAP_XML_TREE | SOAP_XML_GRAPH)))");	fprintf(fout,"\n\t\tfor (i = 0; i < SOAP_PTRHASH; i++)");	fprintf(fout,"\n\t\t\tfor (pp = soap->pht[i]; pp; pp = pp->next)");	fprintf(fout,"\n\t\t\t\tif (pp->mark1 == 2 || pp->mark2 == 2)");	fprintf(fout,"\n\t\t\t\t\tif (soap_putelement(soap, pp->ptr, \"id\", pp->id, pp->type))\n\t\t\t\t\t\treturn soap->error;");	fprintf(fout,"\n\treturn SOAP_OK;\n}\n#endif");	fprintf(fout,"\n\n#ifndef WITH_NOIDREF");	fprintf(fout,"\nSOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap *soap, const void *ptr, const char *tag, int id, int type)\n{");	fprintf(fout,"\n\tswitch (type)\n\t{");	fflush(fout);        out_defs(table);	fprintf(fout,"\n\t}\n\treturn SOAP_OK;\n}\n#endif");	fprintf(fout,"\n\n#ifndef WITH_NOIDREF");	if (is_anytype_flag)	{ fprintf(fout,"\nSOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap *soap, const void *ptr, int type)\n{");	  fprintf(fout,"\n\t(void)soap; (void)ptr; (void)type; /* appease -Wall -Werror */");	  fprintf(fout,"\n\tswitch (type)\n\t{");	  fflush(fout);          mark_defs(table);          fprintf(fout,"\n\t}\n}");        }	else	{ fprintf(fout,"\nSOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap *soap, const void *ptr, int type)\n{");	  fprintf(fout,"\n\t(void)soap; (void)ptr; (void)type; /* appease -Wall -Werror */");          fprintf(fout,"\n}");	}	fprintf(fout,"\n#endif");	}		classflag = 0;	for (p = classtable->list; p; p = p->next)	  if (p->info.typ->type == Tclass && p->info.typ->transient <= 0)	  { classflag = 1;	    break;	  }	if (classflag || Tptr[Ttemplate])	{	  if (cflag)	    semwarn("Option -c conflicts with the use of classes");	}	if (!cflag)	{	fprintf(fhead,"\n\nSOAP_FMAC3 void * SOAP_FMAC4 soap_instantiate(struct soap*, int, const char*, const char*, size_t*);");	if (!lflag)	{	fprintf(fout,"\n\nSOAP_FMAC3 void * SOAP_FMAC4 soap_instantiate(struct soap *soap, int t, const char *type, const char *arrayType, size_t *n)\n{\n\tswitch (t)\n\t{");	if (classtable)	  for (p = classtable->list; p; p = p->next)	    if ((p->info.typ->type == Tclass || p->info.typ->type == Tstruct) && !is_transient(p->info.typ)) /* && !is_header_or_fault(p->info.typ)) */	      fprintf(fout,"\n\tcase %s:\n\t\treturn (void*)soap_instantiate_%s(soap, -1, type, arrayType, n);", soap_type(p->info.typ), c_ident(p->info.typ));	if (typetable)	  for (p = typetable->list; p; p = p->next)	    if ((p->info.typ->type == Tclass || p->info.typ->type == Tstruct) && !is_transient(p->info.typ) && !is_header_or_fault(p->info.typ))	      fprintf(fout,"\n\tcase %s:\n\t\treturn (void*)soap_instantiate_%s(soap, -1, type, arrayType, n);", soap_type(p->info.typ), c_ident(p->info.typ));	for (typ = Tptr[Ttemplate]; typ; typ = typ->next)	  if (typ->ref && !is_transient(typ))	    fprintf(fout,"\n\tcase %s:\n\t\treturn (void*)soap_instantiate_%s(soap, -1, type, arrayType, n);", soap_type(typ), c_ident(typ));	fprintf(fout,"\n\t}\n\treturn NULL;\n}");	}	fprintf(fhead,"\nSOAP_FMAC3 void SOAP_FMAC4 soap_fdelete(struct soap_clist*);");	if (!lflag)	{	fprintf(fout,"\n\nSOAP_FMAC3 void SOAP_FMAC4 soap_fdelete(struct soap_clist *p)");	fprintf(fout,"\n{\tswitch (p->type)\n\t{");	if (classtable)	  for (p = classtable->list; p; p = p->next)	    if ((p->info.typ->type == Tclass || p->info.typ->type == Tstruct) && !is_transient(p->info.typ))	    { fprintf(fout,"\n\tcase %s:", soap_type(p->info.typ));	      fprintf(fout,"\n\t\tif (p->size < 0)\n\t\t\tdelete (%s*)p->ptr;\n\t\telse\n\t\t\tdelete[] (%s*)p->ptr;\n\t\tbreak;", c_type(p->info.typ), c_type(p->info.typ));	    }	if (typetable)	  for (p = typetable->list; p; p = p->next)	    if (p->info.typ->type == Tclass || p->info.typ->type == Tstruct) /* && is_external(p->info.typ)) */	    { fprintf(fout,"\n\tcase %s:", soap_type(p->info.typ));	      fprintf(fout,"\n\t\tif (p->size < 0)\n\t\t\tdelete (%s*)p->ptr;\n\t\telse\n\t\t\tdelete[] (%s*)p->ptr;\n\t\tbreak;", c_type(p->info.typ), c_type(p->info.typ));	    }	for (typ = Tptr[Ttemplate]; typ; typ = typ->next)	  if (typ->ref && !is_transient(typ))	  { fprintf(fout,"\n\tcase %s:", soap_type(typ));	    fprintf(fout,"\n\t\tif (p->size < 0)\n\t\t\tdelete (%s*)p->ptr;\n\t\telse\n\t\t\tdelete[] (%s*)p->ptr;\n\t\tbreak;", c_type(typ), c_type(typ));	  }	fprintf(fout,"\n\t}");	fprintf(fout,"\n}");	}	fprintf(fhead,"\nSOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap*, const char*, void*, int, size_t, const char*, const char*);");	if (!lflag)	{	fprintf(fout,"\n\nSOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap *soap, const char *id, void *p, int t, size_t n, const char *type, const char *arrayType)");	fprintf(fout, "\n{\treturn soap_id_enter(soap, id, p, t, n, 0, type, arrayType, soap_instantiate);\n}");	}	if (Tptr[Ttemplate])	{	fprintf(fhead, "\n\nSOAP_FMAC3 void* SOAP_FMAC4 soap_container_id_forward(struct soap*, const char*, void*, size_t, int, int, size_t, unsigned int);");	if (!lflag)	{	fprintf(fout, "\n\nSOAP_FMAC3 void* SOAP_FMAC4 soap_container_id_forward(struct soap *soap, const char *href, void *p, size_t len, int st, int tt, size_t n, unsigned int k)");	fprintf(fout, "\n{\treturn soap_id_forward(soap, href, p, len, st, tt, n, k, soap_container_insert);\n}");	}	fprintf(fhead, "\n\nSOAP_FMAC3 void SOAP_FMAC4 soap_container_insert(struct soap*, int, int, void*, size_t, const void*, size_t);");	if (!lflag)	{	fprintf(fout, "\n\nSOAP_FMAC3 void SOAP_FMAC4 soap_container_insert(struct soap *soap, int st, int tt, void *p, size_t len, const void *q, size_t n)");	fprintf(fout, "\n{\tswitch (tt)\n\t{");	for (typ = Tptr[Ttemplate]; typ; typ = typ->next)	{ if (typ->ref && !is_transient(typ))	  { fprintf(fout, "\n\tcase %s:", soap_type(typ));	    fprintf(fout, "\n\t\tDBGLOG(TEST, SOAP_MESSAGE(fdebug, \"Container insert type=%%d in %%d location=%%p object=%%p len=%%lu\\n\", st, tt, p, q, (unsigned long)len));");            if (!strcmp(typ->id->name, "std::vector") || !strcmp(typ->id->name, "std::deque"))	      fprintf(fout, "\n\t\t(*(%s)p)[len] = *(%s)q;", c_type_id(typ, "*"), c_type_id(typ->ref, "*"));	    else	      fprintf(fout, "\n\t\t((%s)p)->insert(((%s)p)->end(), *(%s)q);", c_type_id(typ, "*"), c_type_id(typ, "*"), c_type_id(typ->ref, "*"));	    fprintf(fout, "\n\t\tbreak;");	  }	}	fprintf(fout, "\n\tdefault:\n\t\tDBGLOG(TEST, SOAP_MESSAGE(fdebug, \"Could not insert type=%%d in %%d\\n\", st, tt));");	fprintf(fout, "\n\t}");	fprintf(fout, "\n}");	}	}	}	DBGLOG(fprintf(stderr,"\n Calling def_table( )."));        def_table(table);	DBGLOG(fprintf(stderr,"\n Completed def_table( )."));	if (mflag) 	{ DBGLOG(fprintf(stderr,"\n Calling matlab_def_table( )."));	  matlab_def_table(table); 	  DBGLOG(fprintf(stderr,"\n Completed matlab_def_table( ).")); 	  fclose(fmatlab); 	  fclose(fmheader);	}	if (namespaceid)	  fprintf(fout,"\n\n} // namespace %s\n", namespaceid);	if (cflag)	  fprintf(fout,"\n\n#ifdef __cplusplus\n}\n#endif");	fprintf(fout, "\n\n/* End of %s */\n", soapC);        fclose(fout);	if (namespaceid)	  fprintf(fhead,"\n\n} // namespace %s\n", namespaceid);	if (cflag)	  fprintf(fhead,"\n\n#ifdef __cplusplus\n}\n#endif");	fprintf(fhead, "\n\n#endif");	fprintf(fhead, "\n\n/* End of %s */\n", soapH);	fclose(fhead);	if (namespaceid)	  fprintf(fheader,"\n\n} // namespace %s\n", namespaceid);	if (cflag)	  fprintf(fheader,"\n\n#ifdef __cplusplus\n}\n#endif");	fprintf(fheader, "\n\n#endif");	fprintf(fheader, "\n\n/* End of %s */\n", soapStub);	fclose(fheader);	if (!Sflag && !iflag)	{ if (namespaceid)	    fprintf(fclient,"\n\n} // namespace %s\n", namespaceid);

⌨️ 快捷键说明

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