Class: DhcpsApi::DHCP_OPTION_DATA
- Inherits:
-
DHCPS_Struct
- Object
- FFI::Struct
- DHCPS_Struct
- DhcpsApi::DHCP_OPTION_DATA
- Defined in:
- lib/dhcpsapi/data_structures.rb
Overview
typedef struct _DHCP_OPTION_DATA {
DWORD NumElements;
LPDHCP_OPTION_DATA_ELEMENT Elements;
} DHCP_OPTION_DATA, *LPDHCP_OPTION_DATA;
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from DHCPS_Struct
Methods included from RubyStructAttrHelpers
#dhcp_client_uid_to_mac, #ip_to_uint32, #mac_address_to_array_of_uint8, #to_string, #to_wchar_string, #uint32_to_ip, #wchar_string_length
Class Method Details
.from_array(type, array_of_data) ⇒ Object
221 222 223 224 225 |
# File 'lib/dhcpsapi/data_structures.rb', line 221 def self.from_array(type, array_of_data) to_return = new to_return.from_array(type, array_of_data) to_return end |
Instance Method Details
#as_ruby_struct ⇒ Object
245 246 247 248 249 |
# File 'lib/dhcpsapi/data_structures.rb', line 245 def as_ruby_struct 0.upto(self[:num_elements]-1).inject([]) do |all, offset| all << DHCP_OPTION_DATA_ELEMENT.new(self[:elements] + DHCP_OPTION_DATA_ELEMENT.size*offset).as_ruby_struct end end |
#from_array(type, array_of_data) ⇒ Object
227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 |
# File 'lib/dhcpsapi/data_structures.rb', line 227 def from_array(type, array_of_data) if array_of_data.size == 0 self[:num_elements] = 1 self[:elements] = FFI::MemoryPointer.new(DHCP_OPTION_DATA_ELEMENT, 1) DHCP_OPTION_DATA_ELEMENT.new(self[:elements]).initialize_from_data(type, nil) return self end self[:num_elements] = array_of_data.size self[:elements] = FFI::MemoryPointer.new(DHCP_OPTION_DATA_ELEMENT, array_of_data.size) 0.upto(array_of_data.size-1) do |i| element = DHCP_OPTION_DATA_ELEMENT.new(self[:elements] + DHCP_OPTION_DATA_ELEMENT.size*i) element.initialize_from_data(type, array_of_data[i]) end self end |