class DBus::EmitsChangedSignal
Describes the behavior of PropertiesChanged signal, for a single property or for an entire interface.
The possible values are:
-
true: the signal is emitted with the value included.
-
:invalidates: the signal is emitted but the value is not included in the signal.
-
:const: the property never changes value during the lifetime of the object it belongs to, and hence the signal is never emitted for it (but clients can cache the value)
-
false: the signal won’t be emitted (clients should re-Get the property value)
The default is:
-
for an interface: true
-
for a property: what the parent interface specifies
@see DBus::Object.emits_changed_signal @see DBus::Object.dbus_attr_accessor @see dbus.freedesktop.org/doc/dbus-specification.html#introspection-format
Immutable once constructed.
Constants
- DEFAULT_ECS
Attributes
@return [true,false,:const,:invalidates]
Public Class Methods
@param value [true,false,:const,:invalidates,nil]
See class-level description above, {EmitsChangedSignal}.
@param interface [Interface,nil]
If the (property-level) *value* is unspecified (nil), this is the
containing {Interface} to get the value from.
# File lib/dbus/emits_changed_signal.rb 43 def initialize(value, interface: nil) 44 if value.nil? 45 raise ArgumentError, "Both arguments are nil" if interface.nil? 46 47 @value = interface.emits_changed_signal.value 48 else 49 expecting = [true, false, :const, :invalidates] 50 unless expecting.include?(value) 51 raise ArgumentError, "Expecting one of #{expecting.inspect}. Seen #{value.inspect}" 52 end 53 54 @value = value 55 end 56 57 freeze 58 end
Public Instance Methods
# File lib/dbus/emits_changed_signal.rb 72 def ==(other) 73 if other.is_a?(self.class) 74 other.value == @value 75 else 76 other == value 77 end 78 end
# File lib/dbus/emits_changed_signal.rb 68 def to_s 69 @value.to_s 70 end
Return introspection XML string representation @return [String]
# File lib/dbus/emits_changed_signal.rb 62 def to_xml 63 return "" if @value == true 64 65 " <annotation name=\"org.freedesktop.DBus.Property.EmitsChangedSignal\" value=\"#{@value}\"/>\n" 66 end