GC architecture for backends

Derek Atkins warlord at MIT.EDU
Wed Nov 1 10:12:14 EST 2006


The QOFBackend interface is documented in the Doxygen docs.
The rest of it, however, hasn't been well documented.

I do not believe that gnc-engine.c should load the module -- it should
get loaded elsewhere.  If that's where stuff is being loaded now then
I think that's a bug.

I dont think there's currently a plugin registry of URI types.  We
might want to fix that, maybe.

Also, we'll need to make changes to handle the fact that file://
should get redirected to sqlite:// -- but the code will need to
test the file first to see what kind of file it is, so that File -> Open
does the "right thing".   I.e., the fact that we're using SQLite
should get hidden from the user when we migrate to it.

-derek

Phil Longstaff <plongstaff at rogers.com> writes:

> I've started to look at what is needed to put a new backend into GC.  My
> first questions is if this is documented anywhere.  I've needed to
> update a few different files, and wonder if it couldn't be improved so
> that each backend only needs to be known about in one place.  For
> example, gnc_engine_init() in engine/gnc-engine.c needs to be modified
> to ensure the backend module is loaded and registered with qof.  Then,
> xaccResolveURLs() in engine/gnc-filepath-utils.c needs to be modified to
> know about any new URI types (mysql://, sqlite://).  Seems to me that
> after all of the backends are loaded, the engine should query all of the
> providers so it would know about the URI types.
>
> Phil

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