class Babeltrace2::BTTrace

Constants

AddListenerStatus
RemoveListenerStatus
SetEnvironmentEntryStatus
SetNameStatus

Public Class Methods

new(handle = nil, retain: true, auto_release: true, trace_class: nil) click to toggle source
Calls superclass method
# File lib/babeltrace2/trace-ir/trace.rb, line 156
def initialize(handle = nil, retain: true, auto_release: true,
               trace_class: nil)
  if(handle)
    super(handle, retain: retain, auto_release: auto_release)
  else
    handle = Babeltrace2.bt_trace_create(trace_class)
    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.rb, line 298
def add_destruction_listener(user_func, user_data: nil)
  user_func = Babeltrace2._wrap_trace_destruction_listener_func(user_func)
  id = @handle.to_i
  ptr = FFI::MemoryPointer.new(:uint64)
  res = Babeltrace2.bt_trace_add_destruction_listener(@handle, user_func, user_data, ptr)
  raise Babeltrace2.process_error(res) if res != :BT_TRACE_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
environment()
Alias for: get_environment
environment=(hash) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 278
def environment=(hash)
  set_environement(hash)
  hash
end
environment_entry_count()
get_class() click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 167
def get_class
  BTTraceClass.new(
    Babeltrace2.bt_trace_borrow_class(@handle), retain: true)
end
get_environement_entry_by_index(index) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 239
def get_environement_entry_by_index(index)
  return nil if index >= get_environment_entry_count
  ptr1 = FFI::MemoryPointer.new(:pointer)
  ptr2 = FFI::MemoryPointer.new(:pointer)
  Babeltrace2.bt_trace_borrow_environment_entry_by_index_const(
    @handle, index, ptr1, ptr2)
  name = ptr1.read_pointer.read_string
  value = BTValue.from_handle(BTValueHandle.new(ptr2.read_pointer))
  return [name, value]
end
get_environment() click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 257
def get_environment
  get_environment_entry_count.times.collect { |index|
    get_environement_entry_by_index(index)
  }.collect { |name, value| [name, value.value] }.to_h
end
Also aliased as: environment
get_environment_entry_count() click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 234
def get_environment_entry_count
  Babeltrace2.bt_trace_get_environment_entry_count(@handle)
end
Also aliased as: environment_entry_count
get_environment_entry_value_by_name(name) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 250
def get_environment_entry_value_by_name(name)
  handle = Babeltrace2.bt_trace_borrow_environment_entry_value_by_name_const(
             @handle, name)
  return nil if handle.null?
  BTValue.from_handle(handle)
end
get_name() click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 200
def get_name
  Babeltrace2.bt_trace_get_name(@handle)
end
Also aliased as: name
get_stream_by_id(id) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 183
def get_stream_by_id(id)
  handle = Babeltrace2.bt_trace_borrow_stream_by_id(@handle, id)
  return nil if handle.null?
  BTStream.new(handle, retain: true)
end
get_stream_by_index(index) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 177
def get_stream_by_index(index)
  return nil if index >= get_stream_count
  BTStream.new(
    Babeltrace2.bt_trace_borrow_stream_by_index(@handle, index), retain: true)
end
get_stream_count() click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 172
def get_stream_count
  Babeltrace2.bt_trace_get_stream_count(@handle)
end
Also aliased as: stream_count
get_user_attributes() click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 293
def get_user_attributes
  BTValueMap.new(Babeltrace2.bt_trace_borrow_user_attributes(@handle), retain: true)
end
Also aliased as: user_attributes
get_uuid() click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 215
def get_uuid
  uuid = Babeltrace2.bt_trace_get_uuid(@handle)
  return nil if uuid.null?
  uuid
end
Also aliased as: uuid
name()
Alias for: get_name
name=(name) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 195
def name=(name)
  set_name(name)
  name
end
remove_destruction_listener(listener_id) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 314
def remove_destruction_listener(listener_id)
  res = Babeltrace2.bt_trace_remove_destruction_listener(@handle, listener_id)
  raise Babeltrace2.process_error(res) if res != :BT_TRACE_REMOVE_LISTENER_STATUS_OK
  Babeltrace2._callbacks[@handle.to_i][:destruction_listener_funcs].delete(listener_id)
  self
end
set_environement(hash) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 264
def set_environement(hash)
  hash.each { |k, v|
    case v
    when String
      set_environment_entry_string(k, v)
    when Integer
      set_environment_entry_integer(k, v)
    else
      raise "invalid value type"
    end
  }
  self
end
set_environment_entry_integer(name, value) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 222
def set_environment_entry_integer(name, value)
  res = Babeltrace2.bt_trace_set_environment_entry_integer(@handle, name, value)
  raise Babeltrace2.process_error(res) if res != :BT_TRACE_SET_ENVIRONMENT_ENTRY_STATUS_OK
  self
end
set_environment_entry_string(name, value) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 228
def set_environment_entry_string(name, value)
  res = Babeltrace2.bt_trace_set_environment_entry_string(@handle, name, value)
  raise Babeltrace2.process_error(res) if res != :BT_TRACE_SET_ENVIRONMENT_ENTRY_STATUS_OK
  self
end
set_name(name) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 189
def set_name(name)
  res = Babeltrace2.bt_trace_set_name(@handle, name)
  raise Babeltrace2.process_error(res) if res != :BT_TRACE_SET_NAME_STATUS_OK
  self
end
set_user_attributes(user_attributes) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 283
def set_user_attributes(user_attributes)
  Babeltrace2.bt_trace_set_user_attributes(@handle, BTValue.from_value(user_attributes))
  self
end
set_uuid(uuid) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 205
def set_uuid(uuid)
  Babeltrace2.bt_trace_set_uuid(@handle, uuid)
  self
end
stream_count()
Alias for: get_stream_count
user_attributes()
Alias for: get_user_attributes
user_attributes=(user_attributes) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 288
def user_attributes=(user_attributes)
  set_user_attributes(user_attributes)
  user_attributes
end
uuid()
Alias for: get_uuid
uuid=(uuid) click to toggle source
# File lib/babeltrace2/trace-ir/trace.rb, line 210
def uuid=(uuid)
  set_uuid(uuid)
  uuid
end