Re: [Evolution-hackers] Contacts database modifications history



The local address book uses EBookSqlite, thus what about making it an
EExtensible? That way, with some EBookSqlite (internal and external) API
changes, you would be able to create a new module, which will be loaded for
each EBookSqlite instance and which will be able to step in during
e_book_sqlite_add_contact/s, e_book_sqlite_remove_contact/s, possibly
updating an internal table with a list of changes as needed, within the same
transaction as actual contact's update? With a good API changes you might be
able to even get the contact before and after the change, so you can create
your diff. You definitely do not want to do the backlog for each EBookSqlite,
because it's supposed to be used as the current local contacts cache (to be
replaced with an OfflineCache in the future for the remote backends), thus some
checking whether the backlog should be created, based on the actual book
being this instance used with [1], is necessary.
Idea with additional module make perfect sense.
I have one additional question about updating internal table by this new module, should we add some new 
external API for EBookSqlite to create/retrieve/modify  backlog entries or the module can operate directly on 
the database using  instance of sqlite3 struct from EBookSqlite ?


[1] Either check based on the actual folder being used for the EBookSqlite, or
pass also an ESource to the e_book_sqlite_new functions and create a new
ESourceExtension, where you would be able to turn on backlogging selectively,
without any guessing. The ESourceExtension can be done in the same module as
the backlog creator.
I think that ESourceExtension will be better idea, as we could use it also for defining fields of interest.

Bye,
Mateusz

 

Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen, Deutschland
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas Lusk
Registergericht: Muenchen HRB 47456
Ust.-IdNr./VAT Registration No.: DE129385895
Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]