CVS update: gnucash/src/backend/file

Derek Atkins warlord at MIT.EDU
Sun Oct 12 13:03:21 CDT 2003


linas at linas.org (Linas Vepstas) writes:

> fix compile break due to structure changes.

Ahh, ok.  The log message was not clear on this.

> --linas
> 
> p.s. I have a bunch of questions about bus objects, e.g. like 
> what the parent/child relationship is/means for bill term, tax table.
> Is this written up somewhere?   (or some more 'trivial' things, like
> what does 'invisible' or 'refount' mean?) I was hoping to catch you on
> irc ... 

Unfortunately I'm in San Diego on a business trip and haven't really
be able to get on IRC.

Quickly:

- a child is a 'frozen' instance of a parent.  For example, the tax
  percentage in a particular tax table may change over time, but you
  dont want that change to affect already-posted invoices...  So you
  make sure there is an immutable 'copy' (read: child) of the tax
  table when you post the invoice and repoint at the child.

- a parent can have many children, but it will only have a 'child'
  pointer if the parent has not been modified.  Think of this as a
  copy-on-write mechanism.  posted invoices will continue to use the
  _same_ child until the parent is modified, at which point a new
  child will be created.

- invisible means "dont show this in the list".  It's so you dont
  get all the children in the tax table list -- you only see parents.
  I suppose this flag could also be called "is-child" as I believe that
  only children can be invisible, and ALL children are invisible.

- refcount is a listing of how many objects are referencing it.
  Basically, it's letting you know how many customer, vendor, entries,
  etc are referencing e.g. a particular tax table object.  mostly this
  was done to make sure you cannot delete an in-use taxtable.

  children dont use refcounts, only parents do.

I dont think I'll get back onto IRC until tuesday.

-derek

PS: Feel free to copy this into some documentation somewhere.
-- 
       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-patches mailing list