virtualbox-ws 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/Gemfile +2 -1
  4. data/Gemfile.lock +2 -0
  5. data/LICENSE.md +5 -0
  6. data/README.md +57 -22
  7. data/lib/core_ext/string.rb +5 -0
  8. data/lib/virtualbox-ws.rb +2 -6
  9. data/lib/virtualbox/base.rb +31 -0
  10. data/lib/virtualbox/classes/additions_facility.rb +28 -0
  11. data/lib/virtualbox/classes/appliance.rb +51 -0
  12. data/lib/virtualbox/classes/audio_adapter.rb +33 -0
  13. data/lib/virtualbox/classes/bandwidth_control.rb +36 -0
  14. data/lib/virtualbox/classes/bandwidth_group.rb +29 -0
  15. data/lib/virtualbox/classes/bios_settings.rb +81 -0
  16. data/lib/virtualbox/classes/console.rb +201 -0
  17. data/lib/virtualbox/classes/dhcp_server.rb +52 -0
  18. data/lib/virtualbox/classes/directory.rb +27 -0
  19. data/lib/virtualbox/classes/display.rb +47 -0
  20. data/lib/virtualbox/classes/event.rb +32 -0
  21. data/lib/virtualbox/classes/event_listener.rb +14 -0
  22. data/lib/virtualbox/classes/event_source.rb +62 -0
  23. data/lib/virtualbox/classes/events/additions_state_changed_event.rb +7 -0
  24. data/lib/virtualbox/classes/events/bandwidth_group_changed_event.rb +13 -0
  25. data/lib/virtualbox/classes/events/can_show_window_event.rb +7 -0
  26. data/lib/virtualbox/classes/events/clipboard_mode_changed_event.rb +12 -0
  27. data/lib/virtualbox/classes/events/cpu_changed_event.rb +16 -0
  28. data/lib/virtualbox/classes/events/cpu_execution_cap_changed_event.rb +12 -0
  29. data/lib/virtualbox/classes/events/drag_and_drop_mode_changed_event.rb +12 -0
  30. data/lib/virtualbox/classes/events/event_source_changed_event.rb +17 -0
  31. data/lib/virtualbox/classes/events/extra_data_can_change_event.rb +20 -0
  32. data/lib/virtualbox/classes/events/extra_data_changed_event.rb +20 -0
  33. data/lib/virtualbox/classes/events/guest_keyboard_event.rb +12 -0
  34. data/lib/virtualbox/classes/events/guest_monitor_changed_event.rb +32 -0
  35. data/lib/virtualbox/classes/events/guest_mouse_event.rb +32 -0
  36. data/lib/virtualbox/classes/events/guest_property_changed_event.rb +20 -0
  37. data/lib/virtualbox/classes/events/host_pci_device_plug_event.rb +24 -0
  38. data/lib/virtualbox/classes/events/keyboard_leds_changed_event.rb +20 -0
  39. data/lib/virtualbox/classes/events/machine_data_changed_event.rb +12 -0
  40. data/lib/virtualbox/classes/events/machine_event.rb +12 -0
  41. data/lib/virtualbox/classes/events/machine_registered_event.rb +12 -0
  42. data/lib/virtualbox/classes/events/machine_state_changed_event.rb +12 -0
  43. data/lib/virtualbox/classes/events/medium_changed_event.rb +13 -0
  44. data/lib/virtualbox/classes/events/medium_registered_event.rb +20 -0
  45. data/lib/virtualbox/classes/events/mouse_capability_changed_event.rb +20 -0
  46. data/lib/virtualbox/classes/events/mouse_pointer_shape_changed_event.rb +36 -0
  47. data/lib/virtualbox/classes/events/nat_redirect_event.rb +40 -0
  48. data/lib/virtualbox/classes/events/network_adapter_changed_event.rb +13 -0
  49. data/lib/virtualbox/classes/events/parallel_port_changed_event.rb +13 -0
  50. data/lib/virtualbox/classes/events/reusable_event.rb +18 -0
  51. data/lib/virtualbox/classes/events/runtime_error_event.rb +20 -0
  52. data/lib/virtualbox/classes/events/serial_port_changed_event.rb +13 -0
  53. data/lib/virtualbox/classes/events/session_state_changed_event.rb +12 -0
  54. data/lib/virtualbox/classes/events/shared_folder_changed_event.rb +12 -0
  55. data/lib/virtualbox/classes/events/show_window_event.rb +12 -0
  56. data/lib/virtualbox/classes/events/snapshot_changed_event.rb +7 -0
  57. data/lib/virtualbox/classes/events/snapshot_deleted_event.rb +7 -0
  58. data/lib/virtualbox/classes/events/snapshot_event.rb +12 -0
  59. data/lib/virtualbox/classes/events/snapshot_taken_event.rb +7 -0
  60. data/lib/virtualbox/classes/events/state_changed_event.rb +12 -0
  61. data/lib/virtualbox/classes/events/storage_controller_changed_event.rb +7 -0
  62. data/lib/virtualbox/classes/events/storage_device_changed_event.rb +16 -0
  63. data/lib/virtualbox/classes/events/usb_controller_changed_event.rb +7 -0
  64. data/lib/virtualbox/classes/events/usb_device_state_changed_event.rb +17 -0
  65. data/lib/virtualbox/classes/events/v_box_svc_availability_chaged_event.rb +12 -0
  66. data/lib/virtualbox/classes/events/veto_event.rb +21 -0
  67. data/lib/virtualbox/classes/events/vrde_server_changed_event.rb +7 -0
  68. data/lib/virtualbox/classes/events/vrde_server_info_changed_event.rb +7 -0
  69. data/lib/virtualbox/classes/file.rb +73 -0
  70. data/lib/virtualbox/classes/fs_obj_info.rb +84 -0
  71. data/lib/virtualbox/classes/guest.rb +134 -0
  72. data/lib/virtualbox/classes/guest_directory.rb +7 -0
  73. data/lib/virtualbox/classes/guest_file.rb +7 -0
  74. data/lib/virtualbox/classes/guest_fs_obj_info.rb +7 -0
  75. data/lib/virtualbox/classes/guest_process.rb +7 -0
  76. data/lib/virtualbox/classes/guest_session.rb +232 -0
  77. data/lib/virtualbox/classes/host.rb +172 -0
  78. data/lib/virtualbox/classes/host_network_interface.rb +78 -0
  79. data/lib/virtualbox/classes/host_usb_device.rb +12 -0
  80. data/lib/virtualbox/classes/host_usb_device_filter.rb +16 -0
  81. data/lib/virtualbox/classes/keyboard.rb +29 -0
  82. data/lib/virtualbox/classes/machine.rb +922 -0
  83. data/lib/virtualbox/classes/managed_object_ref.rb +15 -0
  84. data/lib/virtualbox/classes/medium.rb +224 -0
  85. data/lib/virtualbox/classes/medium_format.rb +30 -0
  86. data/lib/virtualbox/classes/mouse.rb +37 -0
  87. data/lib/virtualbox/classes/nat_engine.rb +107 -0
  88. data/lib/virtualbox/classes/network_adapter.rb +171 -0
  89. data/lib/virtualbox/classes/parallel_port.rb +44 -0
  90. data/lib/virtualbox/classes/performance_collector.rb +51 -0
  91. data/lib/virtualbox/classes/performance_metric.rb +40 -0
  92. data/lib/virtualbox/classes/process.rb +67 -0
  93. data/lib/virtualbox/classes/progress.rb +111 -0
  94. data/lib/virtualbox/classes/serial_port.rb +60 -0
  95. data/lib/virtualbox/classes/session.rb +32 -0
  96. data/lib/virtualbox/classes/shared_folder.rb +32 -0
  97. data/lib/virtualbox/classes/snapshot.rb +44 -0
  98. data/lib/virtualbox/classes/storage_controller.rb +60 -0
  99. data/lib/virtualbox/classes/system_properties.rb +209 -0
  100. data/lib/virtualbox/classes/usb_controller.rb +58 -0
  101. data/lib/virtualbox/classes/usb_device.rb +56 -0
  102. data/lib/virtualbox/classes/usb_device_filter.rb +96 -0
  103. data/lib/virtualbox/classes/vfs_explorer.rb +51 -0
  104. data/lib/virtualbox/classes/virtual_box.rb +242 -0
  105. data/lib/virtualbox/classes/virtual_box_error_info.rb +29 -0
  106. data/lib/virtualbox/classes/virtual_system_description.rb +38 -0
  107. data/lib/virtualbox/classes/vrde_server.rb +80 -0
  108. data/lib/virtualbox/classes/vrde_server_info.rb +68 -0
  109. data/lib/virtualbox/classes/websession_manager.rb +33 -0
  110. data/lib/virtualbox/connection.rb +56 -31
  111. data/virtualbox-ws.gemspec +5 -4
  112. metadata +122 -20
  113. data/lib/virtualbox/classes/i_bios_settings.rb +0 -7
  114. data/lib/virtualbox/classes/i_console.rb +0 -16
  115. data/lib/virtualbox/classes/i_host.rb +0 -15
  116. data/lib/virtualbox/classes/i_host_network_interface.rb +0 -9
  117. data/lib/virtualbox/classes/i_machine.rb +0 -40
  118. data/lib/virtualbox/classes/i_managed_object_ref.rb +0 -6
  119. data/lib/virtualbox/classes/i_medium.rb +0 -13
  120. data/lib/virtualbox/classes/i_medium_format.rb +0 -6
  121. data/lib/virtualbox/classes/i_network_adapter.rb +0 -12
  122. data/lib/virtualbox/classes/i_session.rb +0 -6
  123. data/lib/virtualbox/classes/i_system_properties.rb +0 -18
  124. data/lib/virtualbox/classes/i_virtualbox.rb +0 -17
  125. data/lib/virtualbox/classes/i_web_session_manager.rb +0 -21
  126. data/lib/virtualbox/core_ext/string.rb +0 -9
  127. data/lib/virtualbox/enumerations.rb +0 -6
  128. data/lib/virtualbox/i_base.rb +0 -51
