Class: GirFFI::Builders::FieldBuilder::GetterArgumentBuilder
Overview
Convertor for fields for field getters. Used when building getter methods.
Constant Summary
BaseArgumentBuilder::KEYWORDS
Instance Attribute Summary
#arginfo, #array_arg, #length_arg
Instance Method Summary
collapse
#argument_class_name, #array_length_parameter?, #call_argument_name, #closure=, #closure?, #closure_idx, #destroy_idx, #destroy_notifier?, #direction, #helper_argument?, #mark_as_destroy_notifier, #name, #new_variable, #ownership_transfer, #safe, #specialized_type_tag, #type_info
Constructor Details
#initialize(var_gen, field_argument_info, field_info, array_length_idx: -1)) ⇒ GetterArgumentBuilder
Returns a new instance of GetterArgumentBuilder.
12
13
14
15
16
17
18
|
# File 'lib/gir_ffi/builders/field_builder.rb', line 12
def initialize(var_gen, field_argument_info, field_info,
array_length_idx: -1)
super(var_gen, field_argument_info)
@field_info = field_info
@length_arg = NullArgumentBuilder.new
@array_length_idx = array_length_idx
end
|
Instance Method Details
#array_length_idx ⇒ Object
52
53
54
|
# File 'lib/gir_ffi/builders/field_builder.rb', line 52
def array_length_idx
@array_length_idx
end
|
#capture_variable_name ⇒ Object
28
29
30
|
# File 'lib/gir_ffi/builders/field_builder.rb', line 28
def capture_variable_name
nil
end
|
#post_conversion ⇒ Object
44
45
46
47
48
49
50
|
# File 'lib/gir_ffi/builders/field_builder.rb', line 44
def post_conversion
if has_post_conversion?
["#{post_converted_name} = #{post_convertor.conversion}"]
else
[]
end
end
|
#post_converted_name ⇒ Object
32
33
34
35
36
37
38
|
# File 'lib/gir_ffi/builders/field_builder.rb', line 32
def post_converted_name
@post_converted_name ||= if has_post_conversion?
new_variable
else
bare_value
end
end
|
#pre_conversion ⇒ Object
20
21
22
23
24
25
26
|
# File 'lib/gir_ffi/builders/field_builder.rb', line 20
def pre_conversion
[
"#{field_ptr} = @struct.to_ptr + #{field_offset}",
"#{typed_ptr} = GirFFI::InOutPointer.new(#{field_type_tag}, #{field_ptr})",
"#{bare_value} = #{typed_ptr}.to_value"
]
end
|
#return_value_name ⇒ Object
40
41
42
|
# File 'lib/gir_ffi/builders/field_builder.rb', line 40
def return_value_name
post_converted_name
end
|