class GirFFI::Builders::BaseArgumentBuilder
Abstract parent class of the argument building classes. These classes are used by FunctionBuilder to create the code that processes each argument before and after the actual function call.
Constants
- KEYWORDS
Attributes
arginfo[R]
array_arg[RW]
length_arg[RW]
Public Class Methods
new(var_gen, arginfo)
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 20 def initialize(var_gen, arginfo) @var_gen = var_gen @arginfo = arginfo @length_arg = nil @array_arg = nil @is_user_data = false @is_destroy_notifier = false end
Public Instance Methods
argument_class_name()
click to toggle source
TODO: Use class rather than class name
# File lib/gir_ffi/builders/base_argument_builder.rb, line 46 def argument_class_name type_info.argument_class_name end
array_length_idx()
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 50 def array_length_idx type_info.array_length end
array_length_parameter?()
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 72 def array_length_parameter? @array_arg end
call_argument_name()
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 100 def call_argument_name @call_argument_name ||= new_variable end
closure_idx()
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 54 def closure_idx arginfo.closure end
destroy_idx()
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 58 def destroy_idx arginfo.destroy end
destroy_notifier?()
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 80 def destroy_notifier? @is_destroy_notifier end
direction()
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 33 def direction @direction ||= arginfo.direction end
helper_argument?()
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 84 def helper_argument? array_length_parameter? || user_data? || destroy_notifier? end
mark_as_destroy_notifier(callback_builder)
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 67 def mark_as_destroy_notifier(callback_builder) @is_destroy_notifier = true @related_callback_builder = callback_builder end
mark_as_user_data(callback_builder)
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 62 def mark_as_user_data(callback_builder) @is_user_data = true @related_callback_builder = callback_builder end
name()
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 29 def name @name ||= safe(arginfo.name) end
new_variable()
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 104 def new_variable @var_gen.new_var end
ownership_transfer()
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 88 def ownership_transfer arginfo.ownership_transfer end
safe(name)
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 92 def safe(name) if KEYWORDS.include? name "#{name}_" else name end end
specialized_type_tag()
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 41 def specialized_type_tag type_info.flattened_tag end
type_info()
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 37 def type_info @type_info ||= arginfo.argument_type end
user_data?()
click to toggle source
# File lib/gir_ffi/builders/base_argument_builder.rb, line 76 def user_data? @is_user_data end