From: Piotr Zielinski <zielaj@us...> - 2005-07-22 19:53:21
Update of /cvsroot/gaim/web/htdocs/summerofcode/piotr/posts
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25596
--- NEW FILE: signals-again.txt ---
A couple of days ago the newest version of DBUS (0.35) came out. I
upgraded the DBUS library in my system from 0.34 to 0.35 and realized
that propagating gaim signal to DBUS stopped working. The code
which you have to put into every <code>*.c</code> file has more
meaning than I thought.
In version 0.35, the DBUS signal mechanism I relied on was changed, so
that I had to rewrite the gaim signal DBUS-propagation code using the
low-level DBUS GLib API. This approach should be more robust against
--- NEW FILE: dbus-api.txt ---
Gaim API on DBUS
I've written a Python scripts that scans through gaim header files and
produces C code that wraps the gaim API function so that they are
accessible through DBUS. In other words, you can use Gaim API from
any external application that supports DBUS. For example, look at
Exporting gaim API trough DBUS sometimes requires type conversions and
the C code required for this is generated by the aforementioned python
script. For example, enumerations must be converted to integers,
<code>char*<code> to non-null strings, pointers to gaim objects to
handles, lists to arrays, etc.
There are many security issues to think about here. First, we would
like to export only some functions, not all of them. I'd like to hear
from you which functions you think should be exported and which not.
Secondly, access to gaim data structures should be controlled. At
this time, only objects that have been explicitly registered can be
accessed from outside. By "accessed" I mean, they can be passed as
parameters to gaim function, not accessed directly. All handles
passed from DBUS to gaim are type-checked.
Interestingly, when I was testing the generation stript, I discovered
that two functions are dectared in <code>account.h</code> but not
void gaim_account_set_presence(GaimAccount *account, GaimPresence *presence);
Get latest updates about Open Source Projects, Conferences and News.