Class | DBus::ProxyObject |
In: |
lib/dbus/introspect.rb
|
Parent: | Object |
D-Bus proxy object class
Class representing a remote object in an external application. Typically, calling a method on an instance of a ProxyObject sends a message over the bus so that the method is executed remotely on the correctponding object.
bus | [R] | The bus the object is reachable via. |
default_iface | [RW] | The default interface of the object, as String. |
destination | [R] | The (remote) destination of the object. |
introspected | [RW] | Flag determining whether the object has been introspected. |
path | [R] | The path to the object. |
subnodes | [RW] | The names of direct subnodes of the object in the tree. |
Retrieves an interface of the proxy object (ProxyObjectInterface instance).
# File lib/dbus/introspect.rb, line 460 def [](intfname) @interfaces[intfname] end
Maps the given interface name intfname to the given interface _intf.
# File lib/dbus/introspect.rb, line 465 def []=(intfname, intf) @interfaces[intfname] = intf end
Returns whether the object has an interface with the given name.
# File lib/dbus/introspect.rb, line 479 def has_iface?(name) raise "Cannot call has_iface? if not introspected" if not @introspected @interfaces.member?(name) end
Returns the interfaces of the object.
# File lib/dbus/introspect.rb, line 455 def interfaces @interfaces.keys end
Introspects the remote object. Allows you to find and select interfaces on the object.
# File lib/dbus/introspect.rb, line 471 def introspect # Synchronous call here. xml = @bus.introspect_data(@destination, @path) ProxyObjectFactory.introspect_into(self, xml) xml end
Registers a handler, the code block, for a signal with the given name. It uses default_iface which must have been set.
# File lib/dbus/introspect.rb, line 486 def on_signal(name, &block) if @default_iface and has_iface?(@default_iface) @interfaces[@default_iface].on_signal(@bus, name, &block) else # TODO improve raise NoMethodError end end