On this page
class Fiddle::Closure::BlockCaller
Extends Fiddle::Closure
to allow for building the closure in a block
Public Class Methods
# File ext/fiddle/lib/fiddle/closure.rb, line 35
def initialize ctype, args, abi = Fiddle::Function::DEFAULT, &block
super(ctype, args, abi)
@block = block
end
Description
Construct a new BlockCaller
object.
ctype
is the C type to be returnedargs
are passed the callbackabi
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.
Example
include Fiddle
cb = Closure::BlockCaller.new(TYPE_INT, [TYPE_INT]) do |one|
one
end
func = Function.new(cb, [TYPE_INT], TYPE_INT)
Calls superclass method
Fiddle::Closure::new
Public Instance Methods
# File ext/fiddle/lib/fiddle/closure.rb, line 44
def call *args
@block.call(*args)
end
Calls the constructed BlockCaller
, with args
For an example see Fiddle::Closure::BlockCaller.new
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.