class DhcpsApi::DHCP_OPTION_DATA_ELEMENT
Public Class Methods
initialize_from_data(type, data)
click to toggle source
# File lib/dhcpsapi/data_structures.rb, line 206 def self.initialize_from_data(type, data) DHCP_OPTION_DATA_ELEMENT.new.initialize_from_data(type, data) end
Public Instance Methods
element_as_ruby_struct_attr()
click to toggle source
# File lib/dhcpsapi/data_structures.rb, line 155 def element_as_ruby_struct_attr case self[:option_type] when DHCP_OPTION_DATA_TYPE::DhcpByteOption self[:element][:byte_option] when DHCP_OPTION_DATA_TYPE::DhcpWordOption self[:element][:word_opition] when DHCP_OPTION_DATA_TYPE::DhcpDWordOption self[:element][:dword_option] when DHCP_OPTION_DATA_TYPE::DhcpDWordDWordOption self[:element][:dword_dword_option].as_ruby_struct when DHCP_OPTION_DATA_TYPE::DhcpIpAddressOption uint32_to_ip(self[:element][:ip_address_option]) when DHCP_OPTION_DATA_TYPE::DhcpStringDataOption to_string(self[:element][:string_data_option]) when DHCP_OPTION_DATA_TYPE::DhcpBinaryDataOption self[:element][:binary_data_option].as_ruby_struct when DHCP_OPTION_DATA_TYPE::DhcpEncapsulatedDataOption self[:element][:encapsulated_data_option].as_ruby_struct when DHCP_OPTION_DATA_TYPE::DhcpIpv6AddressOption to_string(self[:element][:ipv6_address_data_option]) end end
initialize_from_data(type, data)
click to toggle source
# File lib/dhcpsapi/data_structures.rb, line 178 def initialize_from_data(type, data) self[:option_type] = type case type when DHCP_OPTION_DATA_TYPE::DhcpByteOption self[:element][:byte_option] = data.nil? ? 0 : data & 0xff when DHCP_OPTION_DATA_TYPE::DhcpWordOption self[:element][:word_opition] = data.nil? ? 0 : data & 0xffff when DHCP_OPTION_DATA_TYPE::DhcpDWordOption self[:element][:dword_option] = data.nil? ? 0 : data & 0xffffffff when DHCP_OPTION_DATA_TYPE::DhcpDWordDWordOption self[:element][:dword_dword_option] = DWORD_DWORD.from_int(data.nil? ? 0 : data) when DHCP_OPTION_DATA_TYPE::DhcpIpAddressOption self[:element][:ip_address_option] = data.nil? ? 0 : ip_to_uint32(data) when DHCP_OPTION_DATA_TYPE::DhcpStringDataOption self[:element][:string_data_option] = FFI::MemoryPointer.from_string(to_wchar_string(data.nil? ? '' : data)) when DHCP_OPTION_DATA_TYPE::DhcpBinaryDataOption self[:element][:binary_data_option] = DHCP_BINARY_DATA.from_data(data.nil? ? [0] : data) when DHCP_OPTION_DATA_TYPE::DhcpEncapsulatedDataOption self[:element][:encapsulated_data_option] = DHCP_BINARY_DATA.from_data(data.nil? ? [0] : data) when DHCP_OPTION_DATA_TYPE::DhcpIpv6AddressOption self[:element][:ipv6_address_data_option] = FFI::MemoryPointer.from_string(to_wchar_string(data.nil? ? '' : data)) else raise DhcpError, "Unknown dhcp option data type: #{type}" end self end