Class: Hakuban::ObjectObserveContract
Instance Attribute Summary
Attributes inherited from Contract
#descriptor
Instance Method Summary
collapse
Methods included from Stream
#each
Methods inherited from Contract
#inspect
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
Returns a new instance of ObjectObserveContract.
22
23
24
25
26
27
28
29
|
# File 'lib/hakuban/contract.rb', line 22
def initialize(local_exchange, descriptor)
@local_exchange, @descriptor = local_exchange, descriptor
@local_exchange.with_pointer { |local_exchange_pointer|
@descriptor.with_pointer { |descriptor_pointer|
initialize_pointer(FFI::hakuban_object_observe_contract_new(local_exchange_pointer, descriptor_pointer),:hakuban_object_observe_contract_drop,nil)
}
}
end
|
Instance Method Details
#ready(&block) ⇒ Object
41
42
43
44
45
|
# File 'lib/hakuban/contract.rb', line 41
def ready(&block)
return nil if ! pointer = with_pointer { |pointer| FFI::hakuban_object_observe_contract_ready(pointer) }.unwrap
ObjectStateStream.send(:new, pointer).do_and_drop_or_return(&block)
rescue FFIObject::PointerAlreadyDropped
end
|
#terminate ⇒ Object
47
48
49
50
|
# File 'lib/hakuban/contract.rb', line 47
def terminate
with_pointer { |pointer| FFI::hakuban_object_observe_contract_terminate(pointer) }
rescue FFIObject::PointerAlreadyDropped
end
|