MediaManager, week 5

Hi everyone!

This is the report for my fifth week of work in my SoC project.
This week I managed to dedicate three days of almost full-time hacking
on the project, and I almost completed the DBus interface.

== Work done this week ==

I splitted the MMApplication and MMCategory classes into abstract
interfaces, implemented by MMSoApplication/Category and
MMDBusApplication/Category. This was needed, as the implementation of
the methods which get the categories and the hits are very different. To
pass the objects (i.e. the filters and the hit collection) over the bus,
I serialized their members into a XML tree. So I spent some time
familiarizing with the libxml2 reader/writer API and finally wrote
methods that transform my objects into strings to be sent over DBus.
I also had to refactor some code into the Manager itself to make it more
DBus friendly. In the end, the DBus interface that an app should expose
is very simple:
– GetApplicationInfo, which returns the desktop id and the supported
types
– GetCategories, which returns two string arrays; one for the names and
the other for icon names
– GetHits, which takes as arguments the category name and a filter, and
returns a hit collection.

I am quite happy with the work so far, and I think I will have finished
a first implementation of the “backend” (i.e. non-UI) part by the next
week, just like I originally planned in my proposal! :)

== Work for the next week ==

I don’t know if I will be able to do much hacking next week, as on the
next Monday (July 7th) I’ll be leaving for GUADEC, in Istanbul and I
have to prepare many things. Though, there’s some things that I want to
do:
– GErrorize the _unserialize () methods
– Write more tests for the DBus interface
– Re-read the code written so far and look for possible
optimizations/bugs
– (optional) Try to implement the first widgets.

So I’m looking forward to meet everyone of you in Istanbul, I hope we’ll
have a great time!