DBUS service using glib: question

Xavier Claessens xclaesse at gmail.com
Sat Jul 15 05:29:50 PDT 2006


On sam, 2006-07-15 at 10:35 +0100, Ross Burton wrote:
> On Sat, 2006-07-15 at 10:44 +0200, Xavier Claessens wrote:
> > On ven, 2006-07-14 at 11:07 +0100, Ross Burton wrote: 
> > > On Fri, 2006-07-14 at 11:13 +0200, Xavier Claessens wrote:
> > > > Thanks ! I can now know when a client connect/disconnect and I keep a
> > > > hash table with information about all clients connected. Then only
> > > > problem remaining: When a method is called on my object, how can I know
> > > > which client called it ?
> > > 
> > > If you are using the low-level methods the DBusMessage object has a
> > > sender field.  If you are using the GLib bindings then you need to
> > > annotate the methods as being Async, then you get a context object that
> > > contains the sender.
> > 
> > I'm using GLib binding. Have you more documentation about this context
> > object ? Or have you example of program that use it ?
> 
> See under "org.freedestkop.DBus.GLib.Async" at
> http://dbus.freedesktop.org/doc/dbus-tutorial.html#glib-annotations.
> 
> If you include dbus-glib-lowlevel.h you can use this function:
> 
> gchar* dbus_g_method_get_sender    (DBusGMethodInvocation *context);
> 
> Ross

Thank you very much, it works :D

My last question, if I return a string (char*) with 

char *str = g_strdup(...);
...
dbus_g_method_return(context, str);

will str be freed ? Or should I add g_free(str); after ?

Thanks,
Xavier Claessens.



More information about the dbus mailing list