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_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_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?
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