Class: VBox::EventSource

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

Instance Attribute Summary collapse

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 Attribute Details

#refObject (readonly)

Returns the value of attribute ref.



4
5
6
# File 'lib/virtualbox/classes/event_source.rb', line 4

def ref
  @ref
end

Instance Method Details

#create_aggregator(args = {}) ⇒ Object

Methods



8
9
10
11
12
13
14
15
16
17
# File 'lib/virtualbox/classes/event_source.rb', line 8

def create_aggregator(args={})
  ensure_hash(args)
  if args.has_key?(:subordinates)
    args[:subordinates].map! do |subordinate|
      subordinate.respond_to?(:ref) ? subordinate.ref : subordinate
    end
  end
  event_source = VBox::WebService.send_request(:i_event_source_create_aggregator, _this.merge(args))
  VBox::EventSource.new(event_source)
end

#create_listenerObject



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

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



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

def event_processed(args={})
  ensure_hash(args)
  args[:listener] = args[:listener].ref if args.has_key?(:listener) & args[:listener].respond_to?(:ref)
  args[:event] = args[:event].ref if args.has_key?(:event) & args[:event].respond_to?(:ref)
  VBox::WebService.send_request(:i_event_source_event_processed, _this.merge(args))
end

#fire_event(args = {}) ⇒ Object



31
32
33
34
35
# File 'lib/virtualbox/classes/event_source.rb', line 31

def fire_event(args={})
  ensure_hash(args)
  args[:event] = args[:event].ref if args.has_key?(:event) & args[:event].respond_to?(:ref)
  VBox::WebService.send_request(:i_event_source_fire_event, _this.merge(args))
end

#get_event(args = {}) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/virtualbox/classes/event_source.rb', line 37

def get_event(args={})
  ensure_hash(args)
  args[:listener] = args[:listener].ref if args.has_key?(:listener) & args[:listener].respond_to?(:ref)
  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



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

def register_listener(args={})
  ensure_hash(args)
  args[:listener] = args[:listener].ref if args.has_key?(:listener) & args[:listener].respond_to?(:ref)
  VBox::WebService.send_request(:i_event_source_register_listener, _this.merge(args))
end

#unregister_listener(args = {}) ⇒ Object



56
57
58
59
60
# File 'lib/virtualbox/classes/event_source.rb', line 56

def unregister_listener(args={})
  ensure_hash(args)
  args[:listener] = args[:listener].ref if args.has_key?(:listener) & args[:listener].respond_to?(:ref)
  VBox::WebService.send_request(:i_event_source_unregister_listener, _this.merge(args))
end