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