class Babeltrace2::BTTraceClass

Constants

AddListenerStatus
RemoveListenerStatus

Public Class Methods

from_h(self_component, h) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 352
def self.from_h(self_component, h)
  o = self_component.create_trace_class
  o.assigns_automatic_stream_class_id = h[:assigns_automatic_stream_class_id] unless h[:assigns_automatic_stream_class_id].nil?
  h[:stream_classes].each { |v| BTStreamClass.from_h(self_component, o, v) }
  o.user_attributes = h[:user_attributes] if h[:user_attributes]
  h[:bt_trace_class] = o
  o
end
new(handle = nil, retain: true, auto_release: true, self_component: nil) click to toggle source
Calls superclass method
# File lib/babeltrace2/trace-ir/trace-class.rb, line 102
def initialize(handle = nil, retain: true, auto_release: true,
               self_component: nil)
  if(handle)
    super(handle, retain: retain, auto_release: auto_release)
  else
    handle = Babeltrace2.bt_trace_class_create(self_component)
    raise Babeltrace2.process_error if handle.null?
    super(handle, retain: false)
  end
end

Public Instance Methods

add_destruction_listener(user_func, user_data: nil) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 163
def add_destruction_listener(user_func, user_data: nil)
  user_func = Babeltrace2._wrap_trace_class_destruction_listener_func(user_func)
  id = @handle.to_i
  ptr = FFI::MemoryPointer.new(:uint64)
  res = Babeltrace2.bt_trace_class_add_destruction_listener(@handle, user_func, user_data, ptr)
  raise Babeltrace2.process_error(res) if res != :BT_TRACE_CLASS_ADD_LISTENER_STATUS_OK
  listener_id = ptr.read_uint64
  h = Babeltrace2._callbacks[id][:destruction_listener_funcs]
  if h.nil?
    h = {}
    Babeltrace2._callbacks[id][:destruction_listener_funcs] = h
  end
  h[listener_id] = [user_func, user_data]
  listener_id
end
assigns_automatic_stream_class_id() click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 143
def assigns_automatic_stream_class_id
  Babeltrace2.bt_trace_class_assigns_automatic_stream_class_id(@handle) != BT_FALSE
end
assigns_automatic_stream_class_id=(assigns_automatic_stream_class_id) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 138
def assigns_automatic_stream_class_id=(assigns_automatic_stream_class_id)
  set_assigns_automatic_stream_class_id(assigns_automatic_stream_class_id)
  assigns_automatic_stream_class_id
end
assigns_automatic_stream_class_id?()
create_array(element_field_class, length: nil)
create_array_class(element_field_class, length: nil)
create_bit_array(length)
create_bit_array_class(length)
create_bool()
create_bool_class()
create_double()
create_double_precision_real_class()
create_dynamic_array(element_field_class, length_field_class: nil)
create_dynamic_array_class(element_field_class, length_field_class: nil)
create_field_class_array(element_field_class, length: nil) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 264
def create_field_class_array(element_field_class, length: nil)
  case length
  when Integer
    create_field_class_array_static(element_field_class, length)
  when nil, BTFieldClassIntegerUnsigned
    create_field_class_array_dynamic(element_field_class, length_field_class: length)
  else
    raise "invalid length type"
  end
end
Also aliased as: create_array_class, create_array
create_field_class_array_dynamic(element_field_class, length_field_class: nil) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 256
def create_field_class_array_dynamic(element_field_class, length_field_class: nil)
  BTFieldClassArrayDynamic.new(trace_class: @handle,
                               element_field_class: element_field_class,
                               length_field_class: length_field_class)
end
create_field_class_array_static(element_field_class, length) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 248
def create_field_class_array_static(element_field_class, length)
  BTFieldClassArrayStatic.new(trace_class: @handle,
                              element_field_class: element_field_class,
                              length: length)
end
create_field_class_bit_array(length) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 200
def create_field_class_bit_array(length)
  BTFieldClassBitArray.new(trace_class: @handle, length: length)
