> 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 _______________________________________________ evolution-hackers mailing list evolution-hackers@gnome.org To change your list options or unsubscribe, visit ... https://mail.gnome.org/mailman/listinfo/evolution-hackers