static xmlNodePtr
gnc_pricedb_to_dom_tree(const xmlChar *tag, GNCPriceDB *db)
{
    xmlNodePtr db_xml = NULL;

    if (!tag) return NULL;

    db_xml = xmlNewNode(NULL, tag);
    if (!db_xml) return NULL;

    xmlSetProp(db_xml, BAD_CAST "version", BAD_CAST "1");

    if (!gnc_pricedb_foreach_price(db, xml_add_gnc_price_adapter, db_xml, TRUE))
    {
        xmlFreeNode(db_xml);
        return NULL;
    }

    /* if no children have been added just return NULL */
    if (!db_xml->xmlChildrenNode)
    {
        xmlFreeNode(db_xml);
        return NULL;
    }

    return db_xml;
}
Example #2
0
static gboolean
write_prices (GncSqlBackend* be)
{
    GNCPriceDB* priceDB;
    write_objects_t data;

    g_return_val_if_fail (be != NULL, FALSE);

    priceDB = gnc_pricedb_get_db (be->book);

    data.be = be;
    data.is_ok = TRUE;
    return gnc_pricedb_foreach_price (priceDB, write_price, &data, TRUE);
}