ruby-dbus
ruby-dbus copied to clipboard
Exporting object on unnamed service
I'm working with the BlueZ Bluetooth API which, for some operations, requires a callback object that is exported by the client connection. If I understand correctly, the only way to export an object in ruby-dbus is through a named service, which can only be retrieved from DBus::Connection#request_service
. Unfortunately, since I'm working with an unprivileged connection to the system bus, my process does not have permission to request_service
.
I noticed that SystemBus has a usable Service in @service
, and if I call DBus::SystemBus.instance.instance_variable_get(:@service).export(my_object)
my object is exported and receives method invocations as expected. However, I'm a little bit :grimacing: about relying on instance variables like that.
Is there a recommended way of doing this?
(For reference, line 152 of this file contains the Python equivalent of the code I need.)
I'm having the same issue.
@zobar Interesting-- ran into same question when translating some BlueZ python DBus code into Ruby for a BLE peripheral application. I have control of the system (embedded Linux install-- I can create the DBus service permissions to create a named service), so it's not a show-stopper. But non-named service export would be nice to have in a clean way.
Fixed in #135, released 0.23.0.beta1