Class: Babeltrace2::BTMessageIterator
Constant Summary
collapse
- CreateFromMessageIteratorStatus =
BTMessageIteratorCreateFromMessageIteratorStatus
- CreateFromSinkComponentStatus =
BTMessageIteratorCreateFromSinkComponentStatus
- NextStatus =
BTMessageIteratorNextStatus
- CanSeekBeginningStatus =
BTMessageIteratorCanSeekBeginningStatus
- SeekBeginningStatus =
BTMessageIteratorSeekBeginningStatus
- CanSeekNSFromOriginStatus =
BTMessageIteratorCanSeekNSFromOriginStatus
Instance Attribute Summary
Attributes inherited from BTObject
#handle
Class Method Summary
collapse
Instance Method Summary
collapse
inherited, #initialize
Methods inherited from BTObject
#==, #initialize, #to_ptr
Class Method Details
.create_from_message_iterator(self_message_iterator, port) ⇒ Object
165
166
167
168
169
170
|
# 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) ⇒ Object
176
177
178
179
180
181
|
# 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
|
Instance Method Details
#can_seek_beginning ⇒ Object
Also known as:
can_seek_beginning?
210
211
212
213
214
215
216
217
|
# 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
|
#can_seek_forward ⇒ Object
Also known as:
can_seek_forward?
248
249
250
|
# File 'lib/babeltrace2/graph/message-iterator.rb', line 248
def can_seek_forward
Babeltrace2.bt_message_iterator_can_seek_forward(@handle) != BT_FALSE
end
|
#can_seek_ns_from_origin(ns) ⇒ Object
Also known as:
can_seek_ns_from_origin?
229
230
231
232
233
234
235
236
|
# 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
|
#create_message_iterator(port) ⇒ Object
#get_component ⇒ Object
Also known as:
component
183
184
185
186
|
# 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
|
#next_messages ⇒ Object
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
|
# 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 ⇒ Object
220
221
222
223
224
225
226
227
|
# 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) ⇒ Object
239
240
241
242
243
244
245
246
|
# 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
|