# HG changeset patch # User LordOfWar # Date 2009-10-09 21:19:25 # Node ID 3924a51565a6427a4e323e265c28d67c4c30f004 # Parent ce98fb7154f235092b73d32988fc9e2d3920aafe created function to read in the data from the xml file created by the previously created function diff --git a/src/server/distrend.c b/src/server/distrend.c --- a/src/server/distrend.c +++ b/src/server/distrend.c @@ -504,11 +504,40 @@ void updateGeneralInfo() xmlTextWriterWriteElement(writer, (xmlChar*)"total_frames_rendered", (xmlChar*)tmp); _distren_asprintf(&tmp, "%d", general_info.highest_jobnum); xmlTextWriterWriteElement(writer, (xmlChar*)"highest_jobnum", (xmlChar*)tmp); + + xmlTextWriterEndDocument(writer); + xmlFreeTextWriter(writer); +} + +// this reads the information from general_info.xml to the general_info structure +void importGeneralInfo() +{ + xmlDocPtr doc; + xmlNodePtr cur; + + doc = xmlParseFile("general_info.xml"); + cur = xmlDocGetRootElement(doc); + if (xmlStrcmp(cur->name, (xmlChar*)"general_info")) + { + fprintf(stderr, "xml document is wrong type"); + xmlFreeDoc(doc); + return; + } + + cur = cur->xmlChildrenNode; + general_info.jobs_in_queue = atoi((char*)xmlNodeListGetString(doc, cur->xmlChildrenNode, 1)); + cur = cur->next; + general_info.total_finished_jobs = atoi((char*)xmlNodeListGetString(doc, cur->xmlChildrenNode, 1)); + cur = cur->next; + general_info.total_frames_rendered = atoi((char*)xmlNodeListGetString(doc, cur->xmlChildrenNode, 1)); + cur = cur->next; + general_info.highest_jobnum = atoi((char*)xmlNodeListGetString(doc, cur->xmlChildrenNode, 1)); + + general_info.hibernate = 0; general_info.free_clients = 0; general_info.rendering_clients = 0; - xmlTextWriterEndDocument(writer); - xmlFreeTextWriter(writer); + xmlFreeDoc(doc); } // returns 1 on successful completion of xml file