class GirFFI::Builders::PointerValueConvertor
Encapsulates knowledge about how to store values in pointers, and how to fetch values from pointers.
Attributes
Public Class Methods
Source
# File lib/gir_ffi/builders/pointer_value_convertor.rb, line 8 def initialize(type_spec) @type_spec = type_spec end
Public Instance Methods
Source
# File lib/gir_ffi/builders/pointer_value_convertor.rb, line 12 def pointer_to_value(ptr_exp, offset = 0) case ffi_type_spec when Module "#{ffi_type_spec}.get_value_from_pointer(#{ptr_exp}, #{offset})" when Symbol "#{ptr_exp}.get_#{ffi_type_spec}(#{offset})" end end
Source
# File lib/gir_ffi/builders/pointer_value_convertor.rb, line 21 def value_to_pointer(ptr_exp, value_exp, offset = 0) case ffi_type_spec when Module args = [value_exp, ptr_exp] args << offset unless offset == 0 "#{ffi_type_spec}.copy_value_to_pointer(#{args.join(", ")})" when Symbol "#{ptr_exp}.put_#{ffi_type_spec} #{offset}, #{value_exp}" end end
Private Instance Methods
Source
# File lib/gir_ffi/builders/pointer_value_convertor.rb, line 36 def ffi_type_spec TypeMap.type_specification_to_ffi_type type_spec end