Class: Babeltrace2::BTQueryExecutor

Inherits:
BTSharedObject show all
Defined in:
lib/babeltrace2/graph/query-executor.rb

Direct Known Subclasses

BTPrivateQueryExecutor

Constant Summary collapse

QueryStatus =
BTQueryExecutorQueryStatus
SetLoggingLevelStatus =
BTQueryExecutorSetLoggingLevelStatus
AddInterrupterStatus =
BTQueryExecutorAddInterrupterStatus

Instance Attribute Summary

Attributes inherited from BTObject

#handle

Instance Method Summary collapse

Methods inherited from BTSharedObject

inherited

Methods inherited from BTObject

#==, #to_ptr

Constructor Details

#initialize(handle = nil, retain: true, auto_release: true, component_class: nil, object_name: nil, params: nil, method_data: nil) ⇒ BTQueryExecutor

Returns a new instance of BTQueryExecutor.



85
86
87
88
89
90
91
92
93
94
95
# File 'lib/babeltrace2/graph/query-executor.rb', line 85

def initialize(handle = nil, retain: true, auto_release: true,
               component_class: nil, object_name: nil, params: nil, method_data: nil)
  if handle
    super(handle, retain: retain, auto_release: auto_release)
  else
    handle = Babeltrace2.bt_query_executor_create_with_method_data(
               component_class, object_name, BTValue.from_value(params), method_data)
    raise Babeltrace2.process_error if handle.null?
    super(handle)
  end
end

Instance Method Details

#add_interrupter(interrupter) ⇒ Object



124
125
126
127
128
# File 'lib/babeltrace2/graph/query-executor.rb', line 124

def add_interrupter(interrupter)
  res = Babeltrace2.bt_query_executor_add_interrupter(@handle, interrupter)
  raise Babeltrace2.process_error(res) if res != :BT_QUERY_EXECUTOR_ADD_INTERRUPTER_STATUS_OK
  self
end

#get_default_interrupterObject Also known as: default_interrupter



130
131
132
133
# File 'lib/babeltrace2/graph/query-executor.rb', line 130

def get_default_interrupter
  handle = Babeltrace2.bt_query_executor_borrow_default_interrupter(@handle)
  BTInterrupter.new(handle, retain: true)
end

#get_logging_levelObject Also known as: logging_level



119
120
121
# File 'lib/babeltrace2/graph/query-executor.rb', line 119

def get_logging_level
  Babeltrace2.bt_query_executor_get_logging_level(@handle)
end

#is_interruptedObject Also known as: interrupted?



136
137
138
# File 'lib/babeltrace2/graph/query-executor.rb', line 136

def is_interrupted
  Babeltrace2.bt_query_executor_is_interrupted(@handle) != BT_FALSE
end

#logging_level=(logging_level) ⇒ Object



113
114
115
116
117
# File 'lib/babeltrace2/graph/query-executor.rb', line 113

def logging_level=(logging_level)
  res = Babeltrace2.bt_query_executor_set_logging_level(@handle, logging_level)
  raise Babeltrace2.process_error(res) if res != :BT_QUERY_EXECUTOR_SET_LOGGING_LEVEL_STATUS_OK
  return logging_level
end

#queryObject



97
98
99
100
101
102
103
104
105
# File 'lib/babeltrace2/graph/query-executor.rb', line 97

def query
  ptr = FFI::MemoryPointer.new(:pointer)
  while ((res = Babeltrace2.bt_query_executor_query(@handle, ptr)) == :BT_QUERY_EXECUTOR_QUERY_STATUS_AGAIN)
    raise "interrupted by user" if interrupted?
    sleep BT_SLEEP_TIME
  end
  raise Babeltrace2.process_error(res) if res != :BT_QUERY_EXECUTOR_QUERY_STATUS_OK
  BTValue.from_handle(BTValueHandle.new(ptr.read_pointer), retain: false)
end

#set_logging_level(logging_level) ⇒ Object



107
108
109
110
111
# File 'lib/babeltrace2/graph/query-executor.rb', line 107

def set_logging_level(logging_level)
  res = Babeltrace2.bt_query_executor_set_logging_level(@handle, logging_level)
  raise Babeltrace2.process_error(res) if res != :BT_QUERY_EXECUTOR_SET_LOGGING_LEVEL_STATUS_OK
  self
end