class Babeltrace2::BTMessageIterator

Constants

CanSeekBeginningStatus
CanSeekNSFromOriginStatus
CreateFromMessageIteratorStatus
CreateFromSinkComponentStatus
NextStatus
SeekBeginningStatus

Public Class Methods

create_from_message_iterator(self_message_iterator, port) click to toggle source
# File lib/babeltrace2/graph/message-iterator.rb, line 165
def self.create_from_message_iterator(self_message_iterator, port)
  ptr = FFI::MemoryPointer.new(:pointer)
  res = Babeltrace2.bt_message_iterator_create_from_message_iterator(self_message_iterator, port, ptr)
  raise Babeltrace2.process_error(res) if res != :BT_MESSAGE_ITERATOR_CREATE_FROM_MESSAGE_ITERATOR_STATUS_OK
  BTMessageIterator.new(BTMessageIteratorHandle.new(ptr.read_pointer), retain: false)
end
create_from_sink_component(self_component_sink, port) click to toggle source
# File lib/babeltrace2/graph/message-iterator.rb, line 176
def self.create_from_sink_component(self_component_sink, port)
  ptr = FFI::MemoryPointer.new(:pointer)
  res = Babeltrace2.bt_message_iterator_create_from_sink_component(self_component_sink, port, ptr)
  raise Babeltrace2.process_error(res) if res != :BT_MESSAGE_ITERATOR_CREATE_FROM_SINK_COMPONENT_STATUS_OK
  BTMessageIterator.new(BTMessageIteratorHandle.new(ptr.read_pointer), retain: false)
end

Public Instance Methods

can_seek_beginning() click to toggle source
# File lib/babeltrace2/graph/message-iterator.rb, line 210
def can_seek_beginning
  ptr = FFI::MemoryPointer.new(:int)
  while ((res = Babeltrace2.bt_message_iterator_can_seek_beginning(@handle, ptr)) == :BT_MESSAGE_ITERATOR_CAN_SEEK_BEGINNING_STATUS_AGAIN)
    sleep BT_SLEEP_TIME
  end
  raise Babeltrace2.process_error(res) if res != :BT_MESSAGE_ITERATOR_CAN_SEEK_BEGINNING_STATUS_OK
  ptr.read_int != BT_FALSE
end
Also aliased as: can_seek_beginning?
can_seek_beginning?()
Alias for: can_seek_beginning
can_seek_forward() click to toggle source
# File lib/babeltrace2/graph/message-iterator.rb, line 248
def can_seek_forward
  Babeltrace2.bt_message_iterator_can_seek_forward(@handle) != BT_FALSE
end
Also aliased as: can_seek_forward?
can_seek_forward?()
Alias for: can_seek_forward
can_seek_ns_from_origin(ns) click to toggle source
# File lib/babeltrace2/graph/message-iterator.rb, line 229
def can_seek_ns_from_origin(ns)
  ptr = FFI::MemoryPointer.new(:int)
  while ((res = Babeltrace2.bt_message_iterator_can_seek_ns_from_origin(@handle, ns, ptr)) == :BT_MESSAGE_ITERATOR_CAN_SEEK_NS_FROM_ORIGIN_STATUS_AGAIN)
    sleep BT_SLEEP_TIME
  end
  raise Babeltrace2.process_error(res) if res != :BT_MESSAGE_ITERATOR_CAN_SEEK_NS_FROM_ORIGIN_STATUS_OK
  ptr.read_int != BT_FALSE
end
Also aliased as: can_seek_ns_from_origin?
can_seek_ns_from_origin?(ns)
component()
Alias for: get_component
create_message_iterator(port) click to toggle source
# File lib/babeltrace2/graph/message-iterator.rb, line 172
def create_message_iterator(port)
  BTMessageIterator.create_from_message_iterator(self, port)
end
get_component() click to toggle source
# File lib/babeltrace2/graph/message-iterator.rb, line 183
def get_component
  handle = Babeltrace2.bt_message_iterator_borrow_component(@handle)
  BTComponent.from_handle(handle)
end
Also aliased as: component
next_messages() click to toggle source
# File lib/babeltrace2/graph/message-iterator.rb, line 189
def next_messages
  ptr_messages = FFI::MemoryPointer.new(:pointer)
  ptr_count = FFI::MemoryPointer.new(:uint64)
  while ((res = Babeltrace2.bt_message_iterator_next(@handle, ptr_messages, ptr_count)) == :BT_MESSAGE_ITERATOR_NEXT_STATUS_AGAIN)
    puts "waiting"
    sleep BT_SLEEP_TIME
  end
  case res
  when :BT_MESSAGE_ITERATOR_NEXT_STATUS_OK
    count = ptr_count.read_uint64
    messages = ptr_messages.read_pointer
    return messages.read_array_of_pointer(count).collect { |h|
      BTMessage.from_handle(BTMessageHandle.new(h), retain: false)
    }
  when :BT_MESSAGE_ITERATOR_NEXT_STATUS_END
    raise StopIteration
  else
    raise Babeltrace2.process_error(res)
  end
end
seek_beginning() click to toggle source
# File lib/babeltrace2/graph/message-iterator.rb, line 220
def seek_beginning
  raise "invalid operation" unless can_seek_beginning?
  while ((res = Babeltrace2.bt_message_iterator_seek_beginning(@handle)) == :BT_MESSAGE_ITERATOR_SEEK_BEGINNING_STATUS_AGAIN)
    sleep BT_SLEEP_TIME
  end
  raise Babeltrace2.process_error(res) if res != :BT_MESSAGE_ITERATOR_SEEK_BEGINNING_STATUS_OK
  self
end
seek_ns_from_origin(ns) click to toggle source
# File lib/babeltrace2/graph/message-iterator.rb, line 239
def seek_ns_from_origin(ns)
  raise "invalid operation" unless can_seek_ns_from_origin(ns)
  while ((res = Babeltrace2.bt_message_iterator_seek_ns_from_origin@handle, ns) == :BT_MESSAGE_ITERATOR_SEEK_NS_FROM_ORIGIN_STATUS_AGAIN)
    sleep BT_SLEEP_TIME
  end
  raise Babeltrace2.process_error(res) if res != :BT_MESSAGE_ITERATOR_SEEK_NS_FROM_ORIGIN_STATUS_OK
  self
end