class Babeltrace2::BTField::Structure

Public Instance Methods

[](member_field)
Alias for: get_member_field
[]=(member_field, value) click to toggle source
# File lib/babeltrace2/trace-ir/field.rb, line 652
def []=(member_field, value)
  get_member_field(member_field).set_value(value)
  value
end
each() { |get_member_field_by_index(i)| ... } click to toggle source
# File lib/babeltrace2/trace-ir/field.rb, line 657
def each
  if block_given?
    get_member_count.times { |i|
      yield get_member_field_by_index(i)
    }
  else
    to_enum(:each)
  end
end
field_names() click to toggle source
# File lib/babeltrace2/trace-ir/field.rb, line 676
def field_names
  klass = get_class
  get_member_count.times.collect { |i| klass.get_member_by_index(i).name }
end
get_member_count() click to toggle source
# File lib/babeltrace2/trace-ir/field.rb, line 620
def get_member_count
  @member_count ||= get_class.get_member_count
end
Also aliased as: member_count
get_member_field(member_field) click to toggle source
# File lib/babeltrace2/trace-ir/field.rb, line 640
def get_member_field(member_field)
  case member_field
  when ::String, Symbol
    get_member_field_by_name(member_field)
  when ::Integer
    get_member_field_by_index(member_field)
  else
    raise TypeError, "wrong type for member field query"
  end
end
Also aliased as: []
get_member_field_by_index(index) click to toggle source
# File lib/babeltrace2/trace-ir/field.rb, line 625
def get_member_field_by_index(index)
  count = get_member_count
  index += count if index < 0
  return nil if index >= count || index < 0
  BTField.from_handle(
    Babeltrace2.bt_field_structure_borrow_member_field_by_index(@handle, index))
end
get_member_field_by_name(name) click to toggle source
# File lib/babeltrace2/trace-ir/field.rb, line 633
def get_member_field_by_name(name)
  name = name.inspect if name.kind_of?(Symbol)
  handle = Babeltrace2.bt_field_structure_borrow_member_field_by_name(@handle, name)
  return nil if handle.null?
  BTField.from_handle(handle)
end
member_count()
Alias for: get_member_count
to_s() click to toggle source
# File lib/babeltrace2/trace-ir/field.rb, line 681
def to_s
  s = "{"
  klass = get_class
  s << get_member_count.times.collect { |i|
    name = klass.get_member_by_index(i).name
    name = name.inspect if name.kind_of?(Symbol)
    "#{name}: #{get_member_field_by_index(i)}"
  }.join(", ")
  s << "}"
end
value() click to toggle source
# File lib/babeltrace2/trace-ir/field.rb, line 667
def value
  v = {}
  klass = get_class
  get_member_count.times { |i|
    v[klass.get_member_by_index(i).name] = get_member_field_by_index(i).value
  }
  v
end