Class: Fiddle::Closure
Relationships & Source Files | |
Namespace Children | |
Classes:
| |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Inherits: | Object |
Defined in: | ext/fiddle/closure.c, ext/fiddle/lib/fiddle/closure.rb |
Overview
Description
An FFI closure wrapper, for handling callbacks.
Example
closure = Class.new(Fiddle::Closure) {
def call
10
end
}.new(Fiddle::TYPE_INT, [])
#=> #<#<Class:0x0000000150d308>:0x0000000150d240>
func = Fiddle::Function.new(closure, [], Fiddle::TYPE_INT)
#=> #<Fiddle::Function:0x00000001516e58>
func.call
#=> 10
Class Method Summary
-
.new(ret, args, abi = Fiddle::DEFAULT)
constructor
Construct a new
Closure
object.
Instance Attribute Summary
Instance Method Summary
-
#to_i
Returns the memory address for this closure.
Constructor Details
.new(ret, args, abi = Fiddle::DEFAULT)
Construct a new Closure
object.
-
ret
is the C type to be returned -
#args is an Array of arguments, passed to the callback function
-
abi
is 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.
Instance Attribute Details
#args (readonly)
arguments of the FFI closure
# File 'ext/fiddle/lib/fiddle/closure.rb', line 8
attr_reader :args
#ctype (readonly)
the C type of the return of the FFI closure
# File 'ext/fiddle/lib/fiddle/closure.rb', line 5
attr_reader :ctype
Instance Method Details
#to_i
Returns the memory address for this closure