Class: GirFFI::ObjectStore

Inherits:
Object
  • Object
show all
Defined in:
lib/gir_ffi/object_store.rb

Overview

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

Instance Method Summary collapse

Constructor Details

#initializeObjectStore

Returns a new instance of ObjectStore.



5
6
7
# File 'lib/gir_ffi/object_store.rb', line 5

def initialize
  @store = {}
end

Instance Method Details

#fetch(ptr) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/gir_ffi/object_store.rb', line 16

def fetch(ptr)
  return if ptr.null?
  key = ptr.address
  if @store.key? key
    @store[key]
  else
    ptr
  end
end

#store(obj) ⇒ Object



9
10
11
12
13
14
# File 'lib/gir_ffi/object_store.rb', line 9

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