Class: Babeltrace2Gen::BTMemberClass

Inherits:
Object
  • Object
show all
Includes:
BTLocator, BTMatch
Defined in:
lib/metababel/bt2_trace_class_generator.rb

Constant Summary collapse

BT_MATCH_ATTRS =
%i[name field_class]

Instance Attribute Summary collapse

Attributes included from BTLocator

#variable

Instance Method Summary collapse

Methods included from BTLocator

#rec_event_class, #rec_member_class, #rec_stream_class, #rec_trace_class, #resolve_path

Methods included from BTMatch

#match?

Constructor Details

#initialize(parent:, field_class: nil, name: nil) ⇒ BTMemberClass

Returns a new instance of BTMemberClass.

Raises:

  • (ArgumentError)


795
796
797
798
799
800
801
802
803
# File 'lib/metababel/bt2_trace_class_generator.rb', line 795

def initialize(parent:, field_class: nil, name: nil)
  @parent = parent
  is_match_model = parent.rec_trace_class.match
  raise ArgumentError, 'missing keyword: :name' unless name || is_match_model
  raise ArgumentError, 'missing keyword: :field_class' unless field_class || is_match_model

  @name = name # Name can be nil in the matching callbacks
  @field_class = BTFieldClass.from_h(self, field_class || {})
end

Instance Attribute Details

#field_classObject (readonly)

Returns the value of attribute field_class.



793
794
795
# File 'lib/metababel/bt2_trace_class_generator.rb', line 793

def field_class
  @field_class
end

#nameObject (readonly)

Returns the value of attribute name.



793
794
795
# File 'lib/metababel/bt2_trace_class_generator.rb', line 793

def name
  @name
end

#parentObject (readonly)

Returns the value of attribute parent.



793
794
795
# File 'lib/metababel/bt2_trace_class_generator.rb', line 793

def parent
  @parent
end

Instance Method Details

#bt_get_variableObject



805
806
807
# File 'lib/metababel/bt2_trace_class_generator.rb', line 805

def bt_get_variable
  @field_class.bt_get_variable({})
end