@@ -0,0 +1,201 @@
1
+ module VBox
2
+ class Console < Base
3
+
4
+ attr_reader :ref
5
+
6
+ # Attributes
7
+
8
+ def machine
9
+ machine = VBox::WebService.send_request(:i_console_get_machine, _this)
10
+ VBox::Machine.new(machine)
11
+ end
12
+
13
+ def state
14
+ VBox::WebService.send_request(:i_console_get_machine_state, _this)
15
+ end
16
+
17
+ def guest
18
+ guest = VBox::WebService.send_request(:i_console_get_guest, _this)
19
+ VBox::Guest.new(guest)
20
+ end
21
+
22
+ def keyboard
23
+ guest = VBox::WebService.send_request(:i_console_get_keyboard, _this)
24
+ VBox::Keyboard.new(guest)
25
+ end
26
+
27
+ def mouse
28
+ guest = VBox::WebService.send_request(:i_console_get_mouse, _this)
29
+ VBox::Mouse.new(guest)
30
+ end
31
+
32
+ def remote_usb_devices
33
+ remote_usb_devices = VBox::WebService.send_request(:i_console_get_remote_usb_devices, _this)
34
+ remote_usb_devices.map do |remote_usb_device|
35
+ VBox::HostUSBDevice.new(remote_usb_device)
36
+ end
37
+ end
38
+
39
+ def shared_folders
40
+ shared_folders = VBox::WebService.send_request(:i_console_get_shared_folders, _this)
41
+ shared_folders.map do |shared_folder|
42
+ VBox::SharedFolder.new(shared_folder)
43
+ end
44
+ end
45
+
46
+ def vrde_server_info
47
+ vrde_server_info = VBox::WebService.send_request(:i_console_get_vrde_server_info, _this)
48
+ VBox::VRDEServerInfo.new(vrde_server_info)
49
+ end
50
+
51
+ def event_source
52
+ event_source = VBox::WebService.send_request(:i_console_get_event_source, _this)
53
+ VBox::EventSource.new(event_source)
54
+ end
55
+
56
+ def attached_pci_devices
57
+ VBox::WebService.send_request(:i_console_get_attached_pci_devices, _this)
58
+ end
59
+
60
+ def use_host_clipboard
61
+ VBox::WebService.send_request(:i_console_get_use_host_clipboard, _this)
62
+ end
63
+
64
+ def use_host_clipboard=(use_host_clipboard)
65
+ VBox::WebService.send_request(:i_console_set_use_host_clipboard,
66
+ _this.merge(:use_host_clipboard => use_host_clipboard))
67
+ end
68
+
69
+ # Methods
70
+
71
+ def adopt_saved_state(args={})
72
+ ensure_hash(args)
73
+ VBox::WebService.send_request(:i_console_adopt_saved_state, _this.merge(args))
74
+ end
75
+
76
+ def attach_usb_device(args={})
77
+ ensure_hash(args)
78
+ VBox::WebService.send_request(:i_console_attach_usb_device, _this.merge(args))
79
+ end
80
+
81
+ def create_shared_folder(args={})
82
+ ensure_hash(args)
83
+ VBox::WebService.send_request(:i_console_create_shared_folder, _this.merge(args))
84
+ end
85
+
86
+ def delete_snapshot(args={})
87
+ ensure_hash(args)
88
+ progress = VBox::WebService.send_request(:i_console_delete_snapshot, _this.merge(args))
89
+ VBox::Progress.new(progress)
90
+ end
91
+
92
+ def delete_snapshot_and_all_children(args={})
93
+ ensure_hash(args)
94
+ progress = VBox::WebService.send_request(:i_console_delete_snapshot_and_all_children, _this.merge(args))
95
+ VBox::Progress.new(progress)
96
+ end
97
+
98
+ def delete_snapshot_range(args={})
99
+ ensure_hash(args)
100
+ progress = VBox::WebService.send_request(:i_console_delete_snapshot_range, _this.merge(args))
101
+ VBox::Progress.new(progress)
102
+ end
103
+
104
+ def detach_usb_device(args={})
105
+ ensure_hash(args)
106
+ usb_device = VBox::WebService.send_request(:i_console_detach_usb_device, _this.merge(args))
107
+ VBox::USBDevice.new(usb_device)
108
+ end
109
+
110
+ def discard_saved_state(args={})
111
+ ensure_hash(args)
112
+ VBox::WebService.send_request(:i_console_discard_saved_state, _this.merge(args))
113
+ end
114
+
115
+ def find_usb_device_by_address(args={})
116
+ ensure_hash(args)
117
+ usb_device = VBox::WebService.send_request(:i_console_find_usb_device_by_address, _this.merge(args))
118
+ VBox::USBDevice.new(usb_device)
119
+ end
120
+
121
+ def find_usb_device_by_id(args={})
122
+ ensure_hash(args)
123
+ usb_device = VBox::WebService.send_request(:i_console_find_usb_device_by_id, _this.merge(args))
124
+ VBox::USBDevice.new(usb_device)
125
+ end
126
+
127
+ def get_device_activity(args={})
128
+ ensure_hash(args)
129
+ VBox::WebService.send_request(:i_console_get_device_activity, _this.merge(args))
130
+ end
131
+
132
+ def get_guest_entered_acpi_mode
133
+ VBox::WebService.send_request(:i_console_get_guest_entered_acpi_mode, _this)
134
+ end
135
+
136
+ def get_power_button_handled
137
+ VBox::WebService.send_request(:i_console_get_power_button_handled, _this)
138
+ end
139
+
140
+ def pause
141
+ VBox::WebService.send_request(:i_console_pause, _this)
142
+ end
143
+
144
+ def power_button
145
+ VBox::WebService.send_request(:i_console_power_button, _this)
146
+ end
147
+
148
+ def power_down
149
+ progress = VBox::WebService.send_request(:i_console_power_down, _this)
150
+ VBox::Progress.new(progress)
151
+ end
152
+
153
+ def power_up
154
+ progress = VBox::WebService.send_request(:i_console_power_up, _this)
155
+ VBox::Progress.new(progress)
156
+ end
157
+
158
+ def power_up_paused
159
+ progress = VBox::WebService.send_request(:i_console_power_up_paused, _this)
160
+ VBox::Progress.new(progress)
161
+ end
162
+
163
+ def remove_shared_folder(args={})
164
+ ensure_hash(args)
165
+ VBox::WebService.send_request(:i_console_remove_shared_folder, _this.merge(args))
166
+ end
167
+
168
+ def reset
169
+ VBox::WebService.send_request(:i_console_reset, _this)
170
+ end
171
+
172
+ def restore_snapshot(args={})
173
+ ensure_hash(args)
174
+ progress = VBox::WebService.send_request(:i_console_restore_snapshot, _this.merge(args))
175
+ VBox::Progress.new(progress)
176
+ end
177
+
178
+ def resume
179
+ VBox::WebService.send_request(:i_console_resume, _this)
180
+ end
181
+
182
+ def save_state
183
+ progress = VBox::WebService.send_request(:i_console_save_state, _this)
184
+ VBox::Progress.new(progress)
185
+ end
186
+
187
+ def sleep_button
188
+ VBox::WebService.send_request(:i_console_sleep_button, _this)
189
+ end
190
+
191
+ def take_snapshot
192
+ progress = VBox::WebService.send_request(:i_console_take_snapshot, _this)
193
+ VBox::Progress.new(progress)
194
+ end
195
+
196
+ def teleport(args={})
197
+ progress = VBox::WebService.send_request(:i_console_teleport, _this.merge(args))
198
+ VBox::Progress.new(progress)
199
+ end
200
+ end
201
+ end
@@ -0,0 +1,52 @@
1
+ module VBox
2
+ class DHCPServer < Base
3
+
4
+ attr_reader :ref
5
+
6
+ # Attributes
7
+
8
+ def enabled
9
+ VBox::WebService.send_request(:i_dhcp_server_get_enabled, _this)
10
+ end
11
+
12
+ def enabled=(enabled)
13
+ VBox::WebService.send_request(:i_dhcp_server_set_enabled, _this.merge(:enabled => enabled))
14
+ end
15
+
16
+ def ip_address
17
+ VBox::WebService.send_request(:i_dhcp_server_get_ip_address, _this)
18
+ end
19
+
20
+ def network_mask
21
+ VBox::WebService.send_request(:i_dhcp_server_get_network_mask, _this)
22
+ end
23
+
24
+ def network_name
25
+ VBox::WebService.send_request(:i_dhcp_server_get_network_name, _this)
26
+ end
27
+
28
+ def lower_ip
29
+ VBox::WebService.send_request(:i_dhcp_server_get_lower_ip, _this)
30
+ end
31
+
32
+ def upper_ip
33
+ VBox::WebService.send_request(:i_dhcp_server_get_upper_ip, _this)
34
+ end
35
+
36
+ # Methods
37
+
38
+ def set_configuration(args={})
39
+ ensure_hash(args)
40
+ VBox::WebService.send_request(:i_dhcp_server_set_configuration, _this.merge(args))
41
+ end
42
+
43
+ def start(args={})
44
+ ensure_hash(args)
45
+ VBox::WebService.send_request(:i_dhcp_server_start, _this.merge(args))
46
+ end
47
+
48
+ def stop
49
+ VBox::WebService.send_request(:i_dhcp_server_stop, _this)
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,27 @@
1
+ module VBox
2
+ class Directory < Base
3
+
4
+ attr_reader :ref
5
+
6
+ # Attributes
7
+
8
+ def directory_name
9
+ VBox::WebService.send_request(:i_directory_get_directory_name, _this)
10
+ end
11
+
12
+ def filter
13
+ VBox::WebService.send_request(:i_directory_get_filter, _this)
14
+ end
15
+
16
+ # Methods
17
+
18
+ def close
19
+ VBox::WebService.send_request(:i_directory_close, _this)
20
+ end
21
+
22
+ def read
23
+ entry = VBox::WebService.send_request(:i_directory_read, _this)
24
+ VBox::FsObjInfo.new(entry)
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,47 @@
1
+ module VBox
2
+ class Display < Base
3
+
4
+ attr_reader :ref
5
+
6
+ # Methods
7
+
8
+ def get_screen_resolution(args={})
9
+ ensure_hash(args)
10
+ VBox::WebService.send_request(:i_display_get_screen_resolution, _this.merge(args))
11
+ end
12
+
13
+ def invalidate_and_update
14
+ VBox::WebService.send_request(:i_display_invalidate_and_update, _this)
15
+ end
16
+
17
+ def resize_completed(args={})
18
+ ensure_hash(args)
19
+ VBox::WebService.send_request(:i_display_resize_completed, _this.merge(args))
20
+ end
21
+
22
+ def set_seamless_mode(args={})
23
+ ensure_hash(args)
24
+ VBox::WebService.send_request(:i_display_set_seamless_mode, _this.merge(args))
25
+ end
26
+
27
+ def set_video_mode_hint(args={})
28
+ ensure_hash(args)
29
+ VBox::WebService.send_request(:i_display_set_video_mode_hint, _this.merge(args))
30
+ end
31
+
32
+ def take_screen_shot_png_to_array(args={})
33
+ ensure_hash(args)
34
+ VBox::WebService.send_request(:i_display_take_screen_shot_png_to_array, _this.merge(args))
35
+ end
36
+
37
+ def take_screen_shot_to_array(args={})
38
+ ensure_hash(args)
39
+ VBox::WebService.send_request(:i_display_take_screen_shot_to_array, _this.merge(args))
40
+ end
41
+
42
+ def viewport_changed(args={})
43
+ ensure_hash(args)
44
+ VBox::WebService.send_request(:i_display_viewport_changed, _this.merge(args))
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,32 @@
1
+ module VBox
2
+ class Event < Base
3
+
4
+ attr_reader :ref
5
+
6
+ # Attributes
7
+
8
+ def type
9
+ VBox::WebService.send_request(:i_event_get_type, _this)
10
+ end
11
+
12
+ def source
13
+ source = VBox::WebService.send_request(:i_event_get_source, _this)
14
+ VBox::EventSource.new(source)
15
+ end
16
+
17
+ def waitable
18
+ VBox::WebService.send_request(:i_event_get_waitable, _this)
19
+ end
20
+
21
+ # Methods
22
+
23
+ def set_processed
24
+ VBox::WebService.send_request(:i_event_set_processed, _this)
25
+ end
26
+
27
+ def wait_processed(args={})
28
+ ensure_hash(args)
29
+ VBox::WebService.send_request(:i_event_set_processed, _this.merge(args))
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,14 @@
1
+ module VBox
2
+ class EventListener < Base
3
+
4
+ attr_reader :ref
5
+
6
+ # Methods
7
+
8
+ def handle_event(args={})
9
+ ensure_hash(args)
10
+ args[:event] = args[:event].ref if args.has_key?(:event) & args[:event].respond_to?(:ref)
11
+ VBox::WebService.send_request(:i_event_listener_handle_event, _this.merge(args))
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,62 @@
1
+ module VBox
2
+ class EventSource < Base
3
+
4
+ attr_reader :ref
5
+
6
+ # Methods
7
+
8
+ def create_aggregator(args={})
9
+ ensure_hash(args)
10
+ if args.has_key?(:subordinates)
11
+ args[:subordinates].map! do |subordinate|
12
+ subordinate.respond_to?(:ref) ? subordinate.ref : subordinate
13
+ end
14
+ end
15
+ event_source = VBox::WebService.send_request(:i_event_source_create_aggregator, _this.merge(args))
16
+ VBox::EventSource.new(event_source)
17
+ end
18
+
19
+ def create_listener
20
+ event_listener = VBox::WebService.send_request(:i_event_source_create_listener, _this)
21
+ VBox::EventListener.new(event_listener)
22
+ end
23
+
24
+ def event_processed(args={})
25
+ ensure_hash(args)
26
+ args[:listener] = args[:listener].ref if args.has_key?(:listener) & args[:listener].respond_to?(:ref)
27
+ args[:event] = args[:event].ref if args.has_key?(:event) & args[:event].respond_to?(:ref)
28
+ VBox::WebService.send_request(:i_event_source_event_processed, _this.merge(args))
29
+ end
30
+
31
+ def fire_event(args={})
32
+ ensure_hash(args)
33
+ args[:event] = args[:event].ref if args.has_key?(:event) & args[:event].respond_to?(:ref)
34
+ VBox::WebService.send_request(:i_event_source_fire_event, _this.merge(args))
35
+ end
36
+
37
+ def get_event(args={})
38
+ ensure_hash(args)
39
+ args[:listener] = args[:listener].ref if args.has_key?(:listener) & args[:listener].respond_to?(:ref)
40
+ event_obj_ref = VBox::WebService.send_request(:i_event_source_get_event, _this.merge(args))
41
+ if event_obj_ref.nil?
42
+ nil
43
+ else
44
+ event = VBox::Event.new(event_obj_ref)
45
+ event_subclass = event.type.split('On')[1] + 'Event'
46
+ VBox.const_get(event_subclass).new(event_obj_ref)
47
+ end
48
+ end
49
+
50
+ def register_listener(args={})
51
+ ensure_hash(args)
52
+ args[:listener] = args[:listener].ref if args.has_key?(:listener) & args[:listener].respond_to?(:ref)
53
+ VBox::WebService.send_request(:i_event_source_register_listener, _this.merge(args))
54
+ end
55
+
56
+ def unregister_listener(args={})
57
+ ensure_hash(args)
58
+ args[:listener] = args[:listener].ref if args.has_key?(:listener) & args[:listener].respond_to?(:ref)
59
+ VBox::WebService.send_request(:i_event_source_unregister_listener, _this.merge(args))
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,7 @@
1
+ module VBox
2
+ class AdditionsStateChangedEvent < Event
3
+
4
+ attr_reader :ref
5
+
6
+ end
7
+ end