Class: VBox::EventSource

Inherits:
Base
  • Object
show all
Defined in:
lib/virtualbox/classes/event_source.rb

Instance Attribute Summary

Attributes inherited from Base

#ref

Instance Method Summary collapse

Methods inherited from Base

#_this, #delete!, #ensure_hash, #initialize, #vbox_class

Constructor Details

This class inherits a constructor from VBox::Base

Instance Method Details

#create_aggregator(args = {}) ⇒ Object

Methods



6
7
8
9
10
11
# File 'lib/virtualbox/classes/event_source.rb', line 6

def create_aggregator(args={})
  ensure_hash args
  args.referize! :subordinates
  event_source = VBox::WebService.send_request(:i_event_source_create_aggregator, _this.merge(args))
  VBox::EventSource.new(event_source)
end

#create_listenerObject



13
14
15
16
# File 'lib/virtualbox/classes/event_source.rb', line 13

def create_listener
  event_listener = VBox::WebService.send_request(:i_event_source_create_listener, _this)
  VBox::EventListener.new(event_listener)
end

#event_processed(args = {}) ⇒ Object



18
19
20
21
22
# File 'lib/virtualbox/classes/event_source.rb', line 18

def event_processed(args={})
  ensure_hash args
  args.referize! :listener, :event
  VBox::WebService.send_request(:i_event_source_event_processed, _this.merge(args))
end

#fire_event(args = {}) ⇒ Object



24
25
26
27
28
# File 'lib/virtualbox/classes/event_source.rb', line 24

def fire_event(args={})
  ensure_hash args
  args.referize! :event
  VBox::WebService.send_request(:i_event_source_fire_event, _this.merge(args))
end

#get_event(args = {}) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/virtualbox/classes/event_source.rb', line 30

def get_event(args={})
  ensure_hash args
  args.referize! :listener
  event_obj_ref = VBox::WebService.send_request(:i_event_source_get_event, _this.merge(args))
  if event_obj_ref.nil?
    nil
  else
    event = VBox::Event.new(event_obj_ref)
    event_subclass = event.type.split('On')[1] + 'Event'
    VBox.const_get(event_subclass).new(event_obj_ref)
  end
end

#register_listener(args = {}) ⇒ Object



43
44
45
46
47
# File 'lib/virtualbox/classes/event_source.rb', line 43

def register_listener(args={})
  ensure_hash args
  args.referize! :listener
  VBox::WebService.send_request(:i_event_source_register_listener, _this.merge(args))
end

#unregister_listener(args = {}) ⇒ Object



49
50
51
52
53
# File 'lib/virtualbox/classes/event_source.rb', line 49

def unregister_listener(args={})
  ensure_hash args
  args.referize! :listener
  VBox::WebService.send_request(:i_event_source_unregister_listener, _this.merge(args))
end