char *gen_export_nfe_xml(NFE *nfe){ int rc, buffersize; xmlTextWriterPtr writer; xmlDocPtr doc; xmlChar *xmlbuf; writer = xmlNewTextWriterDoc(&doc, 0); if (writer == NULL) return NULL; xmlTextWriterStartDocument(writer, NULL, "UTF-8", NULL); rc = xmlTextWriterStartElement(writer, BAD_CAST "nfeProc"); if (rc < 0) return NULL; rc = xmlTextWriterWriteAttribute(writer, BAD_CAST "versao", BAD_CAST NFE_VERSAO); if (rc < 0) return NULL; rc = xmlTextWriterWriteRaw(writer, BAD_CAST nfe->xml); if (rc < 0) return NULL; rc = xmlTextWriterWriteRaw(writer, BAD_CAST nfe->protocolo->xml); if (rc < 0) return NULL; rc = xmlTextWriterEndElement(writer); if (rc < 0) return NULL; xmlTextWriterEndDocument(writer); xmlDocDumpMemory(doc, &xmlbuf, &buffersize); return (char*)xmlbuf; }
bool TasksetWriter::write(const std::string& filename, vector<Task*>& taskset) const { xmlDocPtr doc; tDebug() << "Writing Taskset to XML file: " << filename; xmlTextWriterPtr writer; writer = xmlNewTextWriterDoc(&doc, 0); xmlTextWriterSetIndent(writer, 1); if (xmlTextWriterSetIndentString(writer, (const xmlChar*) " ") != 0) { tError() << "Fehler beim Setzen des Einrueckens!"; } xmlTextWriterStartDocument(writer, NULL, "UTF-8", NULL); xmlTextWriterWriteComment(writer, (xmlChar*) "Hier kommen die Tasks"); xmlTextWriterStartElement(writer, (xmlChar*) "taskset"); xmlTextWriterWriteAttributeNS(writer, (xmlChar*) "xsi", (xmlChar*) "schemaLocation", (xmlChar*) "http://www.w3.org/2001/XMLSchema-instance", (xmlChar*) "http://www.tmsxmlns.com taskset.xsd"); xmlTextWriterWriteAttribute(writer, (xmlChar*) "xmlns", (xmlChar*) "http://www.tmsxmlns.com"); xmlTextWriterWriteRaw(writer, (xmlChar*) "\n"); for (size_t i = 0; i < taskset.size(); i++) { xmlTextWriterWriteRaw(writer, (xmlChar*) "\n"); //taskset[i]->write(writer); taskset[i]->writeToXML(writer); xmlTextWriterWriteRaw(writer, (xmlChar*) "\n"); } xmlTextWriterEndElement(writer); // close TaskSet xmlTextWriterEndDocument(writer); xmlFreeTextWriter(writer); xmlSaveFile(filename.c_str(), doc); xmlNodePtr cur = xmlDocGetRootElement(doc); if (cur == NULL) { tError() << "Empty document."; xmlFreeDoc(doc); return false; } if (xmlStrcmp(cur->name, (const xmlChar *) "taskset")) { tError() << "Document of the wrong type, root node != taskset"; xmlFreeDoc(doc); return false; } if (isValid(doc) > 0) { tDebug() << "Written document is valid"; } else { tError() << "Written document is invalid"; xmlFreeDoc(doc); return false; } xmlFreeDoc(doc); return true; }
/* write mean vector and covariance matrix as elements for multinormals */ static int writeMultiNormal(xmlTextWriterPtr writer, ghmm_c_emission *emission) { #define CUR_PROC "writeMultiNormal" char *tmp=NULL; /* writing mean vector*/ if (0 > xmlTextWriterStartElement(writer, BAD_CAST "mean")) { GHMM_LOG(LERROR, "Error at xmlTextWriterStartElement (mean)"); goto STOP; } tmp = doubleArrayToCSV(emission->mean.vec, emission->dimension); if (tmp) { if (0 > xmlTextWriterWriteRaw(writer, BAD_CAST tmp)) { GHMM_LOG(LERROR, "Error at xmlTextWriterWriteRaw while writing mean vector CSV"); goto STOP; } m_free(tmp); tmp = NULL; } else { GHMM_LOG(LERROR, "converting array to CSV failed for mean vector"); goto STOP; } if (0 > xmlTextWriterEndElement(writer)) { GHMM_LOG(LERROR, "Error at xmlTextWriterEndElement mean"); goto STOP; } /* writing covariance matrix*/ if (0 > xmlTextWriterStartElement(writer, BAD_CAST "variance")) { GHMM_LOG(LERROR, "Error at xmlTextWriterStartElement (variance)"); goto STOP; } tmp = doubleArrayToCSV(emission->variance.mat, emission->dimension * emission->dimension); if (tmp) { if (0 > xmlTextWriterWriteRaw(writer, BAD_CAST tmp)) { GHMM_LOG(LERROR, "Error at xmlTextWriterWriteRaw while writing variance matrix CSV"); goto STOP; } m_free(tmp); tmp = NULL; } else { GHMM_LOG(LERROR, "converting array to CSV failed for covariance matrix"); goto STOP; } if (0 > xmlTextWriterEndElement(writer)) { GHMM_LOG(LERROR, "Error at xmlTextWriterEndElement variance"); goto STOP; } return 0; STOP: free(tmp); return -1; #undef CUR_PROC }
/** Writes report header to xml file.. Opens the xml file for output. Allocate the memory for xml report. Write the Dtd/Xslt info. Write the root element. @internalComponent @released */ void XmlWriter::StartReport(void) { iXmlFile.open(iXmlFileName.c_str()); if(!(iXmlFile.is_open())) { throw ExceptionReporter(FILEOPENFAIL, __FILE__, __LINE__, (char*)iXmlFileName.c_str()); } if(!(CreateXslFile())) { ExceptionReporter(XSLCREATIONFAILED, __FILE__, __LINE__, (char*)KXslFileName.c_str()).Report(); } iXmlBufPtr = xmlBufferCreate(); // xml writer pointer to buffer ( with no compression ) iXmlTextWriter = xmlNewTextWriterMemory(iXmlBufPtr,0); if (!iXmlBufPtr || !iXmlTextWriter) { throw ExceptionReporter(NOMEMORY,__FILE__,__LINE__); } xmlTextWriterStartDocument(iXmlTextWriter, KXmlVersion.c_str(), KXmlEncoding.c_str(), KNull); xmlTextWriterWriteRaw(iXmlTextWriter,(unsigned char*)KDtdXslInfo.c_str()); xmlTextWriterStartElement(iXmlTextWriter, BAD_CAST KXmlRootElement.c_str()); xmlTextWriterStartElement(iXmlTextWriter,BAD_CAST KXmlcomment.c_str()); xmlTextWriterWriteAttribute(iXmlTextWriter, BAD_CAST KXmlcomment.c_str(), BAD_CAST iInputCommnd.c_str()); }
bool c_xmlwriter::t_writeraw(CStrRef content) { int ret = -1; if (m_ptr) { ret = xmlTextWriterWriteRaw(m_ptr, (xmlChar*)content.data()); } return ret != -1; }
bool c_XMLWriter::t_writeraw(const String& content) { int ret = -1; if (m_ptr) { ret = xmlTextWriterWriteRaw(m_ptr, (xmlChar*)content.data()); } return ret != -1; }
bool c_XMLWriter::t_writeraw(CStrRef content) { INSTANCE_METHOD_INJECTION_BUILTIN(XMLWriter, XMLWriter::writeraw); int ret = -1; if (m_ptr) { ret = xmlTextWriterWriteRaw(m_ptr, (xmlChar*)content.data()); } return ret != -1; }
static void serialize_node (xmlTextWriterPtr writer, gchar *node, gchar *value) { xmlTextWriterWriteRaw (writer, BAD_CAST "\n "); xmlTextWriterStartElement (writer, BAD_CAST node); xmlTextWriterWriteString (writer,BAD_CAST value); xmlTextWriterEndElement (writer); }
XmlWriter &XmlWriter::writeText(const char *text) { const int written = xmlTextWriterWriteRaw(xmlWriter_, BAD_CAST text); if (-1 == written) { BOOST_THROW_EXCEPTION(XmlWriterException(std::string("xmlTextWriterWriteRaw returned -1 "))); } return *this; }
static void serialize_html (BijiLazySerializer *self) { BijiLazySerializerPrivate *priv = self->priv; gchar *html = biji_note_obj_get_html (priv->note); if (!html) return; xmlTextWriterWriteRaw(priv->writer, BAD_CAST html); }
static void writeNode(Serialization *serialization, DFNode *node, int depth) { switch (node->tag) { case DOM_DOCUMENT: { if (!serialization->html) xmlTextWriterStartDocument(serialization->writer,"1.0","UTF-8","yes"); if (serialization->html) xmlTextWriterWriteDTD(serialization->writer,(xmlChar *)"html",NULL,NULL,NULL); // xmlTextWriterWriteDTD(writer, // (xmlChar *)"html", // (xmlChar *)"-//W3C//DTD XHTML 1.0 Strict//EN", // (xmlChar *)"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd", // NULL); for (DFNode *child = node->first; child != NULL; child = child->next) writeNode(serialization,child,0); xmlTextWriterEndDocument(serialization->writer); break; } case DOM_TEXT: { if (serialization->indent && ((node->prev != NULL) || (node->next != NULL))) xmlTextWriterWriteRawLen(serialization->writer,INDENT,1+depth); if (serialization->html && (node->parent != NULL) && (node->parent->tag == HTML_STYLE)) { xmlTextWriterWriteRaw(serialization->writer,(const xmlChar *)node->value); } else { xmlTextWriterWriteString(serialization->writer,(const xmlChar *)node->value); } break; } case DOM_COMMENT: { xmlTextWriterWriteComment(serialization->writer,(const xmlChar *)node->value); break; } case DOM_CDATA: { xmlTextWriterWriteCDATA(serialization->writer,(const xmlChar *)node->value); break; } case DOM_PROCESSING_INSTRUCTION: { xmlTextWriterWritePI(serialization->writer, (const xmlChar *)node->target, (const xmlChar *)node->value); break; } default: { if (node->parent == serialization->doc->docNode) writeElement(serialization,node,0); else writeElement(serialization,node,depth); break; } } }
/* ========================================================================= */ static int writeBackground(xmlTextWriterPtr writer, ghmm_dbackground* bg) { #define CUR_PROC "writeBackground" int i; char * tmp=NULL; for (i=0; i<bg->n; i++) { if (0 > xmlTextWriterStartElement(writer, BAD_CAST "background")) { GHMM_LOG_PRINTF(LERROR, LOC, "Error at starting backgroung %d", i); return -1; } if (!(bg->name)) { if (0 > xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "key", "bg_%d", i)) GHMM_LOG(LERROR, "Error at writing background key"); } else { if (0 > xmlTextWriterWriteAttribute(writer, BAD_CAST "key", BAD_CAST (bg->name[i]))) GHMM_LOG(LERROR, "Error at writing background key"); } if (0 < bg->order[i]) if (0 > xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "order", "%d", bg->order[i])) GHMM_LOG(LERROR, "can't write background order attribute"); tmp = doubleArrayToCSV(bg->b[i], pow(bg->m, bg->order[i]+1)); if (tmp) { if (0 > xmlTextWriterWriteRaw(writer, BAD_CAST tmp)) { GHMM_LOG(LERROR, "Error at xmlTextWriterWriteRaw while writing" "background distribution CSV"); m_free(tmp); return -1; } m_free(tmp); } else { GHMM_LOG(LERROR, "converting array to CSV failed for background distribution"); return -1; } if (0 > xmlTextWriterEndElement(writer)) { GHMM_LOG(LERROR, "Error at xmlTextWriterEndElement while ending" "background distribution"); return -1; } } return 0; #undef CUR_PROC }
char *gen_lote_xml(LOTE *lote, EVP_PKEY *key, X509 *cert){ int rc; xmlTextWriterPtr writer; xmlDocPtr doc; xmlBufferPtr buf = xmlBufferCreate(); writer = xmlNewTextWriterDoc(&doc, 0); if (writer == NULL) return NULL; xmlTextWriterStartDocument(writer, NULL, "UTF-8", NULL); rc = xmlTextWriterStartElement(writer, BAD_CAST "enviNFe"); if (rc < 0) return NULL; rc = xmlTextWriterWriteAttribute(writer, BAD_CAST "xmlns", BAD_CAST "http://www.portalfiscal.inf.br/nfe"); if (rc < 0) return NULL; rc = xmlTextWriterWriteAttribute(writer, BAD_CAST "versao", BAD_CAST NFE_VERSAO); if (rc < 0) return NULL; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "idLote", "%d", lote->id); if (rc < 0) return NULL; int indSinc = lote->qtd == 1? 1 : 0; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "indSinc", "%d", indSinc); if (rc < 0) return NULL; int i; LOTE_ITEM *it = lote->nfes; for (i = 0; i < lote->qtd; i++){ char *xml; xml = generate_xml(it->nfe, key, cert); printf("%s\n", xml); rc = xmlTextWriterWriteRaw(writer, BAD_CAST xml); if (rc < 0) return NULL; it = it->next; } rc = xmlTextWriterEndElement(writer); if (rc < 0) return NULL; xmlTextWriterEndDocument(writer); xmlNodeDump(buf, NULL, xmlDocGetRootElement(doc), 0, 0); return (char*)buf->content; }
/* ========================================================================= */ static int writeAlphabet(xmlTextWriterPtr writer, ghmm_alphabet * alfa, int type) { #define CUR_PROC "writeAlphabet" int i; if (0 > xmlTextWriterStartElement(writer, BAD_CAST (type == kAlphabet ? "alphabet" : "classAlphabet"))) { GHMM_LOG(LERROR, "Error at xmlTextWriterStartElement"); goto STOP;; } if (type == kAlphabet) if (0 > xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "id", "%d", alfa->id)) GHMM_LOG_PRINTF(LERROR, LOC, "failed to write id-attribute for alphabet" "with id %d", alfa->id); for (i=0; i<alfa->size; i++) { if (0 > xmlTextWriterStartElement(writer, BAD_CAST "symbol")) { GHMM_LOG_PRINTF(LERROR, LOC, "failed to start symbol-tag no %d", i); goto STOP; } if (0 > xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "code", "%d", i)) { GHMM_LOG_PRINTF(LERROR, LOC, "failed to write code-attribute for symbol %s" "with code %d", alfa->symbols[i], i); goto STOP; } if (0 > xmlTextWriterWriteRaw(writer, BAD_CAST replaceXMLEntity(alfa->symbols[i]))) { GHMM_LOG_PRINTF(LERROR, LOC, "failed to write symbol %s with code %d", alfa->symbols[i], i); goto STOP; } if (0 > xmlTextWriterEndElement(writer)) { GHMM_LOG_PRINTF(LERROR, LOC, "failed to end symbol-tag no %d", i); goto STOP; } } if (0 > xmlTextWriterEndElement(writer)) { GHMM_LOG(LERROR, "Error at ending alphabet"); goto STOP; } return 0; STOP: return -1; #undef CUR_PROC }
axis2_status_t AXIS2_CALL axis2_libxml2_writer_wrapper_write_raw( axiom_xml_writer_t * writer, const axutil_env_t * env, axis2_char_t * content) { axis2_libxml2_writer_wrapper_impl_t *writer_impl = NULL; int status = 0; AXIS2_ENV_CHECK(env, AXIS2_FAILURE); AXIS2_PARAM_CHECK(env->error, content, AXIS2_FAILURE); writer_impl = AXIS2_INTF_TO_IMPL(writer); status = xmlTextWriterWriteRaw(writer_impl->xml_writer, BAD_CAST content); if(status < 0) { AXIS2_HANDLE_ERROR(env, AXIS2_ERROR_WRITING_DATA_SOURCE, AXIS2_FAILURE); return AXIS2_FAILURE; } return AXIS2_SUCCESS; }
void write_config() { const char *uri=config_path; int rc; char str_ip[IP6_STR_SIZE]; xmlTextWriterPtr writer; router_list_t *tmp = routers; #ifdef _COUNTERMEASURES_ char config_kill_illegitimate_router[CM_GUARD_REPRESENTATION_SIZE]; char config_kill_wrong_prefix[CM_GUARD_REPRESENTATION_SIZE]; char config_propagate_router_params[CM_GUARD_REPRESENTATION_SIZE]; char config_indicate_ndpmon_presence[CM_GUARD_REPRESENTATION_SIZE]; #endif printf("Writing config...\n"); print_routers(routers); /* Create a new XmlWriter for uri, with no compression. */ writer = xmlNewTextWriterFilename(uri, 0); if (writer == NULL) { printf("testXmlwriterFilename: Error creating the xml writer\n"); return; } xmlTextWriterSetIndent(writer, 1); /* Start the document with the xml default for the version, * encoding ISO 8859-1 and the default for the standalone * declaration. */ rc = xmlTextWriterStartDocument(writer, NULL, MY_ENCODING, NULL); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterStartDocument\n"); return; } xmlTextWriterStartDTD (writer, (xmlChar*)"config_ndpmon", NULL, (xmlChar*)dtd_config_path); xmlTextWriterEndDTD (writer); /* Give the stylesheet for display in the web interface */ xmlTextWriterWriteRaw(writer, (xmlChar*)"<?xml-stylesheet type=\"text/xsl\" href=\"config.xsl\" ?>\n"); /* Start an element named "config_ndpmon". Since this is the first * element, this will be the root element of the document. */ rc = xmlTextWriterStartElement(writer, BAD_CAST "config_ndpmon"); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterStartElement\n"); return; } /* Attribute ignor_autoconf */ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "ignor_autoconf", "%d", ignor_autoconf); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* Attribute syslog_facility */ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "syslog_facility", "%s", syslog_facility); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* Attribute admin_mail */ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "admin_mail", "%s", admin_mail); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* Elements of actions_low_pri */ rc = xmlTextWriterStartElement(writer, BAD_CAST "actions_low_pri"); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* Attribute sendmail */ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "sendmail", "%d", action_low_pri.sendmail); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* Attribute syslog */ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "syslog", "%d", action_low_pri.syslog); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* Attribute exec_pipe_program */ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "exec_pipe_program", "%s", action_low_pri.exec_pipe_program); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* Close actions_low_pri */ rc = xmlTextWriterEndElement(writer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); return; } /* Elements of actions_high_pri */ rc = xmlTextWriterStartElement(writer, BAD_CAST "actions_high_pri"); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* Attribute sendmail */ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "sendmail", "%d", action_high_pri.sendmail); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* Attribute syslog */ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "syslog", "%d", action_high_pri.syslog); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* Attribute exec_pipe_program */ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "exec_pipe_program", "%s", action_high_pri.exec_pipe_program); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* Close actions_high_pri */ rc = xmlTextWriterEndElement(writer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); return; } /* Attribute use_reverse_hostlookups */ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "use_reverse_hostlookups", "%d", use_reverse_hostlookups); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* Start an element named routers containing the routers' definition */ rc = xmlTextWriterStartElement(writer, BAD_CAST "routers"); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterStartElement\n"); return; } /*for each router a new neighbor with its attributes is created in the file */ while(tmp != NULL) { address_t *tmp_address = tmp->addresses; prefix_t *tmp_prefix = tmp->prefixes; ipv6_ntoa(str_ip, tmp->lla); /* Start an element named "router" as child of routers. */ rc = xmlTextWriterStartElement(writer, BAD_CAST "router"); if (rc < 0) goto start_element_error; /* Element mac */ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "mac", "%s", ether_ntoa(&(tmp->mac))); if (rc < 0) goto format_element_error; /* Element lla */ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "lla", "%s", str_ip); if (rc < 0) goto format_element_error; /* Elements for Router Advertisement Parameters: */ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "param_curhoplimit", "%u", tmp->param_curhoplimit); if (rc < 0) goto format_element_error; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "param_flags_reserved", "%u", tmp->param_flags_reserved); if (rc < 0) goto format_element_error; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "param_router_lifetime", "%u", tmp->param_router_lifetime); if (rc < 0) goto format_element_error; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "param_reachable_timer", "%u", tmp->param_reachable_timer); if (rc < 0) goto format_element_error; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "param_retrans_timer", "%u", tmp->param_retrans_timer); if (rc < 0) goto format_element_error; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "param_mtu", "%u", tmp->param_mtu); if (rc < 0) goto format_element_error; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "params_volatile", "%i", tmp->params_volatile); if (rc < 0) goto format_element_error; /* Start an element named prefixes */ rc = xmlTextWriterStartElement(writer, BAD_CAST "prefixes"); if (rc < 0) goto start_element_error; while(tmp_prefix != NULL) { ipv6_ntoa(str_ip, tmp_prefix->prefix); rc = xmlTextWriterStartElement(writer, BAD_CAST "prefix"); if (rc < 0) goto start_element_error; /* Elements for prefix address and mask:*/ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "address", "%s", str_ip); if (rc < 0) goto format_element_error; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "mask", "%i", tmp_prefix->mask); if (rc < 0) goto format_element_error; /* Elements for prefix parameters:*/ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "param_flags_reserved", "%u", tmp_prefix->param_flags_reserved); if (rc < 0) goto format_element_error; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "param_valid_time", "%u", tmp_prefix->param_valid_time); if (rc < 0) goto format_element_error; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "param_preferred_time", "%u", tmp_prefix->param_preferred_time); if (rc < 0) goto format_element_error; rc = xmlTextWriterEndElement(writer); if (rc < 0) goto end_element_error; /* Fetch next prefix:*/ tmp_prefix = tmp_prefix->next; } rc = xmlTextWriterEndElement(writer); if (rc < 0) goto end_element_error; /* Addresses */ rc = xmlTextWriterStartElement(writer, BAD_CAST "addresses"); if (rc < 0) goto start_element_error; while(tmp_address != NULL) { ipv6_ntoa(str_ip, tmp_address->address); /*Element for address.*/ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "address", "%s", str_ip); if (rc < 0) goto format_element_error; tmp_address = tmp_address->next; } /* close addresses */ rc = xmlTextWriterEndElement(writer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); return; } /* close router */ rc = xmlTextWriterEndElement(writer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); return; } tmp = tmp->next; } /* Close routers */ rc = xmlTextWriterEndElement(writer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); return; } #ifdef _COUNTERMEASURES_ cm_guard_all_to_representation( config_kill_illegitimate_router, config_kill_wrong_prefix, config_propagate_router_params, config_indicate_ndpmon_presence ); /* Start an element named countermeasures containing the counter measures configuration. */ rc = xmlTextWriterStartElement(writer, BAD_CAST "countermeasures"); if (rc < 0) goto start_element_error; /* Write guard configurations. */ rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "kill_illegitimate_router", "%s", config_kill_illegitimate_router); if (rc < 0) goto format_element_error; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "kill_wrong_prefix", "%s", config_kill_wrong_prefix); if (rc < 0) goto format_element_error; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "propagate_router_params", "%s", config_propagate_router_params); if (rc < 0) goto format_element_error; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "indicate_ndpmon_presence", "%s", config_indicate_ndpmon_presence); if (rc < 0) goto format_element_error; /* Close countermeasures */ rc = xmlTextWriterEndElement(writer); if (rc < 0) goto end_element_error; #endif /* Close config_ndpmon */ rc = xmlTextWriterEndElement(writer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); return; } xmlFreeTextWriter(writer); return; format_element_error: printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); xmlFreeTextWriter(writer); return; start_element_error: printf("testXmlwriterFilename: Error at xmlTextWriterStartElement\n"); xmlFreeTextWriter(writer); return; end_element_error: printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); xmlFreeTextWriter(writer); return; }
void write_cache() { const char *uri=cache_path; int rc; char str_ip[IP6_STR_SIZE]; xmlTextWriterPtr writer; neighbor_list_t *tmp = neighbors; FILE *dat = NULL; printf("Writing cache...\n"); /* Create a new XmlWriter for uri, with no compression. */ writer = xmlNewTextWriterFilename(uri, 0); if (writer == NULL) { printf("testXmlwriterFilename: Error creating the xml writer\n"); return; } xmlTextWriterSetIndent(writer, 1); /* Start the document with the xml default for the version, * encoding ISO 8859-1 and the default for the standalone * declaration. */ rc = xmlTextWriterStartDocument(writer, NULL, MY_ENCODING, NULL); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterStartDocument\n"); return; } xmlTextWriterStartDTD (writer, (xmlChar*)"neighbor_list", NULL, (xmlChar*)dtd_path); xmlTextWriterEndDTD (writer); /* Give the stylesheet for display in the web interface */ xmlTextWriterWriteRaw(writer, (xmlChar*)"<?xml-stylesheet type=\"text/xsl\" href=\"neighbor.xsl\" ?>\n"); /* Start an element named "neighbor_list". Since this is the first * element, this will be the root element of the document. */ rc = xmlTextWriterStartElement(writer, BAD_CAST "neighbor_list"); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterStartElement\n"); return; } /*for each neighbor in the cache a new neighbor element with its *attributes is created in the file */ while(tmp != NULL) { address_t *atmp = tmp->addresses; ethernet_t *etmp = tmp->old_mac; /* to format the time */ time_t timep; char time_str[27]; char vlan_str[10]; /* Start an element named "neighbor" as child of neighbor_list. */ rc = xmlTextWriterStartElement(writer, BAD_CAST "neighbor"); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterStartElement\n"); return; } /* Attribute vlan_id */ snprintf(vlan_str,9,"%d",(int) tmp->vlan_id); rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "vlan_id", "%s", vlan_str); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* Attribute mac */ rc = xmlTextWriterStartElement(writer, BAD_CAST "mac"); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } #ifdef _MACRESOLUTION_ rc = xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "vendor", "%s", tmp->vendor); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteAttribute %d\n",rc); } #endif rc = xmlTextWriterWriteRaw(writer, BAD_CAST ether_ntoa(&(tmp->mac))); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } rc = xmlTextWriterEndElement(writer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); return; } /* rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "mac", "%s", ether_ntoa(&(tmp->mac))); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } */ /* Attribute lla */ ipv6_ntoa(str_ip, tmp->lla); rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "lla", "%s", str_ip); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* element time */ rc = xmlTextWriterStartElement(writer, BAD_CAST "time"); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } #if 0 rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "time", "%d",tmp->timer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } #endif /* convert to str representation in order to display it in the web interface */ timep = tmp->timer; strcpy(time_str, ctime(&timep)); rc = xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "timestr", "%s", time_str); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteAttribute %d\n",rc); } /* the content */ snprintf(time_str,27,"%d",(int) tmp->timer); rc = xmlTextWriterWriteRaw(writer, BAD_CAST time_str); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } rc = xmlTextWriterEndElement(writer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); return; } /* Addresses */ /* rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "adresses", NULL, NULL); */ rc = xmlTextWriterStartElement(writer, BAD_CAST "addresses"); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } while(atmp != NULL) { /* to store a char * version of the int + \O */ ipv6_ntoa(str_ip, atmp->address); /* the address element */ rc = xmlTextWriterStartElement(writer, BAD_CAST "address"); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } /* lastseen timer */ rc = xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "lastseen", "%d", (int)atmp->lastseen); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteAttribute %d\n",rc); } /* convert to str representation in order to display it in the web interface */ timep = atmp->lastseen; strcpy(time_str, ctime(&timep)); rc = xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "lastseenstr", "%s", time_str); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteAttribute %d\n",rc); } /* firstseen timer */ rc = xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "firstseen", "%d", (int)atmp->firstseen); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteAttribute %d\n",rc); } /* convert to str representation in order to display it in the web interface */ timep = atmp->firstseen; strcpy(time_str, ctime(&timep)); rc = xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "firstseenstr", "%s", time_str); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteAttribute %d\n",rc); } /* the content */ rc = xmlTextWriterWriteRaw(writer, BAD_CAST str_ip); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } rc = xmlTextWriterEndElement(writer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); return; } atmp = atmp->next; } rc = xmlTextWriterEndElement(writer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); return; } /* Old Mac */ rc = xmlTextWriterStartElement(writer, BAD_CAST "old_mac"); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } while(etmp != NULL) { rc = xmlTextWriterStartElement(writer, BAD_CAST "mac"); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } if(!MEMCMP(&(etmp->mac),&(tmp->previous_mac), sizeof(struct ether_addr))) { rc = xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "last", "%s", "true"); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteAttribute %d\n",rc); } } #ifdef _MACRESOLUTION_ rc = xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "vendor", "%s", etmp->vendor); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteAttribute %d\n",rc); } #endif rc = xmlTextWriterWriteRaw(writer, BAD_CAST ether_ntoa(&(etmp->mac))); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterWriteFormatElement\n"); return; } rc = xmlTextWriterEndElement(writer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); return; } etmp = etmp->next; } rc = xmlTextWriterEndElement(writer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); return; } /* Close neighbor */ rc = xmlTextWriterEndElement(writer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); return; } tmp = tmp->next; } /* Close neighbor_list */ rc = xmlTextWriterEndElement(writer); if (rc < 0) { printf("testXmlwriterFilename: Error at xmlTextWriterEndElement\n"); return; } xmlFreeTextWriter(writer); /* Write in discovery_history.dat the number of neighbors in the cache for statistics */ if( (dat = fopen(discovery_history_path,"a")) != NULL) { fprintf(dat,"%d %d\n", (int)time(NULL), nb_neighbor(neighbors) ); fclose(dat); } }
gboolean biji_lazy_serialize_internal (BijiLazySerializer *self) { BijiLazySerializerPrivate *priv = self->priv; GList *tags; GdkRGBA color; gchar *date, *color_str; gboolean retval; const gchar *path; GTimeVal time = {0, 0}; priv->writer = xmlNewTextWriterMemory(priv->buf, 0); // Header xmlTextWriterStartDocument (priv->writer,"1.0","utf-8",NULL); xmlTextWriterStartElement (priv->writer, BAD_CAST "note"); xmlTextWriterWriteAttributeNS (priv->writer, NULL, BAD_CAST "version",NULL, BAD_CAST "1"); xmlTextWriterWriteAttributeNS (priv->writer, BAD_CAST "xmlns", BAD_CAST "link", NULL, BAD_CAST "http://projects.gnome.org/bijiben/link"); xmlTextWriterWriteAttributeNS (priv->writer, BAD_CAST "xmlns", BAD_CAST "size", NULL, BAD_CAST "http://projects.gnome.org/bijiben/size"); xmlTextWriterWriteAttributeNS (priv->writer, NULL, BAD_CAST "xmlns", NULL, BAD_CAST "http://projects.gnome.org/bijiben"); // <Title> serialize_node (priv->writer, "title", (gchar*) biji_item_get_title (BIJI_ITEM (priv->note))); // <text> xmlTextWriterWriteRaw(priv->writer, BAD_CAST "\n "); xmlTextWriterStartElement(priv->writer, BAD_CAST "text"); xmlTextWriterWriteAttributeNS(priv->writer, BAD_CAST "xml", BAD_CAST "space", NULL, BAD_CAST "preserve"); serialize_html (self); // </text> xmlTextWriterEndElement(priv->writer); // <last-change-date> time.tv_sec = biji_item_get_mtime (BIJI_ITEM (priv->note)); date = g_time_val_to_iso8601 (&time); if (date) { serialize_node (priv->writer, "last-change-date", date); g_free (date); } time.tv_sec = biji_note_obj_get_last_metadata_change_date (priv->note); date = g_time_val_to_iso8601 (&time); if (date) { serialize_node (priv->writer, "last-metadata-change-date", date); g_free (date); } time.tv_sec = biji_note_obj_get_create_date (priv->note); date = g_time_val_to_iso8601 (&time); if (date) { serialize_node (priv->writer, "create-date", date); g_free (date); } serialize_node (priv->writer, "cursor-position", "0"); serialize_node (priv->writer, "selection-bound-position", "0"); serialize_node (priv->writer, "width", "0"); serialize_node (priv->writer, "height", "0"); serialize_node (priv->writer, "x", "0"); serialize_node (priv->writer, "y", "0"); if (biji_note_obj_get_rgba (priv->note, &color)) { color_str = gdk_rgba_to_string (&color); serialize_node (priv->writer, "color", color_str); g_free (color_str); } //<tags> xmlTextWriterWriteRaw(priv->writer, BAD_CAST "\n "); xmlTextWriterStartElement (priv->writer, BAD_CAST "tags"); tags = biji_note_obj_get_notebooks (priv->note); g_list_foreach (tags, (GFunc) serialize_tags, priv->writer); xmlTextWriterEndElement (priv->writer); g_list_free (tags); // <open-on-startup> serialize_node (priv->writer, "open-on-startup", "False"); // <note> xmlTextWriterWriteRaw(priv->writer, BAD_CAST "\n "); xmlTextWriterEndElement(priv->writer); xmlFreeTextWriter(priv->writer); path = biji_item_get_uuid (BIJI_ITEM (priv->note)); retval = g_file_set_contents (path, (gchar*) priv->buf->content, -1, NULL); return retval; }
/* ========================================================================= */ static int writeDiscreteSwitchingStateContents(xmlTextWriterPtr writer, ghmm_xmlfile* f, int moNo, int sNo) { #define CUR_PROC "writeDiscreteSwitchingStateContents" int bgId, cLabel, rc, order, tied; char * tmp=NULL; /* writing discrete distribution */ if (0 > xmlTextWriterStartElement(writer, BAD_CAST "discrete")) { GHMM_LOG(LERROR, "Error at xmlTextWriterStartElement (discrete)"); goto STOP; } if (0 > xmlTextWriterWriteAttribute(writer, BAD_CAST "id", BAD_CAST "0")) { GHMM_LOG(LERROR, "failed to write alphabet id"); goto STOP; } if (f->model.ds[moNo]->s[sNo].fix) if (0 > xmlTextWriterWriteAttribute(writer, BAD_CAST "fixed", BAD_CAST "1")) { GHMM_LOG(LERROR, "failed to write fixed attriute"); goto STOP; } if ((f->model.ds[moNo]->model_type & GHMM_kHigherOrderEmissions) && f->model.ds[moNo]->order[sNo]) { order = f->model.ds[moNo]->order[sNo]; if (0 > xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "order", "%d", order)) { GHMM_LOG(LERROR, "failed to write order attribute for discrete distribution"); goto STOP; } } else order = 0; tmp = doubleArrayToCSV(f->model.ds[moNo]->s[sNo].b, pow(f->model.ds[moNo]->M, order+1)); if (tmp) { if (0 > xmlTextWriterWriteRaw(writer, BAD_CAST tmp)) { GHMM_LOG(LERROR, "Error at xmlTextWriterWriteRaw while writing" "discrete distribution CSV"); m_free(tmp); goto STOP; } m_free(tmp); } else { GHMM_LOG(LERROR, "converting array to CSV failed for discrete distribution"); goto STOP; } /* end discrete distribution */ if (0 > xmlTextWriterEndElement(writer)) { GHMM_LOG(LERROR, "Error at xmlTextWriterEndElement (discrete)"); goto STOP; } /* writing backgroung key */ if (f->model.ds[moNo]->model_type & GHMM_kBackgroundDistributions) { bgId = f->model.ds[moNo]->background_id[sNo]; if (bgId != GHMM_kNoBackgroundDistribution) { if (f->model.ds[moNo]->bp->name[bgId]) { rc = xmlTextWriterWriteElement(writer, BAD_CAST "backgroundKey", BAD_CAST f->model.ds[moNo]->bp->name[bgId]); if (rc<0) { GHMM_LOG(LERROR, "Error at xmlTextWriterWriteElement (backgroundKey)"); goto STOP; } } else { GHMM_LOG(LERROR, "background name is NULL pointer, invalid model"); goto STOP; } } } /* writing class label */ if (f->model.ds[moNo]->model_type & GHMM_kLabeledStates) { cLabel = f->model.ds[moNo]->label[sNo]; rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "class", "%d", cLabel); if (rc<0) { GHMM_LOG(LERROR, "failed to write class label"); goto STOP; } } /* duration (not implemented yet, maybe never */ #if 0 if (f->model.ds[moNo]->model_type & GHMM_kDurations) { if (f->model.ds[moNo]->duration[sNo] > 0) { rc = xmlTextWriterWriteElement(writer, BAD_CAST "duration", BAD_CAST f->model.ds[moNo]->duration[sNo]); if (rc<0) { GHMM_LOG(LERROR, "Error at xmlTextWriterWriteElement (duration)"); goto STOP; } } } #endif /* writing positions */ if ((f->model.ds[moNo]->s[sNo].xPosition > 0) && (f->model.ds[moNo]->s[sNo].xPosition > 0)) { if (xmlTextWriterStartElement(writer, BAD_CAST "position") < 0) { GHMM_LOG(LERROR, "failed to start position element (position)"); goto STOP;} if (0 > xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "x", "%d", f->model.ds[moNo]->s[sNo].xPosition)) { GHMM_LOG(LERROR, "failed to write x position"); goto STOP;} if (0 > xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "y", "%d", f->model.ds[moNo]->s[sNo].yPosition)) { GHMM_LOG(LERROR, "failed to write y position"); goto STOP;} if (xmlTextWriterEndElement(writer) < 0) { GHMM_LOG(LERROR, "Error at xmlTextWriterEndElement (position)"); goto STOP;} } /* writing tied states */ if (f->model.ds[moNo]->model_type & GHMM_kTiedEmissions) { tied = f->model.ds[moNo]->tied_to[sNo]; if (tied != GHMM_kUntied) { rc = xmlTextWriterWriteFormatElement(writer, BAD_CAST "tiedTo", "%d", tied); if (rc<0) { GHMM_LOG(LERROR, "failed to write tiedTo element"); goto STOP; } } } return 0; STOP: return -1; #undef CUR_PROC }