||[Sep. 4th, 2007|07:05 pm]
If a picture is worth a thousand words, does that mean that a movie is 1000 * FrameRate * Duration?|
While you're pondering that, take a gander at this.
It doesn't look like much, but theres a lot going on in the backend. I start by running guifications-daemon. Then I go on to launch guifications-gtk and open up the feeds window. Finally I start pidgin with a profile directory that loads purple-guifications by default.
What you see, is that the feed is automagically added to the gf-gtk feeds window. Now most of you will go, big deal, you're just using a D-Bus signal. And to that end, you're partially right.
In guifications3 communication is abstracted and everything must interact at a gobject level. What does this mean? The server and cients can't touch dbus directly.
So what you are really seeing is purple-guifications talking to gfd via a remote object (which just happens to be connected through D-Bus). The object in the gfd then emits a glib signal saying that a feed was added. Then there is a proxy object inside of gflib-dbus that is connected to the feed-added signal, and transmits it over D-Bus as a D-Bus signal. Then theres a proxy on the client side that listens for the D-Bus signal, and re-emits it as a glib signal.
Needless to say, this movie is worth a lot more than 1000 words, since it is, in fact, a major breakthrough for one of the outstanding issues I've been having with guifications3.