class Libvirt::BaseInfo

Attributes

_struct_class[RW]

Public Class Methods

new(pointer) click to toggle source

@param pointer [FFI::Pointer]

# File lib/libvirt/base_info.rb, line 20
def initialize(pointer)
  raise ArgumentError, "Can't initialize base class #{self.class}" if self.class == BaseInfo

  @ptr = pointer
  @struct = self.class._struct_class.new(pointer)
end
struct_class(klass) click to toggle source

@param [Class<FFI::Struct>]

# File lib/libvirt/base_info.rb, line 11
def struct_class(klass)
  self._struct_class = klass
  klass.members.each do |attr|
    define_method(attr) { @struct[attr] }
  end
end

Public Instance Methods

[](attr) click to toggle source

@param attr [Symbol] @return [Object, nil]

# File lib/libvirt/base_info.rb, line 29
def [](attr)
  @struct[attr]
end
to_h() click to toggle source

@return [Hash]

# File lib/libvirt/base_info.rb, line 34
def to_h
  @struct.members.map { |attr| [attr, @struct[attr]] }.to_h
end
to_ptr() click to toggle source
# File lib/libvirt/base_info.rb, line 38
def to_ptr
  @struct.to_ptr
end