Module: Babeltrace2Gen::BTLocator

Included in:
BTEventClass, BTFieldClass, BTMemberClass, BTStreamClass, BTTraceClass
Defined in:
lib/metababel/bt2_stream_classes_generator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#parentObject (readonly)

Returns the value of attribute parent.



29
30
31
# File 'lib/metababel/bt2_stream_classes_generator.rb', line 29

def parent
  @parent
end

#variableObject (readonly)

Returns the value of attribute variable.



29
30
31
# File 'lib/metababel/bt2_stream_classes_generator.rb', line 29

def variable
  @variable
end

Instance Method Details

#rec_event_classObject



35
36
37
# File 'lib/metababel/bt2_stream_classes_generator.rb', line 35

def rec_event_class
  is_a?(Babeltrace2Gen::BTEventClass) ? self : @parent.rec_event_class
end

#rec_menber_classObject



39
40
41
# File 'lib/metababel/bt2_stream_classes_generator.rb', line 39

def rec_menber_class
  is_a?(Babeltrace2Gen::BTMemberClass) ? self : @parent.rec_menber_class
end

#rec_stream_classObject



31
32
33
# File 'lib/metababel/bt2_stream_classes_generator.rb', line 31

def rec_stream_class
  is_a?(Babeltrace2Gen::BTStreamClass) ? self : @parent.rec_stream_class
end

#resolve_path(path) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/metababel/bt2_stream_classes_generator.rb', line 43

def resolve_path(path)
  root, id = path.match(/^(PACKET_CONTEXT|EVENT_COMMON_CONTEXT|EVENT_SPECIFIC_CONTEXT|EVENT_PAYLOAD)\["?(.+)?"\]/).captures
  field_class =
    case root
    when 'PACKET_CONTEXT'
      rec_stream_class.packet_context_field_class
    when 'EVENT_COMMON_CONTEXT'
      rec_stream_class.event_common_context_field_class
    when 'EVENT_SPECIFIC_CONTEXT'
      rec_event_class.specific_context_field_class
    when 'EVENT_PAYLOAD'
      rec_event_class.payload_field_class
    else
      raise "invalid path #{path}"
    end
  [field_class, id]
end