📄 symbol2.c
字号:
{ 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 + -