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
353 354 355 356 357 358 359 360 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 353 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
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 164 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
265 266 267 268 269 270 271 272 273 274 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 265 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
257 258 259 260 261 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 257 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
249 250 251 252 253 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 249 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
201 202 203 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 201 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
195 196 197 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 195 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
237 238 239 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 237 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
231 232 233 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 231 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
213 214 215 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 213 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
207 208 209 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 207 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
321 322 323 324 325 326 327 328 329 330 331 332 333 334 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 321 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
292 293 294 295 296 297 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 292 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
311 312 313 314 315 316 317 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 311 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
301 302 303 304 305 306 307 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 301 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
284 285 286 287 288 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 284 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
225 226 227 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 225 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
219 220 221 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 219 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
243 244 245 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 243 def create_field_class_string BTFieldClassString.new(trace_class: @handle) end |
#create_field_class_structure ⇒ Object Also known as: create_structure_class, create_structure
278 279 280 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 278 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
338 339 340 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 338 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
187 188 189 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 187 def create_stream_class(id: nil) BTStreamClass.new(trace_class: @handle, id: id) end |
#create_trace ⇒ Object
191 192 193 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 191 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
159 160 161 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 159 def get_user_attributes BTValueMap.new(Babeltrace2.bt_trace_class_borrow_user_attributes(@handle), retain: true) end |
#remove_destruction_listener(listener_id) ⇒ Object
180 181 182 183 184 185 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 180 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 152 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 148 def set_user_attributes(user_attributes) bt_user_attributes = BTValue.from_value(user_attributes) Babeltrace2.bt_trace_class_set_user_attributes(@handle, bt_user_attributes) self end |
#to_h ⇒ Object
344 345 346 347 348 349 350 351 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 344 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
154 155 156 157 |
# File 'lib/babeltrace2/trace-ir/trace-class.rb', line 154 def user_attributes=(user_attributes) set_user_attributes(user_attributes) user_attributes end |