XML file backend

Derek Atkins warlord at MIT.EDU
Tue Jun 10 09:59:30 EDT 2008

Phil Longstaff <plongstaff at rogers.com> writes:

> The xml file backend has 2 functions to handle a commodity reference.  The first, dom_tree_to_commodity_ref_no_engine(), gets the two pieces of the reference (space and id) and creates a new gnc_commodity from them.  The second, dom_tree_to_commodity_ref(), calls dom_tree_to_commodity_ref_no_engine() and then looks up the commodity in the engine.  This has the result of only leaving 1 gnc_commodity per commodity.

Right, you only WANT 1 gnc_commodity* object per commodity.  That's
exactly what you want.  Similarly you only want one Account* object
per account, one Transaction* object per transaction, etc.

> In the places where commodity refs are used, dom parsers for prices and transactions call dom_tree_to_commodity_ref() but the parser for accounts calls dom_tree_to_commodity_ref_no_engine().  Can anyone explain why?

Probably because Accounts are always loaded first so you'll always have
all your commodities before you load any transactions.


       Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
       Member, MIT Student Information Processing Board  (SIPB)
       URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
       warlord at MIT.EDU                        PGP key available

More information about the gnucash-devel mailing list