class DhcpsApi::DHCP_OPTION_DATA
typedef struct _DHCP_OPTION_DATA {
DWORD NumElements; LPDHCP_OPTION_DATA_ELEMENT Elements;
} DHCP_OPTION_DATA
, *LPDHCP_OPTION_DATA;
Public Class Methods
from_array(type, array_of_data)
click to toggle source
# 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
Public Instance Methods
as_ruby_struct()
click to toggle source
# 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)
click to toggle source
# 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