Sha256: e52f4ebbf2797f3067ede83da0e2f90b6a8146a5afbb939f0fa7e21a44c217c7
Contents?: true
Size: 1.26 KB
Versions: 3
Compression:
Stored size: 1.26 KB
Contents
require 'gir_ffi/builders/base_type_builder' require 'gir_ffi/builders/mapping_method_builder' require 'gir_ffi/callback_base' module GirFFI module Builders # Implements the creation of a callback type. The type will be # attached to the appropriate namespace module, and will be defined # as a callback for FFI. class CallbackBuilder < BaseTypeBuilder def setup_class setup_callback setup_constants klass.class_eval mapping_method_definition end def setup_callback optionally_define_constant klass, :Callback do lib.callback callback_sym, argument_ffi_types, return_ffi_type end end def klass @klass ||= get_or_define_class namespace_module, @classname, CallbackBase end def mapping_method_definition return_value_info = ReturnValueInfo.new info.return_type MappingMethodBuilder.for_callback(info.args, return_value_info).method_definition end def callback_sym @classname.to_sym end def argument_ffi_types @argument_ffi_types ||= @info.argument_ffi_types end def return_ffi_type @return_ffi_type ||= @info.return_ffi_type end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
gir_ffi-0.7.8 | lib/gir_ffi/builders/callback_builder.rb |
gir_ffi-0.7.7 | lib/gir_ffi/builders/callback_builder.rb |
gir_ffi-0.7.6 | lib/gir_ffi/builders/callback_builder.rb |