Class: Babeltrace2Gen::BTFieldClass::String
- Inherits:
-
Babeltrace2Gen::BTFieldClass
- Object
- Babeltrace2Gen::BTFieldClass
- Babeltrace2Gen::BTFieldClass::String
- Extended by:
- Babeltrace2Gen::BTFromH
- Includes:
- Babeltrace2Gen::BTUtils
- Defined in:
- lib/metababel/bt2_trace_class_generator.rb
Constant Summary
Constants inherited from Babeltrace2Gen::BTFieldClass
Constants included from Babeltrace2Gen::BTPrinter
Babeltrace2Gen::BTPrinter::INDENT_INCREMENT
Instance Attribute Summary
Attributes inherited from Babeltrace2Gen::BTFieldClass
#cast_type, #cast_type_is_struct, #type
Attributes included from Babeltrace2Gen::BTLocator
Instance Method Summary collapse
- #get_declarator(trace_class:, variable:) ⇒ Object
- #get_getter(field:, arg_variables:) ⇒ Object
- #get_setter(field:, arg_variables:) ⇒ Object
Methods included from Babeltrace2Gen::BTFromH
Methods included from Babeltrace2Gen::BTUtils
Methods inherited from Babeltrace2Gen::BTFieldClass
#bt_get_variable, from_h, #initialize
Methods included from Babeltrace2Gen::BTMatch
Methods included from Babeltrace2Gen::BTPrinter
context, #name_sanitized, pr, #scope
Methods included from Babeltrace2Gen::BTLocator
#rec_event_class, #rec_member_class, #rec_stream_class, #rec_trace_class, #resolve_path
Constructor Details
This class inherits a constructor from Babeltrace2Gen::BTFieldClass
Instance Method Details
#get_declarator(trace_class:, variable:) ⇒ Object
627 628 629 |
# File 'lib/metababel/bt2_trace_class_generator.rb', line 627 def get_declarator(trace_class:, variable:) pr "#{variable} = bt_field_class_string_create(#{trace_class});" end |
#get_getter(field:, arg_variables:) ⇒ Object
631 632 633 634 635 636 637 638 639 |
# File 'lib/metababel/bt2_trace_class_generator.rb', line 631 def get_getter(field:, arg_variables:) return super(field: field, arg_variables: arg_variables) unless @cast_type_is_struct bt_func_get = self.class.instance_variable_get(:@bt_func) % 'get' variable = bt_get_variable(arg_variables).name pr '// Dump string data to the struct.' pr "memcpy(&#{variable}, #{bt_func_get}(#{field}), sizeof(#{variable}));" end |
#get_setter(field:, arg_variables:) ⇒ Object
641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 |
# File 'lib/metababel/bt2_trace_class_generator.rb', line 641 def get_setter(field:, arg_variables:) return super(field: field, arg_variables: arg_variables) unless @cast_type_is_struct variable = bt_get_variable(arg_variables).name pr '// Dump data to a temporal string.' pr "char *#{field}_temp = (char *)malloc(sizeof(#{variable}));" pr "assert(#{field}_temp != NULL && \"Out of memory\");" pr "memcpy(#{field}_temp, &#{variable}, sizeof(#{variable}));" pr '' pr '// Set string field with dumped data.' pr "bt_field_string_clear(#{field});" pr "bt_field_string_append_status #{field}_status = bt_field_string_append_with_length(#{field}, #{field}_temp, sizeof(#{variable}));" pr "assert(#{field}_status == BT_FIELD_STRING_APPEND_STATUS_OK && \"Out of memory\");" pr "free(#{field}_temp);" end |