class GirFFI::ObjectStore

Helper class for storing objects for later retrieval. Used to store user data arguments.

Public Class Methods

new() click to toggle source
# File lib/gir_ffi/object_store.rb, line 7
def initialize
  @store = {}
end

Public Instance Methods

fetch(ptr) click to toggle source
# File lib/gir_ffi/object_store.rb, line 20
def fetch(ptr)
  return if ptr.null?

  key = ptr.address
  if @store.key? key
    @store[key]
  else
    ptr
  end
end
store(obj) click to toggle source
# File lib/gir_ffi/object_store.rb, line 11
def store(obj)
  return FFI::Pointer::NULL if obj.nil?

  # FIXME: Don't use object_id!
  key = obj.object_id
  @store[key] = obj
  FFI::Pointer.new(key)
end