gnucash/src/engine/gnc-xml.h

55 lines
2.3 KiB
C
Raw Normal View History

/********************************************************************\
* gnc-xml.h -- api for gnucash xml i/o *
* *
* Copyright (C) 2001 James LewisMoss <dres@debian.org> *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation; either version 2 of *
* the License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License*
* along with this program; if not, contact: *
* *
* Free Software Foundation Voice: +1-617-542-5942 *
* 59 Temple Place - Suite 330 Fax: +1-617-542-2652 *
* Boston, MA 02111-1307, USA gnu@gnu.org *
* *
\********************************************************************/
#ifndef __GNC_XML_H__
#define __GNC_XML_H__
#include "config.h"
#include "gnc-xml-helper.h"
#include "Account.h"
#include "gnc-commodity.h"
#include "sixtp.h"
James LewisMoss's patch. * src/gnome/window-main.c (gnc_ui_xml_v2_cb): new func. (gnc_ui_account_heirarchy_cb): new empty func. (gnc_main_create_menus): add devel menu. * src/engine/io-gncxml-v2.h (struct _load_counter_struct): add counters stuff. * src/engine/io-gncxml-v2.c: mostly complete everything. Writing only partially tested. Reading not tested at all. * src/engine/gnc-xml.h: add pricedb declarations. * src/engine/gnc-transaction-xml-v2.c (split_to_dom_tree): check for NULL return from kvp_frame_to_dom_tree and don't add if we get it. (gnc_transaction_dom_tree_create): same. * src/engine/gnc-commodity.c (gnc_commodity_table_get_size): add func. * src/engine/gnc-account-xml-v2.c (gnc_account_dom_tree_create): check for NULL return from kvp_frame_to_dom_tree and don't do anything if we get it. * src/gnome/gnc-http.c (gnc_http_start_post): cast data to char* (it's const char*) (compile warning) * src/gnome/gnc-html.c: put const on char *ptr (compile warning) * src/doc/xml/io-gncxml-version2.dtd: reorder commodity and prices. Add count data defs. * src/engine/sixtp-dom-generators.c (timespec_to_dom_tree): Only write nanoseconds if > 0. (kvp_frame_to_dom_tree): don't return an xmlNodePtr if the frame is null or contains no data. * src/engine/gnc-commodity-xml-v2.c (gnc_commodity_dom_tree_create): check to see if xcode is > 0 * src/engine/gnc-account-xml-v2.c (gnc_account_dom_tree_create): check for description and code strlen > 0 * src/engine/gnc-pricedb-xml-v1.c (pricedb_v2_end_handler): make this func work in the v2 manner with a callback in the global data. (gnc_pricedb_sixtp_parser_create): change to work in the v2 manner with an end handler that does the final link of the data into the book. (pricedb_after_child_handler): add upping the counter for prices loaded. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3772 57a11ea4-9604-0410-9ed3-97b8803252fd
2001-03-13 00:20:03 -06:00
#include "gnc-pricedb.h"
xmlNodePtr gnc_account_dom_tree_create(Account *act);
sixtp* gnc_account_sixtp_parser_create(void);
xmlNodePtr gnc_commodity_dom_tree_create(const gnc_commodity *act);
sixtp* gnc_commodity_sixtp_parser_create(void);
James LewisMoss's patch. * src/test/test-stuff.c (failure): don't print num if == -1. (success): same. (get_random_account): move here from test-xml-account.c (get_random_split): move here from test-xml-transaction.c (get_random_transaction): same. (success_args): New func. (success): Simplified version (failure_args): new func. (failure): Simplified version. * src/engine/io-gncbin-r.c: same as below. * src/engine/TransLog.c (xaccTransWriteLog): same as below. * src/engine/Group.c (xaccGroupMergeAccounts): same as below. * src/engine/Backend.c (xaccTransactionGetBackend): Convert to not use the split's acc part directly, but only to access through funcs * src/engine/sixtp-dom-parsers.c (dom_tree_generic_parse): Add generic parser. * src/engine/gnc-account-xml-v2.c (gnc_account_end_handler): use generic parser extracted from here and used here and gnc-transaction-iml-v2.c * src/engine/Transaction.c (xaccInitSplit): Add a split->acc_guid field that is set to the account's guid. This way an Account is not required to exist yet when loading the split. Later when xaccSplitGetAccount is called the account is looked up, cached and returned. Make sure everything accesses ->acc through the helper function. * src/engine/AccountP.h: same as below. * src/engine/Account.c (xaccAccountSetGUID): mark guid argument const since it doesn't keep a pointer to it. * src/doc/xml/transactions-v2.dtd: change guid -> id. * src/engine/Transaction.c (get_denom_internal): New helper func. (get_currency_denom): use func. (get_security_denom): use func. * src/engine/sixtp.c: (sixtp_sax_end_handler, sixtp_sax_characters_handler, sixtp_sax_start_handler): don't use g_return_if_fail to test pdata->parsing_ok so we don't see the million CRITICAL warnings. We'll print an error at the end anyway. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3762 57a11ea4-9604-0410-9ed3-97b8803252fd
2001-03-09 01:46:13 -06:00
xmlNodePtr gnc_transaction_dom_tree_create(Transaction *com);
sixtp* gnc_transaction_sixtp_parser_create(void);
James LewisMoss's patch. * src/test/test-stuff.c (failure): don't print num if == -1. (success): same. (get_random_account): move here from test-xml-account.c (get_random_split): move here from test-xml-transaction.c (get_random_transaction): same. (success_args): New func. (success): Simplified version (failure_args): new func. (failure): Simplified version. * src/engine/io-gncbin-r.c: same as below. * src/engine/TransLog.c (xaccTransWriteLog): same as below. * src/engine/Group.c (xaccGroupMergeAccounts): same as below. * src/engine/Backend.c (xaccTransactionGetBackend): Convert to not use the split's acc part directly, but only to access through funcs * src/engine/sixtp-dom-parsers.c (dom_tree_generic_parse): Add generic parser. * src/engine/gnc-account-xml-v2.c (gnc_account_end_handler): use generic parser extracted from here and used here and gnc-transaction-iml-v2.c * src/engine/Transaction.c (xaccInitSplit): Add a split->acc_guid field that is set to the account's guid. This way an Account is not required to exist yet when loading the split. Later when xaccSplitGetAccount is called the account is looked up, cached and returned. Make sure everything accesses ->acc through the helper function. * src/engine/AccountP.h: same as below. * src/engine/Account.c (xaccAccountSetGUID): mark guid argument const since it doesn't keep a pointer to it. * src/doc/xml/transactions-v2.dtd: change guid -> id. * src/engine/Transaction.c (get_denom_internal): New helper func. (get_currency_denom): use func. (get_security_denom): use func. * src/engine/sixtp.c: (sixtp_sax_end_handler, sixtp_sax_characters_handler, sixtp_sax_start_handler): don't use g_return_if_fail to test pdata->parsing_ok so we don't see the million CRITICAL warnings. We'll print an error at the end anyway. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3762 57a11ea4-9604-0410-9ed3-97b8803252fd
2001-03-09 01:46:13 -06:00
xmlNodePtr split_to_dom_tree(const gchar *tag, Split *spl);
Split* dom_tree_to_split(xmlNodePtr node);
James LewisMoss's patch. * src/gnome/window-main.c (gnc_ui_xml_v2_cb): new func. (gnc_ui_account_heirarchy_cb): new empty func. (gnc_main_create_menus): add devel menu. * src/engine/io-gncxml-v2.h (struct _load_counter_struct): add counters stuff. * src/engine/io-gncxml-v2.c: mostly complete everything. Writing only partially tested. Reading not tested at all. * src/engine/gnc-xml.h: add pricedb declarations. * src/engine/gnc-transaction-xml-v2.c (split_to_dom_tree): check for NULL return from kvp_frame_to_dom_tree and don't add if we get it. (gnc_transaction_dom_tree_create): same. * src/engine/gnc-commodity.c (gnc_commodity_table_get_size): add func. * src/engine/gnc-account-xml-v2.c (gnc_account_dom_tree_create): check for NULL return from kvp_frame_to_dom_tree and don't do anything if we get it. * src/gnome/gnc-http.c (gnc_http_start_post): cast data to char* (it's const char*) (compile warning) * src/gnome/gnc-html.c: put const on char *ptr (compile warning) * src/doc/xml/io-gncxml-version2.dtd: reorder commodity and prices. Add count data defs. * src/engine/sixtp-dom-generators.c (timespec_to_dom_tree): Only write nanoseconds if > 0. (kvp_frame_to_dom_tree): don't return an xmlNodePtr if the frame is null or contains no data. * src/engine/gnc-commodity-xml-v2.c (gnc_commodity_dom_tree_create): check to see if xcode is > 0 * src/engine/gnc-account-xml-v2.c (gnc_account_dom_tree_create): check for description and code strlen > 0 * src/engine/gnc-pricedb-xml-v1.c (pricedb_v2_end_handler): make this func work in the v2 manner with a callback in the global data. (gnc_pricedb_sixtp_parser_create): change to work in the v2 manner with an end handler that does the final link of the data into the book. (pricedb_after_child_handler): add upping the counter for prices loaded. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3772 57a11ea4-9604-0410-9ed3-97b8803252fd
2001-03-13 00:20:03 -06:00
xmlNodePtr gnc_pricedb_dom_tree_create(GNCPriceDB *db);
sixtp* gnc_pricedb_sixtp_parser_create(void);
#endif /* __GNC_XML_H__ */