Class: DBus::ProxyObjectFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/dbus/proxy_object_factory.rb

Overview

D-Bus proxy object factory class

Class that generates and sets up a proxy object based on introspection data.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(xml, bus, dest, path, api: ApiOptions::CURRENT) ⇒ ProxyObjectFactory

Creates a new proxy object factory for the given introspection XML xml, bus, destination dest, and path.



17
18
19
20
21
22
23
# File 'lib/dbus/proxy_object_factory.rb', line 17

def initialize(xml, bus, dest, path, api: ApiOptions::CURRENT)
  @xml = xml
  @bus = bus
  @path = path
  @dest = dest
  @api = api
end

Class Method Details

.introspect_into(po, xml) ⇒ Object

Investigates the sub-nodes of the proxy object po based on the introspection XML data xml and sets them up recursively.



27
28
29
30
31
32
33
34
35
36
# File 'lib/dbus/proxy_object_factory.rb', line 27

def self.introspect_into(po, xml)
  intfs, po.subnodes = IntrospectXMLParser.new(xml).parse
  intfs.each do |i|
    poi = ProxyObjectInterface.new(po, i.name)
    i.methods.each_value { |m| poi.define(m) }
    i.signals.each_value { |s| poi.define(s) }
    po[i.name] = poi
  end
  po.introspected = true
end

Instance Method Details

#buildObject

Generates, sets up and returns the proxy object.



39
40
41
42
43
# File 'lib/dbus/proxy_object_factory.rb', line 39

def build
  po = ProxyObject.new(@bus, @dest, @path, api: @api)
  ProxyObjectFactory.introspect_into(po, @xml)
  po
end