Class: Babeltrace2Gen::BTFieldClass::Enumeration::Mapping
- Inherits:
-
Object
- Object
- Babeltrace2Gen::BTFieldClass::Enumeration::Mapping
- Extended by:
- Babeltrace2Gen::BTFromH
- Includes:
- Babeltrace2Gen::BTPrinter, Babeltrace2Gen::BTUtils
- Defined in:
- lib/metababel/bt2_trace_class_generator.rb
Direct Known Subclasses
Constant Summary
Constants included from Babeltrace2Gen::BTPrinter
Babeltrace2Gen::BTPrinter::INDENT_INCREMENT
Instance Method Summary collapse
- #get_declarator(field_class:) ⇒ Object
-
#initialize(parent:, label:, integer_range_set:) ⇒ Mapping
constructor
A new instance of Mapping.
Methods included from Babeltrace2Gen::BTFromH
Methods included from Babeltrace2Gen::BTPrinter
context, #name_sanitized, pr, #scope
Methods included from Babeltrace2Gen::BTUtils
Constructor Details
#initialize(parent:, label:, integer_range_set:) ⇒ Mapping
Returns a new instance of Mapping.
560 561 562 563 564 565 |
# File 'lib/metababel/bt2_trace_class_generator.rb', line 560 def initialize(parent:, label:, integer_range_set:) @parent = parent @label = label # Form [ [lower,upper], ...] @ranges = integer_range_set end |
Instance Method Details
#get_declarator(field_class:) ⇒ Object
567 568 569 570 571 572 573 574 575 576 577 578 |
# File 'lib/metababel/bt2_trace_class_generator.rb', line 567 def get_declarator(field_class:) bt_type_internal = self.class.instance_variable_get(:@bt_type_internal) scope do pr "bt_integer_range_set_#{bt_type_internal} *#{field_class}_range;" pr "#{field_class}_range = bt_integer_range_set_#{bt_type_internal}_create();" @ranges.each do |l, u| pr "bt_integer_range_set_#{bt_type_internal}_add_range(#{field_class}_range, #{l}, #{u});" end pr "bt_field_class_enumeration_#{bt_type_internal}_add_mapping(#{field_class}, \"#{@label}\", #{field_class}_range);" pr "bt_integer_range_set_#{bt_type_internal}_put_ref(#{field_class}_range);" end end |