[Evolution-hackers] Address book merging



Hi guys,


I am using EDS as my contact/calendar data server and I am implementing QtPim plugins for it. Until now everything is working fine. We are about to start implement a new feature on our applications that is contact Merging. Our first idea was implement all contact merging logic in the QtContact plugins, but after some discussion we figured out that is not flexible (Python, DBus, Go apps, will not have access to this logic); And this can be very expensive (running contact merge in every client).

Then I only see two solutions:
1- Implement a contact merge service, that will provide contacts for apps. The apps will access our server instead of EDS.
2 - Implement contact merge into EDS.

The problem with option 1 is:
* We will have a new server running on the device (more memory and cpu usage);
* The apps that already support EDS will need to be modified to access our server if they want to get the merged contact information;
* More code to fix and implement.

In my point of view the option two is perfect, BUT. EDS is very complex and I do no see a easy way to do that. 

* Since I am not familiar with EDS core code (I have been using the client code for a while). My first idea was create a  address book backend that aggregate all others backends contacts, and does the merge itself, applications can access this "meta" address-book to have the merged contacts.

The good points of this approach is that, this does not change anything on EDS core, and I can maintain the code by myself. 

 * But I found some problems trying to use eds client API inside of the backend implementation (I think this is not correct way to use it), the functions like (e_book_client_connect, e_book_client_get_view, e_bok_client_view_start) did not work as expected (they got stuck "timeout" or return errors).

Could you guys help me with that? 
Is this idea too crazy?
Do you have any other idea to have contact from different address-book merged in EDS? 
Is possible to use client API inside of the backend implementation?  (How?)
Which is the best solution to get access to others addressbook from my backend implemation?


Thanks
Renato Araujo Oliveira Filho


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