Python bindings

Julien PUYDT julien.puydt at laposte.net
Thu Dec 23 12:12:50 PST 2004


Le jeudi 23 décembre 2004 à 12:05 -0500, John (J5) Palmieri a écrit :

> I just checked and the python bindings don't seem to wrap the activation
> methods. 

They don't. That's precisely why I tried to call the ActivateService
method on /org/freedesktop/DBus (which is what is done anyway). The
problem is that that method takes two arguments:
* a string (the service to activate) ;
* a uint32 (the flag).
And that int is the problem, since I have no idea how to create an
object of that type!

>  There are two ways, you can set the auto activation flag on
> the message bus (dbus_message_set_auto_activation) and just call a
> method of the service

Not wrapped.

>  or you can call dbus_bus_activate_service and
> activate the service directly.

Not wrapped.

>   Both of those need to be wrapped.  If I can get to it over vacation I will. 

That would be nice: I only know python since two days -- I'm not sure I
can write wrappers already!

> > I tried to call the ActivateService
> > method on /org/freedesktop/DBus, but got an error message because I
> > should have provided a second argument of type uint32 (which I don't
> > know how to obtain) ;
> 
> Not sure how to do it through the dbus interface.  Check how
> dbus_bus_activate_service does it and you might be able to do activation
> from pure dbus calls without needing the python wrappers.

Pure dbus is possible... once you know how to get a 'uint32' (and when I
think this isn't even used!)...


> > 2) how do I send a message without waiting for a reply?
> 
> You would need to use the lowlevel dbus bindings (import dbus_bindings)
> and call send_with_reply or just send on a dbus_bindings.Connection
> object (note that send_with_reply_and_block is the function that is used
> to send a message and wait for a reply.  send_with_reply returns a
> PendingCall object which can be used to get a reply async.  Check the
> dbus_bindings.pyx.in file for more info assuming you are willing to wade
> through Pyrex code which is a mixture of Python and C).

I already had a look but found it hard to swallow. Notice that I didn't
ask how not to block while waiting a reply. I know there won't be any
answer, so I don't even want a PendingCall or whatever. Send the message
and forget about it.

Snark on #gnomemeeting



More information about the dbus mailing list