class Babeltrace2::BTFieldClass::Array::Dynamic
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 914 def self.from_h(trace_class, h, stream_class_h = nil) if (stream_class_h && h[:length_field_path]) length_field_class = BTStreamClass.locate_field_class( BTFieldPath.path_from_s_to_h(h[:length_field_path]), stream_class_h) else length_field_class = nil end o = self.new(trace_class: trace_class, element_field_class: BTFieldClass.from_h(trace_class, h[:element_field_class], stream_class_h), length_field_class: length_field_class).from_h(h) h[:bt_field_class] = o o end
new(handle = nil, retain: true, auto_release: true, trace_class: nil, element_field_class: nil, length_field_class: nil)
click to toggle source
Calls superclass method
# File lib/babeltrace2/trace-ir/field-class.rb, line 899 def initialize(handle = nil, retain: true, auto_release: true, trace_class: nil, element_field_class: nil, length_field_class: nil) if handle self.extend(WithLengthField) if Babeltrace2.bt_field_class_get_type(handle) == :BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD super(handle, retain: retain, auto_release: auto_release) else handle = Babeltrace2.bt_field_class_array_dynamic_create( trace_class, element_field_class, length_field_class) raise Babeltrace2.process_error if handle.null? self.extend(WithLengthField) if length_field_class super(handle, retain: false) end end