This class is the interface descriptor. In most cases, the Introspect() method call instantiates and configures this class for us.
It also is the local definition of interface exported by the program. At the client side, see ProxyObjectInterface
The methods that are part of the interface. Hash: Symbol => DBus::Method
The name of the interface. String
The signals that are part of the interface. Hash: Symbol => Signal
Creates a new interface with a given name.
# File lib/dbus/introspect.rb, line 41 def initialize(name) validate_name(name) @name = name @methods, @signals = Hash.new, Hash.new end
Helper method for defining a method m.
# File lib/dbus/introspect.rb, line 59 def define(m) if m.kind_of?(Method) @methods[m.name.to_sym] = m elsif m.kind_of?(Signal) @signals[m.name.to_sym] = m end end
Defines a method with name id and a given prototype in the interface.
# File lib/dbus/introspect.rb, line 70 def define_method(id, prototype) m = Method.new(id) m.from_prototype(prototype) define(m) end
Validates a service name.
# File lib/dbus/introspect.rb, line 48 def validate_name(name) raise InvalidIntrospectionData if name.bytesize > 255 raise InvalidIntrospectionData if name =~ /^\./ or name =~ /\.$/ raise InvalidIntrospectionData if name =~ /\.\./ raise InvalidIntrospectionData if not name =~ /\./ name.split(".").each do |element| raise InvalidIntrospectionData if not element =~ InterfaceElementRE end end