virtualbox 0.5.4 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +2 -1
- data/Gemfile +1 -1
- data/Rakefile +1 -1
- data/Readme.md +5 -21
- data/VERSION +1 -1
- data/docs/WhatsNew.md +9 -47
- data/lib/virtualbox.rb +7 -30
- data/lib/virtualbox/abstract_model.rb +25 -5
- data/lib/virtualbox/abstract_model/attributable.rb +5 -1
- data/lib/virtualbox/abstract_model/dirty.rb +2 -0
- data/lib/virtualbox/abstract_model/interface_attributes.rb +96 -0
- data/lib/virtualbox/abstract_model/relatable.rb +19 -8
- data/lib/virtualbox/appliance.rb +59 -0
- data/lib/virtualbox/audio_adapter.rb +44 -0
- data/lib/virtualbox/bios.rb +44 -0
- data/lib/virtualbox/com.rb +23 -0
- data/lib/virtualbox/com/abstract_enum.rb +42 -0
- data/lib/virtualbox/com/abstract_implementer.rb +43 -0
- data/lib/virtualbox/com/abstract_interface.rb +165 -0
- data/lib/virtualbox/com/ffi/interface.rb +141 -0
- data/lib/virtualbox/com/ffi/interfaces.rb +42 -0
- data/lib/virtualbox/com/ffi/util.rb +101 -0
- data/lib/virtualbox/com/ffi/vboxxpcomc.rb +31 -0
- data/lib/virtualbox/com/ffi_interface.rb +65 -0
- data/lib/virtualbox/com/implementer/base.rb +52 -0
- data/lib/virtualbox/com/implementer/ffi.rb +350 -0
- data/lib/virtualbox/com/implementer/mscom.rb +165 -0
- data/lib/virtualbox/com/implementer/nil.rb +10 -0
- data/lib/virtualbox/com/interface/appliance.rb +20 -0
- data/lib/virtualbox/com/interface/audio_adapter.rb +13 -0
- data/lib/virtualbox/com/interface/audio_controller_type.rb +9 -0
- data/lib/virtualbox/com/interface/audio_driver_type.rb +9 -0
- data/lib/virtualbox/com/interface/bios_boot_menu_mode.rb +9 -0
- data/lib/virtualbox/com/interface/bios_settings.rb +19 -0
- data/lib/virtualbox/com/interface/clipboard_mode.rb +9 -0
- data/lib/virtualbox/com/interface/console.rb +48 -0
- data/lib/virtualbox/com/interface/cpu_property_type.rb +9 -0
- data/lib/virtualbox/com/interface/device_type.rb +9 -0
- data/lib/virtualbox/com/interface/dhcp_server.rb +20 -0
- data/lib/virtualbox/com/interface/firmware_type.rb +9 -0
- data/lib/virtualbox/com/interface/guest_os_type.rb +21 -0
- data/lib/virtualbox/com/interface/host.rb +40 -0
- data/lib/virtualbox/com/interface/host_network_interface.rb +28 -0
- data/lib/virtualbox/com/interface/host_network_interface_medium_type.rb +9 -0
- data/lib/virtualbox/com/interface/host_network_interface_status.rb +9 -0
- data/lib/virtualbox/com/interface/host_network_interface_type.rb +9 -0
- data/lib/virtualbox/com/interface/host_usb_device.rb +11 -0
- data/lib/virtualbox/com/interface/host_usb_device_filter.rb +11 -0
- data/lib/virtualbox/com/interface/hw_virt_ex_property_type.rb +9 -0
- data/lib/virtualbox/com/interface/machine.rb +103 -0
- data/lib/virtualbox/com/interface/machine_state.rb +12 -0
- data/lib/virtualbox/com/interface/medium.rb +48 -0
- data/lib/virtualbox/com/interface/medium_attachment.rb +16 -0
- data/lib/virtualbox/com/interface/medium_format.rb +16 -0
- data/lib/virtualbox/com/interface/medium_state.rb +9 -0
- data/lib/virtualbox/com/interface/medium_type.rb +9 -0
- data/lib/virtualbox/com/interface/medium_variant.rb +9 -0
- data/lib/virtualbox/com/interface/network_adapter.rb +28 -0
- data/lib/virtualbox/com/interface/network_adapter_type.rb +9 -0
- data/lib/virtualbox/com/interface/network_attachment_type.rb +9 -0
- data/lib/virtualbox/com/interface/nsiexception.rb +21 -0
- data/lib/virtualbox/com/interface/nsisupports.rb +13 -0
- data/lib/virtualbox/com/interface/parallel_port.rb +15 -0
- data/lib/virtualbox/com/interface/port_mode.rb +9 -0
- data/lib/virtualbox/com/interface/progress.rb +58 -0
- data/lib/virtualbox/com/interface/serial_port.rb +17 -0
- data/lib/virtualbox/com/interface/session.rb +16 -0
- data/lib/virtualbox/com/interface/session_state.rb +9 -0
- data/lib/virtualbox/com/interface/session_type.rb +9 -0
- data/lib/virtualbox/com/interface/shared_folder.rb +15 -0
- data/lib/virtualbox/com/interface/snapshot.rb +18 -0
- data/lib/virtualbox/com/interface/storage_bus.rb +9 -0
- data/lib/virtualbox/com/interface/storage_controller.rb +21 -0
- data/lib/virtualbox/com/interface/storage_controller_type.rb +9 -0
- data/lib/virtualbox/com/interface/system_properties.rb +35 -0
- data/lib/virtualbox/com/interface/usb_controller.rb +18 -0
- data/lib/virtualbox/com/interface/usb_device.rb +22 -0
- data/lib/virtualbox/com/interface/usb_device_filter.rb +21 -0
- data/lib/virtualbox/com/interface/usb_device_filter_action.rb +9 -0
- data/lib/virtualbox/com/interface/usb_device_state.rb +9 -0
- data/lib/virtualbox/com/interface/virtual_box_error_info.rb +15 -0
- data/lib/virtualbox/com/interface/virtual_system_description.rb +17 -0
- data/lib/virtualbox/com/interface/virtual_system_description_type.rb +12 -0
- data/lib/virtualbox/com/interface/virtual_system_description_value_type.rb +9 -0
- data/lib/virtualbox/com/interface/virtualbox.rb +54 -0
- data/lib/virtualbox/com/interface/vrdp_auth_type.rb +9 -0
- data/lib/virtualbox/com/interface/vrdp_server.rb +17 -0
- data/lib/virtualbox/com/mscom_interface.rb +22 -0
- data/lib/virtualbox/com/util.rb +18 -0
- data/lib/virtualbox/dvd.rb +7 -94
- data/lib/virtualbox/exceptions.rb +24 -0
- data/lib/virtualbox/ext/glob_loader.rb +22 -0
- data/lib/virtualbox/ext/logger.rb +38 -0
- data/lib/virtualbox/ext/platform.rb +1 -1
- data/lib/virtualbox/extra_data.rb +25 -37
- data/lib/virtualbox/forwarded_port.rb +35 -13
- data/lib/virtualbox/global.rb +22 -80
- data/lib/virtualbox/hard_drive.rb +30 -97
- data/lib/virtualbox/lib.rb +82 -0
- data/lib/virtualbox/media.rb +7 -6
- data/lib/virtualbox/medium.rb +138 -0
- data/lib/virtualbox/medium_attachment.rb +61 -0
- data/lib/virtualbox/network_adapter.rb +134 -0
- data/lib/virtualbox/shared_folder.rb +53 -78
- data/lib/virtualbox/storage_controller.rb +76 -20
- data/lib/virtualbox/system_properties.rb +74 -0
- data/lib/virtualbox/usb_controller.rb +55 -0
- data/lib/virtualbox/version.rb +15 -0
- data/lib/virtualbox/virtual_system_description.rb +47 -0
- data/lib/virtualbox/vm.rb +160 -272
- data/test/test_helper.rb +0 -108
- data/test/virtualbox/abstract_model/attributable_test.rb +7 -1
- data/test/virtualbox/abstract_model/dirty_test.rb +1 -1
- data/test/virtualbox/abstract_model/interface_attributes_test.rb +169 -0
- data/test/virtualbox/abstract_model/relatable_test.rb +20 -0
- data/test/virtualbox/abstract_model_test.rb +40 -5
- data/test/virtualbox/appliance_test.rb +152 -0
- data/test/virtualbox/audio_adapter_test.rb +83 -0
- data/test/virtualbox/bios_test.rb +83 -0
- data/test/virtualbox/com/abstract_enum_test.rb +48 -0
- data/test/virtualbox/com/abstract_implementer_test.rb +39 -0
- data/test/virtualbox/com/abstract_interface_test.rb +139 -0
- data/test/virtualbox/com/ffi/interface_test.rb +249 -0
- data/test/virtualbox/com/ffi/util_test.rb +86 -0
- data/test/virtualbox/com/ffi_interface_test.rb +42 -0
- data/test/virtualbox/com/implementer/base_test.rb +37 -0
- data/test/virtualbox/com/implementer/ffi_test.rb +519 -0
- data/test/virtualbox/com/implementer/mscom_test.rb +208 -0
- data/test/virtualbox/com/mscom_interface_test.rb +17 -0
- data/test/virtualbox/com/util_test.rb +17 -0
- data/test/virtualbox/dvd_test.rb +4 -95
- data/test/virtualbox/ext/platform_test.rb +8 -0
- data/test/virtualbox/extra_data_test.rb +78 -102
- data/test/virtualbox/forwarded_port_test.rb +57 -7
- data/test/virtualbox/global_test.rb +25 -115
- data/test/virtualbox/hard_drive_test.rb +49 -212
- data/test/virtualbox/lib_test.rb +93 -0
- data/test/virtualbox/medium_attachment_test.rb +147 -0
- data/test/virtualbox/medium_test.rb +192 -0
- data/test/virtualbox/network_adapter_test.rb +160 -0
- data/test/virtualbox/shared_folder_test.rb +144 -160
- data/test/virtualbox/storage_controller_test.rb +166 -45
- data/test/virtualbox/system_properties_test.rb +87 -0
- data/test/virtualbox/usb_controller_test.rb +104 -0
- data/test/virtualbox/version_test.rb +34 -0
- data/test/virtualbox/virtual_system_description_test.rb +61 -0
- data/test/virtualbox/vm_test.rb +288 -322
- data/test/virtualbox_test.rb +1 -9
- data/virtualbox.gemspec +139 -23
- metadata +143 -27
- data/lib/virtualbox/attached_device.rb +0 -249
- data/lib/virtualbox/command.rb +0 -109
- data/lib/virtualbox/image.rb +0 -137
- data/lib/virtualbox/nic.rb +0 -111
- data/lib/virtualbox/system_property.rb +0 -55
- data/lib/virtualbox/usb.rb +0 -72
- data/test/virtualbox/attached_device_test.rb +0 -303
- data/test/virtualbox/command_test.rb +0 -152
- data/test/virtualbox/image_test.rb +0 -190
- data/test/virtualbox/nic_test.rb +0 -76
- data/test/virtualbox/system_property_test.rb +0 -71
- data/test/virtualbox/usb_test.rb +0 -35
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Implementer
|
|
4
|
+
class MSCOM < Base
|
|
5
|
+
attr_reader :lib
|
|
6
|
+
attr_reader :object
|
|
7
|
+
|
|
8
|
+
# Initializes the MSCOM implementer.
|
|
9
|
+
#
|
|
10
|
+
# @param [AbstractInterface] inteface
|
|
11
|
+
# @param [FFI::Pointer] pointer
|
|
12
|
+
def initialize(interface, lib_base, object)
|
|
13
|
+
super(interface)
|
|
14
|
+
|
|
15
|
+
@lib = lib_base
|
|
16
|
+
@object = object
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Reads a property from the interface with the given name.
|
|
20
|
+
def read_property(name, opts)
|
|
21
|
+
# First get the basic value from the COM object
|
|
22
|
+
value = @object[COM::FFI::Util.camelize(name.to_s)]
|
|
23
|
+
|
|
24
|
+
# Then depending on the value type, we either return as-is or
|
|
25
|
+
# must wrap it up in another interface class
|
|
26
|
+
returnable_value(value, opts[:value_type])
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Writes a property from the interface with the given name and
|
|
30
|
+
# value.
|
|
31
|
+
def write_property(name, value, opts)
|
|
32
|
+
# Set the property with a prepared value
|
|
33
|
+
@object[COM::FFI::Util.camelize(name.to_s)] = spec_to_args([opts[:value_type]], [value]).first
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Calls a function from the interface with the given name
|
|
37
|
+
def call_function(name, args, opts)
|
|
38
|
+
# Convert args to proper values to send and send em!
|
|
39
|
+
args = spec_to_args(opts[:spec], args)
|
|
40
|
+
value = @object.send(COM::FFI::Util.camelize(name.to_s), *args)
|
|
41
|
+
|
|
42
|
+
# TODO: Multiple return values
|
|
43
|
+
returnable_value(value, opts[:value_type])
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
#############################################################
|
|
47
|
+
# Internal Methods, a.k.a. unless you're hacking on the code of this
|
|
48
|
+
# library, you should do well to leave these alone =]
|
|
49
|
+
#############################################################
|
|
50
|
+
|
|
51
|
+
# Takes a function spec and an argument list. This handles properly converting
|
|
52
|
+
# enums to ints and {AbstractInterface}s to proper MSCOM interfaces.
|
|
53
|
+
def spec_to_args(spec, args)
|
|
54
|
+
args = args.dup
|
|
55
|
+
|
|
56
|
+
# First remove all :out parameters from the spec, since those are of no
|
|
57
|
+
# concern for MSCOM at this point
|
|
58
|
+
spec = spec.collect do |item|
|
|
59
|
+
if item.is_a?(Array) && item[0] == :out
|
|
60
|
+
nil
|
|
61
|
+
else
|
|
62
|
+
item
|
|
63
|
+
end
|
|
64
|
+
end.compact
|
|
65
|
+
|
|
66
|
+
spec = spec.collect do |item|
|
|
67
|
+
if item == T_BOOL
|
|
68
|
+
args.shift ? 1 : 0
|
|
69
|
+
elsif item.to_s[0,1] == item.to_s[0,1].upcase
|
|
70
|
+
# Try to get the class from the interfaces
|
|
71
|
+
interface = interface_klass(item.to_sym)
|
|
72
|
+
|
|
73
|
+
if interface.superclass == COM::AbstractInterface
|
|
74
|
+
# For interfaces, get the instance, then dig deep to get the pointer
|
|
75
|
+
# to the VtblParent, which is what the API expects
|
|
76
|
+
instance = args.shift
|
|
77
|
+
|
|
78
|
+
if !instance.nil?
|
|
79
|
+
# Get the actual MSCOM object, rather than the AbstractInterface
|
|
80
|
+
instance.implementer.object
|
|
81
|
+
else
|
|
82
|
+
# If the argument was nil, just pass a nil pointer as the argument
|
|
83
|
+
nil
|
|
84
|
+
end
|
|
85
|
+
elsif interface.superclass == COM::AbstractEnum
|
|
86
|
+
# For enums, we need the value of the enum
|
|
87
|
+
interface.index(args.shift.to_sym)
|
|
88
|
+
end
|
|
89
|
+
else
|
|
90
|
+
# Simply replace spec item with next item in args
|
|
91
|
+
# list
|
|
92
|
+
args.shift
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Takes a value (returned from a WIN32OLE object) and a type and converts
|
|
98
|
+
# to a proper ruby return value type.
|
|
99
|
+
def returnable_value(value, type)
|
|
100
|
+
# Types which are void or nil just return
|
|
101
|
+
return nil if type.nil? || type == :void
|
|
102
|
+
|
|
103
|
+
klass = type.is_a?(Array) ? type.first : type
|
|
104
|
+
ignore, inferred_type = infer_type(klass)
|
|
105
|
+
|
|
106
|
+
array_of = type.is_a?(Array) ? "array_of_" : ""
|
|
107
|
+
send("read_#{array_of}#{inferred_type}", value, type)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def read_unicode_string(value, type)
|
|
111
|
+
# Return as-is
|
|
112
|
+
value
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def read_char(value, type)
|
|
116
|
+
# Convert to a boolean
|
|
117
|
+
!(value.to_s == "0")
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def read_ushort(value, type)
|
|
121
|
+
value.to_i
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def read_uint(value, type)
|
|
125
|
+
value.to_i
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def read_ulong(value, type)
|
|
129
|
+
value.to_i
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def read_int(value, type)
|
|
133
|
+
value.to_i
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def read_long(value, type)
|
|
137
|
+
value.to_i
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def read_enum(value, type)
|
|
141
|
+
interface_klass(type)[value]
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def read_interface(value, type)
|
|
145
|
+
return nil if value.nil?
|
|
146
|
+
interface_klass(type).new(self.class, lib, value)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def read_array_of_unicode_string(value, type)
|
|
150
|
+
# Return as-is, since MSCOM returns ruby strings!
|
|
151
|
+
value
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def read_array_of_interface(value, type)
|
|
155
|
+
klass = interface_klass(type.first)
|
|
156
|
+
value.collect do |item|
|
|
157
|
+
if !item.nil?
|
|
158
|
+
klass.new(self.class, lib, item)
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
class Appliance < AbstractInterface
|
|
5
|
+
IID = "e3ba9ab9-ac2c-4266-8bd2-91c4bf721ceb"
|
|
6
|
+
|
|
7
|
+
property :path, WSTRING, :readonly => true
|
|
8
|
+
property :disks, [WSTRING], :readonly => true
|
|
9
|
+
property :virtual_system_descriptions, [:VirtualSystemDescription], :readonly => true
|
|
10
|
+
|
|
11
|
+
function :read, :Progress, [WSTRING]
|
|
12
|
+
function :interpret, nil, []
|
|
13
|
+
function :import_machines, :Progress, []
|
|
14
|
+
function :create_vfs_explorer, :VFSExplorer, [WSTRING]
|
|
15
|
+
function :write, :Progress, [WSTRING, WSTRING]
|
|
16
|
+
function :get_warnings, [WSTRING], []
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
class AudioAdapter < AbstractInterface
|
|
5
|
+
IID = "921873db-5f3f-4b69-91f9-7be9e535a2cb"
|
|
6
|
+
|
|
7
|
+
property :enabled, T_BOOL
|
|
8
|
+
property :audio_controller, :AudioControllerType
|
|
9
|
+
property :audio_driver, :AudioDriverType
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
class BIOSSettings < AbstractInterface
|
|
5
|
+
IID = "38b54279-dc35-4f5e-a431-835b867c6b5e"
|
|
6
|
+
|
|
7
|
+
property :logo_fade_in, T_BOOL
|
|
8
|
+
property :logo_fade_out, T_BOOL
|
|
9
|
+
property :logo_display_time, T_UINT32
|
|
10
|
+
property :logo_image_path, WSTRING
|
|
11
|
+
property :boot_menu_mode, :BIOSBootMenuMode
|
|
12
|
+
property :acpi_enabled, T_BOOL
|
|
13
|
+
property :io_apic_enabled, T_BOOL
|
|
14
|
+
property :time_offset, T_INT64
|
|
15
|
+
property :pxe_debug_enabled, T_BOOL
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
class Console < AbstractInterface
|
|
5
|
+
IID = "6375231a-c17c-464b-92cb-ae9e128d71c3"
|
|
6
|
+
|
|
7
|
+
property :machine, :Machine, :readonly => true
|
|
8
|
+
property :state, :MachineState, :readonly => true
|
|
9
|
+
property :guest, :Guest, :readonly => true
|
|
10
|
+
property :keyboard, :Keyboard, :readonly => true
|
|
11
|
+
property :mouse, :Mouse, :readonly => true
|
|
12
|
+
property :display, :Display, :readonly => true
|
|
13
|
+
property :debugger, :MachineDebugger, :readonly => true
|
|
14
|
+
property :usb_devices, [:USBDevice], :readonly => true
|
|
15
|
+
property :remote_usb_devices, [:HostUSBDevice], :readonly => true
|
|
16
|
+
property :shared_folders, [:SharedFolder], :readonly => true
|
|
17
|
+
property :remote_display_info, :RemoteDisplayInfo, :readonly => true
|
|
18
|
+
|
|
19
|
+
function :power_up, :Progress, []
|
|
20
|
+
function :power_up_paused, :Progress, []
|
|
21
|
+
function :power_down, :Progress, []
|
|
22
|
+
function :reset, nil, []
|
|
23
|
+
function :pause, nil, []
|
|
24
|
+
function :resume, nil, []
|
|
25
|
+
function :power_button, nil, []
|
|
26
|
+
function :sleep_button, nil, []
|
|
27
|
+
function :get_power_button_handled, T_BOOL, []
|
|
28
|
+
function :get_guest_entered_acpi_mode, T_BOOL, []
|
|
29
|
+
function :save_state, :Progress, []
|
|
30
|
+
function :adopt_saved_state, nil, [WSTRING]
|
|
31
|
+
function :forget_saved_state, nil, [T_BOOL]
|
|
32
|
+
function :get_device_activity, :DeviceActivity, [:DeviceType]
|
|
33
|
+
function :attach_usb_device, nil, [WSTRING]
|
|
34
|
+
function :detach_usb_device, :USBDevice, [WSTRING]
|
|
35
|
+
function :find_usb_device_by_address, :USBDevice, [WSTRING]
|
|
36
|
+
function :find_usb_device_by_id, :USBDevice, [WSTRING]
|
|
37
|
+
function :create_shared_folder, nil, [WSTRING, WSTRING, T_BOOL]
|
|
38
|
+
function :remove_shared_folder, nil, [WSTRING]
|
|
39
|
+
function :take_snapshot, :Progress, [WSTRING, WSTRING]
|
|
40
|
+
function :delete_snapshot, :Progress, [WSTRING]
|
|
41
|
+
function :restore_snapshot, :Progress, [:Snapshot]
|
|
42
|
+
function :teleport, :Progress, [WSTRING, T_UINT32, WSTRING, T_UINT32]
|
|
43
|
+
function :register_callback, nil, [:ConsoleCallback]
|
|
44
|
+
function :unregister_callback, nil, [:ConsoleCallback]
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
class DHCPServer < AbstractInterface
|
|
5
|
+
IID = "6cfe387c-74fb-4ca7-bff6-973bec8af7a3"
|
|
6
|
+
|
|
7
|
+
property :enabled, T_BOOL
|
|
8
|
+
property :ip_address, WSTRING, :readonly => true
|
|
9
|
+
property :network_mask, WSTRING, :readonly => true
|
|
10
|
+
property :network_name, WSTRING, :readonly => true
|
|
11
|
+
property :lower_ip, WSTRING, :readonly => true
|
|
12
|
+
property :upper_ip, WSTRING, :readonly => true
|
|
13
|
+
|
|
14
|
+
function :set_configuration, nil, [WSTRING, WSTRING, WSTRING, WSTRING]
|
|
15
|
+
function :start, nil, [WSTRING, WSTRING, WSTRING]
|
|
16
|
+
function :stop, nil, []
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
class GuestOSType < AbstractInterface
|
|
5
|
+
IID = "cfe9e64c-4430-435b-9e7c-e3d8e417bd58"
|
|
6
|
+
|
|
7
|
+
property :family_id, WSTRING, :readonly => true
|
|
8
|
+
property :family_description, WSTRING, :readonly => true
|
|
9
|
+
property :id, WSTRING, :readonly => true
|
|
10
|
+
property :description, WSTRING, :readonly => true
|
|
11
|
+
property :is_64_bit, T_BOOL, :readonly => true
|
|
12
|
+
property :recommended_io_apic, T_BOOL, :readonly => true
|
|
13
|
+
property :recommended_virt_ex, T_BOOL, :readonly => true
|
|
14
|
+
property :recommended_ram, T_UINT32, :readonly => true
|
|
15
|
+
property :recommended_vram, T_UINT32, :readonly => true
|
|
16
|
+
property :recommended_hdd, T_UINT32, :readonly => true
|
|
17
|
+
property :adapter_type, :NetworkAdapterType, :readonly => true
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module VirtualBox
|
|
2
|
+
module COM
|
|
3
|
+
module Interface
|
|
4
|
+
class Host < AbstractInterface
|
|
5
|
+
IID_STR = "e380cbfc-ae65-4fa6-899e-45ded6b3132a"
|
|
6
|
+
|
|
7
|
+
property :dvd_drives, [:Medium], :readonly => true
|
|
8
|
+
property :floppy_drives, [:Medium], :readonly => true
|
|
9
|
+
property :usb_devices, [:HostUSBDevice], :readonly => true
|
|
10
|
+
property :usb_device_filters, [:HostUSBDeviceFilter], :readonly => true
|
|
11
|
+
property :network_interfaces, [:HostNetworkInterface], :readonly => true
|
|
12
|
+
property :processor_count, T_ULONG, :readonly => true
|
|
13
|
+
property :processor_online_count, T_ULONG, :readonly => true
|
|
14
|
+
property :memory_size, T_ULONG, :readonly => true
|
|
15
|
+
property :memory_available, T_ULONG, :readonly => true
|
|
16
|
+
property :operating_system, WSTRING, :readonly => true
|
|
17
|
+
property :os_version, WSTRING, :readonly => true
|
|
18
|
+
property :utc_time, T_INT64, :readonly => true
|
|
19
|
+
property :acceleration_3d_available, T_BOOL, :readonly => true
|
|
20
|
+
|
|
21
|
+
function :get_processor_speed, T_ULONG, [T_UINT32]
|
|
22
|
+
function :get_processor_feature, T_BOOL, [T_UINT32] # TODO ENUM
|
|
23
|
+
function :get_processor_description, WSTRING, [T_UINT32]
|
|
24
|
+
function :get_processor_cpu_id_leaf, nil, [T_UINT32, T_UINT32, T_UINT32, [:out, T_UINT32], [:out, T_UINT32], [:out, T_UINT32], [:out, T_UINT32]]
|
|
25
|
+
function :create_host_only_network_interface, :Progress, [[:out, :HostNetworkInterface]]
|
|
26
|
+
function :remove_host_only_network_interface, :Progress, [WSTRING]
|
|
27
|
+
function :create_usb_device_filter, :HostUSBDeviceFilter, [WSTRING]
|
|
28
|
+
function :insert_usb_device_filter, nil, [T_UINT32, :HostUSBDeviceFilter]
|
|
29
|
+
function :remove_usb_device_filter, nil, [T_UINT32]
|
|
30
|
+
function :find_host_dvd_drive, :Medium, [WSTRING]
|
|
31
|
+
function :find_host_floppy_drive, :Medium, [WSTRING]
|
|
32
|
+
function :find_host_network_interface_by_name, :HostNetworkInterface, [WSTRING]
|
|
33
|
+
function :find_host_network_interface_by_id, :HostNetworkInterface, [WSTRING]
|
|
34
|
+
function :find_host_network_interfaces_of_type, [:HostNetworkInterface], [:HostNetworkInterfaceType]
|
|
35
|
+
function :find_usb_device_by_id, :HostUSBDevice, [WSTRING]
|
|
36
|
+
function :find_usb_device_by_address, :HostUSBDevice, [WSTRING]
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|