end
create_field_class_bool() click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 194
def create_field_class_bool
  BTFieldClassBool.new(trace_class: @handle)
end
Also aliased as: create_bool_class, create_bool
create_field_class_enumeration_signed() click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 236
def create_field_class_enumeration_signed
  BTFieldClassEnumerationSigned.new(trace_class: @handle)
end
create_field_class_enumeration_unsigned() click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 230
def create_field_class_enumeration_unsigned
  BTFieldClassEnumerationUnsigned.new(trace_class: @handle)
end
create_field_class_integer_signed() click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 212
def create_field_class_integer_signed
  BTFieldClassIntegerSigned.new(trace_class: @handle)
end
create_field_class_integer_unsigned() click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 206
def create_field_class_integer_unsigned
  BTFieldClassIntegerUnsigned.new(trace_class: @handle)
end
create_field_class_option(optional_field_class, selector_field_class: nil, ranges: nil) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 320
def create_field_class_option(optional_field_class, selector_field_class: nil, ranges: nil)
  case selector_field_class
  when nil
    create_field_class_option_without_selector(optional_field_class)
  when BTFieldClassBool
    create_field_class_option_with_selector_field_bool(optional_field_class, selector_field_class)
  when BTFieldClassIntegerUnsigned
    create_field_class_option_with_selector_field_integer_unsigned(optional_field_class, selector_field_class, ranges)
  when BTFieldClassIntegerSigned
    create_field_class_option_with_selector_field_integer_signed(optional_field_class, selector_field_class, ranges)
  else
    raise "invalid selector field class"
  end
end
create_field_class_option_with_selector_field_bool(optional_field_class, selector_field_class) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 291
def create_field_class_option_with_selector_field_bool(optional_field_class, selector_field_class)
  BTFieldClassOptionWithSelectorFieldBool.new(
    trace_class: @handle,
    optional_field_class: optional_field_class,
    selector_field_class: selector_field_class)
end
create_field_class_option_with_selector_field_integer_signed(optional_field_class, selector_field_class, ranges) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 310
def create_field_class_option_with_selector_field_integer_signed(optional_field_class, selector_field_class, ranges)
  BTFieldClassOptionWithSelectorFieldIntegerSigned.new(
    trace_class: @handle,
    optional_field_class: optional_field_class,
    selector_field_class: selector_field_class,
    ranges: ranges)
end
create_field_class_option_with_selector_field_integer_unsigned(optional_field_class, selector_field_class, ranges) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 300
def create_field_class_option_with_selector_field_integer_unsigned(optional_field_class, selector_field_class, ranges)
  BTFieldClassOptionWithSelectorFieldIntegerUnsigned.new(
    trace_class: @handle,
    optional_field_class: optional_field_class,
    selector_field_class: selector_field_class,
    ranges: ranges)
end
create_field_class_option_without_selector(optional_field_class) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 283
def create_field_class_option_without_selector(optional_field_class)
  BTFieldClassOptionWithoutSelectorField.new(
    trace_class: @handle,
    optional_field_class: optional_field_class)
end
create_field_class_real_double_precision() click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 224
def create_field_class_real_double_precision
  BTFieldClassRealDoublePrecision.new(trace_class: @handle)
end
create_field_class_real_single_precision() click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 218
def create_field_class_real_single_precision
  BTFieldClassRealSinglePrecision.new(trace_class: @handle)
end
create_field_class_string() click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 242
def create_field_class_string
  BTFieldClassString.new(trace_class: @handle)
end
create_field_class_structure() click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 277
def create_field_class_structure
  BTFieldClassStructure.new(trace_class: @handle)
end
create_field_class_variant(selector_field_class: nil) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 337
def create_field_class_variant(selector_field_class: nil)
  BTFieldClassVariant.new(trace_class: @handle, selector_field_class: selector_field_class)
