Class: Babeltrace2::BTTraceClass
- Inherits:
-
BTSharedObject
- Object
- BTObject
- BTSharedObject
- Babeltrace2::BTTraceClass
- Defined in:
- lib/babeltrace2/trace-ir/trace-class.rb
Constant Summary collapse
- AddListenerStatus =
BTTraceClassAddListenerStatus
- RemoveListenerStatus =
BTTraceClassRemoveListenerStatus
Instance Attribute Summary
Attributes inherited from BTObject
Class Method Summary collapse
Instance Method Summary collapse
- #add_destruction_listener(user_func, user_data: nil) ⇒ Object
- #assigns_automatic_stream_class_id ⇒ Object (also: #assigns_automatic_stream_class_id?)
- #assigns_automatic_stream_class_id=(assigns_automatic_stream_class_id) ⇒ Object
- #create_field_class_array(element_field_class, length: nil) ⇒ Object (also: #create_array_class, #create_array)
- #create_field_class_array_dynamic(element_field_class, length_field_class: nil) ⇒ Object (also: #create_dynamic_array_class, #create_dynamic_array)
- #create_field_class_array_static(element_field_class, length) ⇒ Object (also: #create_static_array_class, #create_static_array)
- #create_field_class_bit_array(length) ⇒ Object (also: #create_bit_array_class, #create_bit_array)
- #create_field_class_bool ⇒ Object (also: #create_bool_class, #create_bool)
- #create_field_class_enumeration_signed ⇒ Object (also: #create_signed_enumeration_class, #create_signed_enum)
- #create_field_class_enumeration_unsigned ⇒ Object (also: #create_unsigned_enumeration_class, #create_unsigned_enum)
- #create_field_class_integer_signed ⇒ Object (also: #create_signed_integer_class, #create_signed)
- #create_field_class_integer_unsigned ⇒ Object (also: #create_unsigned_integer_class, #create_unsigned)
- #create_field_class_option(optional_field_class, selector_field_class: nil, ranges: nil) ⇒ Object (also: #create_option_class, #create_option)
- #create_field_class_option_with_selector_field_bool(optional_field_class, selector_field_class) ⇒ Object (also: #create_option_with_bool_selector_field_class, #create_option_with_bool_selector_field)
- #create_field_class_option_with_selector_field_integer_signed(optional_field_class, selector_field_class, ranges) ⇒ Object (also: #create_option_with_signed_integer_selector_field_class, #create_option_with_signed_integer_selector_field)
- #create_field_class_option_with_selector_field_integer_unsigned(optional_field_class, selector_field_class, ranges) ⇒ Object (also: #create_option_with_unsigned_integer_selector_field_class, #create_option_with_unsigned_integer_selector_field)
- #create_field_class_option_without_selector(optional_field_class) ⇒ Object (also: #create_option_without_selector_class, #create_option_without)
- #create_field_class_real_double_precision ⇒ Object (also: #create_double_precision_real_class, #create_double)
- #create_field_class_real_single_precision ⇒ Object (also: #create_single_precision_real_class, #create_single)
- #create_field_class_string ⇒ Object (also: #create_string_class, #create_string)
- #create_field_class_structure ⇒ Object (also: #create_structure_class, #create_structure)
- #create_field_class_variant(selector_field_class: nil) ⇒ Object (also: #create_variant_class, #create_variant)
- #create_stream_class(id: nil) ⇒ Object
- #create_trace ⇒ Object
- #get_stream_class_by_id(id) ⇒ Object
- #get_stream_class_by_index(index) ⇒ Object
- #get_stream_class_count ⇒ Object (also: #stream_class_count)
- #get_user_attributes ⇒ Object (also: #user_attributes)
-
#initialize(handle = nil, retain: true, auto_release: true, self_component: nil) ⇒ BTTraceClass
constructor
A new instance of BTTraceClass.
- #remove_destruction_listener(listener_id) ⇒ Object
- #set_assigns_automatic_stream_class_id(assigns_automatic_stream_class_id) ⇒ Object
- #set_user_attributes(user_attributes) ⇒ Object
- #to_h ⇒ Object
- #user_attributes=(user_attributes) ⇒ Object
Methods inherited from BTSharedObject
Methods inherited from BTObject
Constructor Details
#initialize(handle = nil, retain: true, auto_release: true, self_component: nil) ⇒ BTTraceClass
Returns a new instance of BTTraceClass.
102 103 104 105 106 107 108 109 110 111 |
# 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 |
Class Method Details
.from_h(self_component, h) ⇒ Object
352 353 354 355 356 357 358 359 |
# 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 |
Instance Method Details
#add_destruction_listener(user_func, user_data: nil) ⇒ Object
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
# 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 ⇒ Object Also known as: assigns_automatic_stream_class_id?
143 144 145 |
# 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) ⇒ Object
138 139 140 141 |
# 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 |
#create_field_class_array(element_field_class, length: nil) ⇒ Object Also known as: create_array_class, create_array
264 265 266 267 268 269 270 271 272 273 |
# 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 |
#create_field_class_array_dynamic(element_field_class, length_field_class: nil) ⇒ Object Also known as: create_dynamic_array_class, create_dynamic_array
256 257 258 259 260 |
# 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) ⇒ Object Also known as: create_static_array_class, create_static_array
248 249 250 251 252 |
# 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) ⇒ Object Also known as: create_bit_array_class, create_bit_array
200 201 202 |
# 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 ⇒ Object Also known as: create_bool_class, create_bool
194 195 196 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 194 def create_field_class_bool BTFieldClassBool.new(trace_class: @handle) end |
#create_field_class_enumeration_signed ⇒ Object Also known as: create_signed_enumeration_class, create_signed_enum
236 237 238 |
# 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 ⇒ Object Also known as: create_unsigned_enumeration_class, create_unsigned_enum
230 231 232 |
# 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 ⇒ Object Also known as: create_signed_integer_class, create_signed
212 213 214 |
# 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 ⇒ Object Also known as: create_unsigned_integer_class, create_unsigned
206 207 208 |
# 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) ⇒ Object Also known as: create_option_class, create_option
320 321 322 323 324 325 326 327 328 329 330 331 332 333 |
# 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) ⇒ Object Also known as: create_option_with_bool_selector_field_class, create_option_with_bool_selector_field
291 292 293 294 295 296 |
# 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) ⇒ Object Also known as: create_option_with_signed_integer_selector_field_class, create_option_with_signed_integer_selector_field
310 311 312 313 314 315 316 |
# 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) ⇒ Object Also known as: create_option_with_unsigned_integer_selector_field_class, create_option_with_unsigned_integer_selector_field
300 301 302 303 304 305 306 |
# 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) ⇒ Object Also known as: create_option_without_selector_class, create_option_without
283 284 285 286 287 |
# 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 ⇒ Object Also known as: create_double_precision_real_class, create_double
224 225 226 |
# 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 ⇒ Object Also known as: create_single_precision_real_class, create_single
218 219 220 |
# 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 ⇒ Object Also known as: create_string_class, create_string
242 243 244 |
# 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 ⇒ Object Also known as: create_structure_class, create_structure
277 278 279 |
# 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) ⇒ Object Also known as: create_variant_class, create_variant
337 338 339 |
# 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_stream_class(id: nil) ⇒ Object
186 187 188 |
# 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_trace ⇒ Object
190 191 192 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 190 def create_trace BTTrace.new(trace_class: @handle) end |
#get_stream_class_by_id(id) ⇒ Object
126 127 128 129 130 |
# 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) ⇒ Object
118 119 120 121 122 123 124 |
# 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 ⇒ Object Also known as: stream_class_count
113 114 115 |
# 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 |
#get_user_attributes ⇒ Object Also known as: user_attributes
158 159 160 |
# 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 |
#remove_destruction_listener(listener_id) ⇒ Object
179 180 181 182 183 184 |
# 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) ⇒ Object
132 133 134 135 136 |
# 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) ⇒ Object
148 149 150 151 |
# 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 |
#to_h ⇒ Object
343 344 345 346 347 348 349 350 |
# 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=(user_attributes) ⇒ Object
153 154 155 156 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 153 def user_attributes=(user_attributes) set_user_attributes(user_attributes) user_attributes end |