コード例 #1
0
	// 导出场景
	bool XMLSceneSerializer::exportScene(IScene* scene, const String& filename)
	{
		m_scene = scene;

		LogManager::getSingleton().logMessage("XMLSceneSerializer writing XMLScene data to " + filename + "...");

		// 新建xml文件
		if(!newXML("Scenes"))
		{
			return false;
		}
		TiXmlElement *scenesElement = m_xmlDoc->RootElement();

		LogManager::getSingleton().logMessage("Writing XMLScene data...");
		writeScene(scenesElement);
		LogManager::getSingleton().logMessage("XMLScene data exported.");

		saveXML(filename);
		LogManager::getSingleton().logMessage("XMLSceneSerializer export successful.");

		closeXML();

		return true;
	}
コード例 #2
0
ファイル: mgPIDECMTable.c プロジェクト: MrLukass/dvbsnmp
int cache_load(netsnmp_cache *cache, void *magic) {
    DEBUGMSGTL(("mgPIDECMTable", "Load Handler\n"));
    xmlDocPtr doc;
    xmlChar *xpath = (xmlChar*) "/dvb/mg/mgSignalCharacteristics/mgSignalCharacteristicsObjects/mgTSStructure/mgPIDECMTable/mgPIDECMEntry";
    xmlNodeSetPtr nodeset;
    xmlXPathObjectPtr result;
    xmlNodePtr cur;
    int i;

    netsnmp_table_row *row;

    int mgPIDECMInputNumber = -1;
    int mgPIDECMServiceNumber = -1;
    int mgPIDECMPID = -1;
    int mgPIDECMCaPID = -1;
    int mgPIDECMCASystemID = -1;

    doc = getXMLDoc();
    if (doc == NULL) {
        DEBUGMSGTL(("mgPIDECMTable", "Problem with loading file %s, keeping old values in table.\n", INPUTXMLDOCUMENTPATH));
        return SNMP_ERR_NOERROR;
    }

    cleanTableSet(table_set);

    result = getNodesPtr(doc, xpath);

    if (result) {
        nodeset = result->nodesetval;
        for (i = 0; i < nodeset->nodeNr; i++) {
            cur = nodeset->nodeTab[i]->xmlChildrenNode;
            while (cur != NULL) {
                if ((!xmlStrcmp(cur->name, (const xmlChar *) "mgPIDECMInputNumber"))) {
                    mgPIDECMInputNumber = atoi(xmlNodeListGetString(doc, cur->xmlChildrenNode, 1));
                    DEBUGMSGTL(("mgPIDECMTable", "mgPIDECMInputNumber: %d\n", mgPIDECMInputNumber));
                } else if ((!xmlStrcmp(cur->name, (const xmlChar *) "mgPIDECMServiceNumber"))) {
                    mgPIDECMServiceNumber = atoi(xmlNodeListGetString(doc, cur->xmlChildrenNode, 1));
                    DEBUGMSGTL(("mgPIDECMTable", " mgPIDECMServiceNumber: %d\n", mgPIDECMServiceNumber));
                } else if ((!xmlStrcmp(cur->name, (const xmlChar *) "mgPIDECMPID"))) {
                    mgPIDECMPID = atoi(xmlNodeListGetString(doc, cur->xmlChildrenNode, 1));
                    DEBUGMSGTL(("mgPIDECMTable", "mgPIDECMPID: %d\n", mgPIDECMPID));
                } else if ((!xmlStrcmp(cur->name, (const xmlChar *) "mgPIDECMCaPID"))) {
                    mgPIDECMCaPID = atoi(xmlNodeListGetString(doc, cur->xmlChildrenNode, 1));
                    DEBUGMSGTL(("mgPIDECMTable", "mgPIDECMCaPID: %d\n", mgPIDECMCaPID));
                } else if ((!xmlStrcmp(cur->name, (const xmlChar *) "mgPIDECMCASystemID"))) {
                    mgPIDECMCASystemID = atoi(xmlNodeListGetString(doc, cur->xmlChildrenNode, 1));
                    DEBUGMSGTL(("mgPIDECMTable", "mgPIDECMCASystemID: %d\n", mgPIDECMCASystemID));
                }
                cur = cur->next;
            }
            row = netsnmp_create_table_data_row();
            netsnmp_table_row_add_index(row, ASN_INTEGER, &mgPIDECMInputNumber, sizeof (mgPIDECMInputNumber));
            netsnmp_table_row_add_index(row, ASN_INTEGER, &mgPIDECMServiceNumber, sizeof (mgPIDECMServiceNumber));
            netsnmp_table_row_add_index(row, ASN_INTEGER, &mgPIDECMPID, sizeof (mgPIDECMPID));
            netsnmp_set_row_column(row, 4, ASN_INTEGER, &mgPIDECMCaPID, sizeof (mgPIDECMCaPID));
            netsnmp_set_row_column(row, 5, ASN_INTEGER, &mgPIDECMCASystemID, sizeof (mgPIDECMCASystemID));
            netsnmp_table_dataset_add_row(table_set, row);

            mgPIDECMInputNumber = -1;
            mgPIDECMServiceNumber = -1;
            mgPIDECMPID = -1;
            mgPIDECMCaPID = -1;
            mgPIDECMCASystemID = -1;
        }
    } else {
        DEBUGMSGTL(("mgPIDECMTable", "Data loaded from file %s is empty.\n", INPUTXMLDOCUMENTPATH));
    }
    closeXML(doc, result);
    return SNMP_ERR_NOERROR;

}