opt
/
alt
/
ruby26
/
lib64
/
ruby
/
2.6.0
/
fiddle
/
Go to Home Directory
+
Upload
Create File
root@0UT1S:~$
Execute
By Order of Mr.0UT1S
[DIR] ..
N/A
closure.rb
1.21 KB
Rename
Delete
cparser.rb
6.05 KB
Rename
Delete
function.rb
323 bytes
Rename
Delete
import.rb
8.81 KB
Rename
Delete
pack.rb
3.13 KB
Rename
Delete
struct.rb
6.35 KB
Rename
Delete
types.rb
1.87 KB
Rename
Delete
value.rb
2.87 KB
Rename
Delete
# frozen_string_literal: true module Fiddle class Closure # the C type of the return of the FFI closure attr_reader :ctype # arguments of the FFI closure attr_reader :args # Extends Fiddle::Closure to allow for building the closure in a block class BlockCaller < Fiddle::Closure # == Description # # Construct a new BlockCaller object. # # * +ctype+ is the C type to be returned # * +args+ are passed the callback # * +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. # # == Example # # include Fiddle # # cb = Closure::BlockCaller.new(TYPE_INT, [TYPE_INT]) do |one| # one # end # # func = Function.new(cb, [TYPE_INT], TYPE_INT) # def initialize ctype, args, abi = Fiddle::Function::DEFAULT, &block super(ctype, args, abi) @block = block end # Calls the constructed BlockCaller, with +args+ # # For an example see Fiddle::Closure::BlockCaller.new # def call *args @block.call(*args) end end end end
Save