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_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
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