class GirFFI::Builders::CallbackBuilder
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.
Public Instance Methods
argument_ffi_types()
click to toggle source
# File lib/gir_ffi/builders/callback_builder.rb, line 23 def argument_ffi_types @argument_ffi_types ||= @info.argument_ffi_types end
mapping_method_definition()
click to toggle source
# File lib/gir_ffi/builders/callback_builder.rb, line 19 def mapping_method_definition MappingMethodBuilder.for_callback(info).method_definition end
return_ffi_type()
click to toggle source
# File lib/gir_ffi/builders/callback_builder.rb, line 27 def return_ffi_type @return_ffi_type ||= @info.return_ffi_type end
setup_class()
click to toggle source
# File lib/gir_ffi/builders/callback_builder.rb, line 13 def setup_class setup_callback setup_constants klass.class_eval mapping_method_definition, __FILE__, __LINE__ end
Private Instance Methods
callback_sym()
click to toggle source
# File lib/gir_ffi/builders/callback_builder.rb, line 55 def callback_sym @classname.to_sym end
container_module()
click to toggle source
# File lib/gir_ffi/builders/callback_builder.rb, line 43 def container_module @container_module ||= if @info.container type_info = @info.container field_info = type_info.container container_class_info = field_info.container namespace_module.const_get container_class_info.safe_name else namespace_module end end
klass()
click to toggle source
# File lib/gir_ffi/builders/callback_builder.rb, line 39 def klass @klass ||= get_or_define_class container_module, @classname, CallbackBase end
setup_callback()
click to toggle source
# File lib/gir_ffi/builders/callback_builder.rb, line 33 def setup_callback optionally_define_constant klass, :Callback do lib.callback callback_sym, argument_ffi_types, return_ffi_type end end