Class: DBus::Wrapper::ProcessWatch
- Inherits:
-
Object
- Object
- DBus::Wrapper::ProcessWatch
show all
- Defined in:
- lib/ruby-dbus-wrapper-process-watch/process_watch.rb
Defined Under Namespace
Classes: NameResolutionFatalError, NameResolutionRecoverableError
Constant Summary
collapse
- DBUS_ID_REGEXP =
/\A(:1\.[0-9]+)\z/.freeze
Instance Method Summary
collapse
Constructor Details
#initialize(bus, process_name_regexp = /.*/) ⇒ ProcessWatch
Returns a new instance of ProcessWatch.
9
10
11
12
13
14
15
16
17
|
# File 'lib/ruby-dbus-wrapper-process-watch/process_watch.rb', line 9
def initialize(bus, process_name_regexp = /.*/)
@bus = bus
@process_name_regexp = process_name_regexp
@known_id_to_name = {}
@known_name_to_id = {}
@pending = {}
@events = { :resolved => [], :registered => [], :unregistered => [] }
end
|
Instance Method Details
#on(event_name, &block) ⇒ Object
26
27
28
29
30
31
|
# File 'lib/ruby-dbus-wrapper-process-watch/process_watch.rb', line 26
def on(event_name, &block)
raise ArgumentError, "Invalid event name #{event_name}" unless @events.keys.include? event_name.to_sym
raise ArgumentError, "You must pass a block" unless block_given?
@events[event_name.to_sym] << block
end
|
#resolve_id_to_name(id) ⇒ Object
39
40
41
|
# File 'lib/ruby-dbus-wrapper-process-watch/process_watch.rb', line 39
def resolve_id_to_name(id)
@known_id_to_name[id]
end
|
#resolve_name_to_id(name) ⇒ Object
34
35
36
|
# File 'lib/ruby-dbus-wrapper-process-watch/process_watch.rb', line 34
def resolve_name_to_id(name)
@known_name_to_id[name]
end
|
#start! ⇒ Object
20
21
22
23
|
# File 'lib/ruby-dbus-wrapper-process-watch/process_watch.rb', line 20
def start!
@bus.monitor_signal("org.freedesktop.DBus", nil, "org.freedesktop.DBus", "NameOwnerChanged") { |message| on_name_owner_changed_signal(message) }
@bus.method_call("org.freedesktop.DBus", "/", "org.freedesktop.DBus", "ListNames") { |message| on_list_names_return(message) }
end
|