end
create_option(optional_field_class, selector_field_class: nil, ranges: nil)
create_option_class(optional_field_class, selector_field_class: nil, ranges: nil)
create_option_with_bool_selector_field(optional_field_class, selector_field_class)
create_option_with_bool_selector_field_class(optional_field_class, selector_field_class)
create_option_with_signed_integer_selector_field(optional_field_class, selector_field_class, ranges)
create_option_with_signed_integer_selector_field_class(optional_field_class, selector_field_class, ranges)
create_option_with_unsigned_integer_selector_field(optional_field_class, selector_field_class, ranges)
create_option_with_unsigned_integer_selector_field_class(optional_field_class, selector_field_class, ranges)
create_option_without(optional_field_class)
create_option_without_selector_class(optional_field_class)
create_signed()
create_signed_enum()
create_signed_enumeration_class()
create_signed_integer_class()
create_single()
create_single_precision_real_class()
create_static_array(element_field_class, length)
create_static_array_class(element_field_class, length)
create_stream_class(id: nil) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 186
def create_stream_class(id: nil)
  BTStreamClass.new(trace_class: @handle, id: id)
end
create_string()
create_string_class()
create_structure()
create_structure_class()
create_trace() click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 190
def create_trace
  BTTrace.new(trace_class: @handle)
end
create_unsigned()
create_unsigned_enum()
create_unsigned_enumeration_class()
create_unsigned_integer_class()
create_variant(selector_field_class: nil)
create_variant_class(selector_field_class: nil)
get_stream_class_by_id(id) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 126
def get_stream_class_by_id(id)
  handle = Babeltrace2.bt_trace_class_borrow_stream_class_by_id(@handle, id)
  return nil if handle.null?
  BTStreamClass.new(handle, retain: true)
end
get_stream_class_by_index(index) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 118
def get_stream_class_by_index(index)
  count = get_stream_class_count
  index += count if index < 0
  return nil if index >= count || index < 0
  BTStreamClass.new(
    Babeltrace2.bt_trace_class_borrow_stream_class_by_index(@handle, index))
end
get_stream_class_count() click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 113
def get_stream_class_count
  Babeltrace2.bt_trace_class_get_stream_class_count(@handle)
end
Also aliased as: stream_class_count
get_user_attributes() click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 158
def get_user_attributes
  BTValueMap.new(Babeltrace2.bt_trace_class_borrow_user_attributes(@handle), retain: true)
end
Also aliased as: user_attributes
remove_destruction_listener(listener_id) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 179
def remove_destruction_listener(listener_id)
  res = Babeltrace2.bt_trace_class_remove_destruction_listener(@handle, listener_id)
  raise Babeltrace2.process_error(res) if res != :BT_TRACE_CLASS_REMOVE_LISTENER_STATUS_OK
  Babeltrace2._callbacks[@handle.to_i][:destruction_listener_funcs].delete(listener_id)
  self
end
set_assigns_automatic_stream_class_id(assigns_automatic_stream_class_id) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 132
def set_assigns_automatic_stream_class_id(assigns_automatic_stream_class_id)
  Babeltrace2.bt_trace_class_set_assigns_automatic_stream_class_id(
    @handle, assigns_automatic_stream_class_id ? BT_TRUE : BT_FALSE)
  self
end
set_user_attributes(user_attributes) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 148
def set_user_attributes(user_attributes)
  Babeltrace2.bt_trace_class_set_user_attributes(@handle, BTValue.from_value(user_attributes))
  self
end
stream_class_count()
to_h() click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 343
def to_h
  res = {
    assigns_automatic_stream_class_id: assigns_automatic_stream_class_id?,
    stream_classes: stream_class_count.times.collect { |i| get_stream_class_by_index(i).to_h } }
  user_attributes_value = user_attributes.value
  res[:user_attributes] = user_attributes_value if !user_attributes_value.empty?
  res
end
user_attributes()
Alias for: get_user_attributes
user_attributes=(user_attributes) click to toggle source
# File lib/babeltrace2/trace-ir/trace-class.rb, line 153
def user_attributes=(user_attributes)
  set_user_attributes(user_attributes)
  user_attributes
end