module GirFFI::FFIExt::Pointer

Extensions to FFI::Pointer

Public Class Methods

prepended(base) click to toggle source
# File lib/gir_ffi/ffi_ext/pointer.rb, line 7
def self.prepended(base)
  base.class_eval do
    size_t_getter =
      case (size = FFI.type_size(:size_t))
      when 4
        :get_uint32
      when 8
        :get_uint64
      else
        raise NotImplementedError,
              "Don't know how to handle size_t types of size #{size}"
      end

    alias_method :get_size_t, size_t_getter

    alias_method :get_gtype, :get_size_t
  end
end

Public Instance Methods

to_object() click to toggle source

FIXME: Should probably not be here.

# File lib/gir_ffi/ffi_ext/pointer.rb, line 31
def to_object
  return nil if null?

  gtype = GObject.type_from_instance_pointer self
  Builder.build_by_gtype(gtype).direct_wrap self
end
to_ptr() click to toggle source
# File lib/gir_ffi/ffi_ext/pointer.rb, line 26
def to_ptr
  self
end
to_utf8() click to toggle source
# File lib/gir_ffi/ffi_ext/pointer.rb, line 38
def to_utf8
  null? ? nil : read_string.force_encoding("utf-8")
end