class Babeltrace2::BTFieldClass

Constants

IntegerSigned
IntegerUnsigned
RealDoublePrecision
RealSinglePrecision
TYPE_MAP

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 183
def self.from_h(trace_class, h, stream_class_h = nil)
  Babeltrace2.const_get(snake_case_to_class(h[:type])).from_h(
    trace_class, h, stream_class_h)
end
from_handle(handle, retain: true, auto_release: true) click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 143
def self.from_handle(handle, retain: true, auto_release: true)
  clss = TYPE_MAP[Babeltrace2.bt_field_class_get_type(handle)]
  raise "unsupported field class type" unless clss
  handle = clss[0].new(handle)
  clss[1].new(handle, retain: retain, auto_release: auto_release)
end

Private Class Methods

snake_case_to_class(str) click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 202
def self.snake_case_to_class(str)
  "BTFieldClass" << str.split("_").collect(&:capitalize).join
end

Public Instance Methods

from_h(h) click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 188
def from_h(h)
  self.user_attributes = h[:user_attributes] if h[:user_attributes]
  self
end
get_type() click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 150
def get_type
  Babeltrace2.bt_field_class_get_type(@handle)
end
Also aliased as: type
get_user_attributes() click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 171
def get_user_attributes
  BTValueMap.new(Babeltrace2.bt_field_class_borrow_user_attributes(@handle), retain: true)
end
Also aliased as: user_attributes
set_user_attributes(user_attributes) click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 161
def set_user_attributes(user_attributes)
  Babeltrace2.bt_field_class_set_user_attributes(@handle, BTValue.from_value(user_attributes))
  self
end
to_h() click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 176
def to_h
  res = { type: class_snake_case_name }
  user_attributes_value = user_attributes.value
  res[:user_attributes] = user_attributes_value if !user_attributes_value.empty?
  res
end
type()
Alias for: get_type
type?(other_type)
Alias for: type_is
type_is(other_type) click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 155
def type_is(other_type)
  (type & other_type) == other_type
end
Also aliased as: type_is?, type?
type_is?(other_type)
Alias for: type_is
user_attributes()
Alias for: get_user_attributes
user_attributes=(user_attributes) click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 166
def user_attributes=(user_attributes)
  set_user_attributes(user_attributes)
  user_attributes
end

Private Instance Methods

class_snake_case_name() click to toggle source
# File lib/babeltrace2/trace-ir/field-class.rb, line 195
def class_snake_case_name
  str = self.class.name.gsub(/::/, '')
  str.match(/BTFieldClass(.*)/)[1].
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    gsub(/([a-z\d])([A-Z])/,'\1_\2').downcase
end