QOF iteration and callbacks

Derek Atkins warlord at MIT.EDU
Fri Jun 18 16:49:37 EDT 2004


Neil Williams <linux at codehelp.co.uk> writes:

> "one can then ask, at run time, what parameters are associated with a given 
> type, even if those parameters were not known at compile time."
> src/doc/html/group__Class.html

Yes, at this point there are no APIs to implement this.  

> I can see how to query individual parameters from qofclass when you know the 
> name and I've got access to the getter and setter func's - what I'm looking 
> at now is a generic way to read back everything originally set by 
> qof_class_register - to build a complete list of all registered objects, 
> types and data. This will be the core of the rules and it has to cover 
> everything possible in a GNCBook - and as agreed already, without requiring 
> any objects to be re-defined in code, it's all run-time stuff. I can see how 
> qof_class_register reads the params into a GHashTable - how do I read the 
> entire hashtable back?

Right now none exists.

> I've looked at:
> GSList * qof_query_build_param_list (char const *param, ...);
> haven't got it right yet though. It looks more like something I'd need later 
> to look for a match in the second book prior to comparison.

Nah, this is a helper function to build a parameter list.  Look at the
return value, a GSList..  That should give a clue as to what this
function is doing (building a list).

> I've got access to the GUID's, the QofIdType's and almost everything else. I'm 
> hoping I don't have to copy a whole batch of these sections from the source 
> tree:
>
> /** @name Account parameter names */
> /** @{ */
> #define ACCOUNT_KVP		"kvp"
> #define ACCOUNT_NAME_		"name"
> #define ACCOUNT_CODE_		"code"
> #define ACCOUNT_DESCRIPTION_	"desc"
> #define ACCOUNT_NOTES_		"notes"
> #define ACCOUNT_BALANCE_	"balance"
> #define ACCOUNT_CLEARED_	"cleared"
> #define ACCOUNT_RECONCILED_	"reconciled"
> #define ACCOUNT_PRESENT_	"present"
> #define ACCOUNT_FUTURE_MINIMUM_ "future-minimum"
> #define ACCOUNT_TAX_RELATED	"tax-related-p"
> /** @} */
>
> when they are all already loaded:
> gboolean xaccAccountRegister (void)
> {
>   static QofParam params[] = {}
> }

Right now this is what you need to do.

-derek

-- 
       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