Class: Fiddle::Closure::BlockCaller
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
          ::Fiddle::Closure
         | |
| Instance Chain: 
          self,
          ::Fiddle::Closure
         | |
| Inherits: | Fiddle::Closure 
 | 
| Defined in: | ext/fiddle/lib/fiddle/closure.rb | 
Overview
Extends ::Fiddle::Closure to allow for building the closure in a block
Class Method Summary
- 
    
      .new(ctype, args, abi = Fiddle::Function::DEFAULT, &block)  ⇒ BlockCaller 
    
    constructor
    Description. 
::Fiddle::Closure - Inherited
| .new | Construct a new ::Fiddle::Closure object. | 
Instance Attribute Summary
::Fiddle::Closure - Inherited
Instance Method Summary
- 
    
      #call(*args)  
    
    Calls the constructed BlockCaller, with #args
::Fiddle::Closure - Inherited
| #to_i | Returns the memory address for this closure. | 
Constructor Details
    .new(ctype, args, abi = Fiddle::Function::DEFAULT, &block)  ⇒ BlockCaller 
  
Description
Construct a new BlockCaller object.
- 
Fiddle::Closure#ctype is the C type to be returned 
- 
Fiddle::Closure#args are passed the callback 
- 
abiis the abi of the closure
If there is an error in preparing the ffi_cif or ffi_prep_closure, then a RuntimeError will be raised.
Example
include Fiddle
cb = Closure::BlockCaller.new(TYPE_INT, [TYPE_INT]) do |one|
  one
end
func = Function.new(cb, [TYPE_INT], TYPE_INT)Instance Method Details
#call(*args)
Calls the constructed BlockCaller, with Fiddle::Closure#args
For an example see .new