static void dumpCompliances(int modc, SmiModule **modv, int flags, char *output) { int i; FILE *f = stdout; if (output) { f = fopen(output, "w"); if (!f) { fprintf(stderr, "smidump: cannot open %s for writing: ", output); perror(NULL); exit(1); } } for (i = 0; i < modc; i++) { if (! (flags & SMIDUMP_FLAG_SILENT)) { fprintf(f, "# %s compliances (generated by smidump " SMI_VERSION_STRING ")\n\n", modv[i]->name); } fprintCompliances(f, modv[i]); } if (fflush(f) || ferror(f)) { perror("smidump: write error"); exit(1); } if (output) { fclose(f); } }
static void dumpXml(int modc, SmiModule **modv, int flags, char *output) { int i; FILE *f = stdout; if (output) { f = fopen(output, "w"); if (!f) { fprintf(stderr, "smidump: cannot open %s for writing: ", output); perror(NULL); exit(1); } } for (i = 0; i < modc; i++) { fprint(f, "<?xml version=\"1.0\"?>\n"); if (!disabledoctype) { fprint(f, "<!DOCTYPE smi SYSTEM \"http://www.ibr.cs.tu-bs.de/projects/nmrg/smi.dtd\">\n"); } fprint(f, "\n"); fprint(f, "<!-- This module has been generated by smidump " SMI_VERSION_STRING ". Do not edit. -->\n"); fprint(f, "\n"); if (!disableschema) { fprint(f, "<smi xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"); fprint(f, " xsi:noNamespaceSchemaLocation=\"http://www.ibr.cs.tu-bs.de/projects/nmrg/smi.xsd\">\n"); } else { fprint(f, "<smi>\n"); } fprintModule(f, modv[i]); fprintImports(f, modv[i]); fprintTypedefs(f, modv[i]); fprintNodes(f, modv[i]); fprintNotifications(f, modv[i]); fprintGroups(f, modv[i]); fprintCompliances(f, modv[i]); fprint(f, "</smi>\n"); } if (fflush(f) || ferror(f)) { perror("smidump: write error"); exit(1); } if (output) { fclose(f); } }
static void dumpSming(int modc, SmiModule **modv, int flags, char *output) { SmiModule *smiModule; SmiNode *smiNode; int i; FILE *f = stdout; silent = (flags & SMIDUMP_FLAG_SILENT); if (output) { f = fopen(output, "w"); if (!f) { fprintf(stderr, "smidump: cannot open %s for writing: ", output); perror(NULL); exit(1); } } for (i = 0; i < modc; i++) { smiModule = modv[i]; fprint(f, "//\n"); fprint(f, "// This module has been generated by smidump " SMI_VERSION_STRING ". Do not edit.\n"); fprint(f, "//\n"); fprint(f, "module %s ", smiModule->name); fprint(f, "{\n"); fprint(f, "\n"); fprintImports(f, smiModule); if (! silent) { fprint(f, "//\n// MODULE META INFORMATION\n//\n\n"); } fprintSegment(f, INDENT, "organization", INDENTVALUE); fprint(f, "\n"); fprintMultilineString(f, INDENT, smiModule->organization); fprint(f, ";\n\n"); fprintSegment(f, INDENT, "contact", INDENTVALUE); fprint(f, "\n"); fprintMultilineString(f, INDENT, smiModule->contactinfo); fprint(f, ";\n\n"); fprintSegment(f, INDENT, "description", INDENTVALUE); fprint(f, "\n"); fprintMultilineString(f, INDENT, smiModule->description); fprint(f, ";\n\n"); if (smiModule->reference) { fprintSegment(f, INDENT, "reference", INDENTVALUE); fprint(f, "\n"); fprintMultilineString(f, INDENT, smiModule->reference); fprint(f, ";\n\n"); } fprintRevisions(f, smiModule); smiNode = smiGetModuleIdentityNode(smiModule); if (smiNode) { fprintSegment(f, INDENT, "identity", INDENTVALUE); fprint(f, "%s;\n\n", smiNode->name); } fprintTypedefs(f, smiModule); fprintObjects(f, smiModule); fprintNotifications(f, smiModule); fprintGroups(f, smiModule); fprintCompliances(f, smiModule); fprint(f, "}; // end of module %s.\n", smiModule->name); } if (fflush(f) || ferror(f)) { perror("smidump: write error"); exit(1); } if (output) { fclose(f); } }