Class: Hakuban::ObjectStateStream

Inherits:
FFIObject
  • Object
show all
Includes:
Stream
Defined in:
lib/hakuban/object_state_stream.rb

Instance Method Summary collapse

Methods included from Stream

#each

Methods inherited from FFIObject

#do_and_drop, #do_and_drop_or_return, #drop, #drop_lock, #drop_release, #dropped?, generate_finalizer, #initialize_copy, #inspect, #with_pointer, with_pointers

Constructor Details

#initialize(pointer) ⇒ ObjectStateStream

Returns a new instance of ObjectStateStream.



11
12
13
# File 'lib/hakuban/object_state_stream.rb', line 11

def initialize(pointer)
	initialize_pointer(pointer, :hakuban_object_state_stream_drop, nil)
end

Instance Method Details

#current(&block) ⇒ Object



26
27
28
29
30
# File 'lib/hakuban/object_state_stream.rb', line 26

def current(&block)
	return nil  if ! pointer = with_pointer { |pointer| FFI::hakuban_object_state_stream_current(pointer) }.unwrap
	ObjectState.send(:from_ffi_pointer, pointer).do_and_drop_or_return(&block)
rescue FFIObject::PointerAlreadyDropped	
end

#descriptorObject



33
34
35
# File 'lib/hakuban/object_state_stream.rb', line 33

def descriptor
	Hakuban::ObjectDescriptor.send(:from_ffi_pointer, with_pointer { |pointer| FFI::hakuban_object_state_stream_descriptor(pointer) })
end

#next(&block) ⇒ Object



19
20
21
22
23
# File 'lib/hakuban/object_state_stream.rb', line 19

def next(&block)
	return nil  if ! pointer = FFI::FFIFutureReturningPointer.create_and_await(self) { |pointer| FFI::hakuban_object_state_stream_next(pointer) }.unwrap
	ObjectState.send(:from_ffi_pointer, pointer).do_and_drop_or_return(&block)
rescue FFIObject::PointerAlreadyDropped	
end