class DBus::Interface
D-Bus interface class¶ ↑
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
Attributes
methods[R]
The methods that are part of the interface. Hash: Symbol => DBus::Method
name[R]
The name of the interface. String
signals[R]
The signals that are part of the interface. Hash: Symbol => Signal
Public Class Methods
new(name)
click to toggle source
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 = {} end
Public Instance Methods
define(m)
click to toggle source
Helper method for defining a method m.
# File lib/dbus/introspect.rb, line 60 def define(m) if m.is_a?(Method) @methods[m.name.to_sym] = m elsif m.is_a?(Signal) @signals[m.name.to_sym] = m end end
Also aliased as: <<
define_method(id, prototype)
click to toggle source
Defines a method with name id and a given prototype in the interface.
# File lib/dbus/introspect.rb, line 71 def define_method(id, prototype) m = Method.new(id) m.from_prototype(prototype) define(m) end
validate_name(name)
click to toggle source
Validates a service name.
# File lib/dbus/introspect.rb, line 49 def validate_name(name) raise InvalidIntrospectionData if name.bytesize > 255 raise InvalidIntrospectionData if name =~ /^\./ || name =~ /\.$/ raise InvalidIntrospectionData if name =~ /\.\./ raise InvalidIntrospectionData if !(name =~ /\./) name.split(".").each do |element| raise InvalidIntrospectionData if !(element =~ INTERFACE_ELEMENT_RE) end end