class Babeltrace2::BTFieldClass::Structure
Public Class Methods
from_h(trace_class, h, stream_class_h = nil)
click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 1100 def self.from_h(trace_class, h, stream_class_h = nil) o = self.new(trace_class: trace_class).from_h(h) h[:members].each_with_index { |v, i| o.append_member(v[:name], BTFieldClass.from_h(trace_class, v[:field_class], stream_class_h)) o.get_member_by_index(i).from_h(v) } h[:bt_field_class] = o o end
new(handle = nil, retain: true, auto_release: true, trace_class: nil)
click to toggle source
Calls superclass method
# File lib/babeltrace2/trace-ir/field-class.rb, line 1042 def initialize(handle = nil, retain: true, auto_release: true, trace_class: nil) if handle super(handle, retain: retain, auto_release: auto_release) else handle = Babeltrace2.bt_field_class_structure_create(trace_class) raise Babeltrace2.process_error if handle.null? super(handle, retain: false) end end
Public Instance Methods
append_member(name, member_field_class)
click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 1053 def append_member(name, member_field_class) name = name.inspect if name.kind_of?(Symbol) res = Babeltrace2.bt_field_class_structure_append_member( @handle, name, member_field_class) raise Babeltrace2.process_error(res) if res != :BT_FIELD_CLASS_STRUCTURE_APPEND_MEMBER_STATUS_OK self end
Also aliased as: append
get_member(member)
click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 1082 def get_member(member) case member when ::String, ::Symbol get_member_by_name(member) when ::Integer get_member_by_index(member) else raise TypeError, "wrong type for member query" end end
Also aliased as: []
get_member_by_index(index)
click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 1067 def get_member_by_index(index) count = get_member_count index += count if index < 0 return nil if index >= count || index < 0 BTFieldClassStructureMember.new( Babeltrace2.bt_field_class_structure_borrow_member_by_index(@handle, index)) end
get_member_by_name(name)
click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 1075 def get_member_by_name(name) name = name.inspect if name.kind_of?(Symbol) handle = Babeltrace2.bt_field_class_structure_borrow_member_by_name(@handle, name) return nil if handle.null? BTFieldClassStructureMember.new(handle) end
get_member_count()
click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 1062 def get_member_count Babeltrace2.bt_field_class_structure_get_member_count(@handle) end
Also aliased as: member_count
to_h()
click to toggle source
Calls superclass method
Babeltrace2::BTFieldClass#to_h
# File lib/babeltrace2/trace-ir/field-class.rb, line 1094 def to_h res = super res[:members] = member_count.times.collect { |i| get_member_by_index(i).to_h } res end