GSoC 2016 Week 1: CM for reSIProcate
Sorry for the late report of my first week. I was trying to do the a milestone of my agenda  that consumed much more time that I imagined.
The following tasks was proposed:
- support for initializing roster / buddy list
- support for adding contacts
- support for removing contacts
To maintain a list of contacts at first I considered to create another class just to holds the contacts names and appropriate methods to store this list in a local file (so the user could recover it at the time of login).
When I started to code I saw that was already a map at resiprocate/apps/telepathy/Connection.cxx that kept this contact info (mHandles and mIdentifiers) so I think it'll be better to use it instead of replicate the information. Besides that, Daniel told me that in the future I will have to treat this contact list in the server side (not in client side as I'm doing right now) so this implementation will be changed anyway.
To remove the contact I'm just deleting the contact from mHandles and mIdentifiers and saving this contacts to the local file again.
I know writing to file the entire list of contacts every time there is a change in the contact list (adding or removing) is not very efficient but, as I said before, this implementation is temporary until we treat contact list at server side.
The part that took me so long was to initializing and actually see a buddy list. I've tried to compare with telepathy-morse and telepathy-nonsense (which greatly helped me even tough I couldn't compile any of them for library dependence problems) when implementing but couldn't see a buddy list when I ran telepathy-resiprocate. At the end I found out that I had to set the contact list state interface to success so my client (empathy) could show the buddy list.