they need *from* an event before accessing the next one.
"""
- begin_pos_ptr = nbt._bt_iter_pos()
- end_pos_ptr = nbt._bt_iter_pos()
+ begin_pos_ptr = nbt._bt_python_create_iter_pos()
+ end_pos_ptr = nbt._bt_python_create_iter_pos()
begin_pos_ptr.type = nbt.SEEK_BEGIN
end_pos_ptr.type = nbt.SEEK_LAST
for event in self._events(begin_pos_ptr, end_pos_ptr):
yield event
+ nbt._bt_iter_free_pos(begin_pos_ptr);
+ nbt._bt_iter_free_pos(end_pos_ptr);
+
def events_timestamps(self, timestamp_begin, timestamp_end):
"""
Generates the ordered :class:`Event` objects of all the opened
See :attr:`events` for notes and limitations.
"""
- begin_pos_ptr = nbt._bt_iter_pos()
- end_pos_ptr = nbt._bt_iter_pos()
+ begin_pos_ptr = nbt._bt_python_create_iter_pos()
+ end_pos_ptr = nbt._bt_python_create_iter_pos()
begin_pos_ptr.type = end_pos_ptr.type = nbt.SEEK_TIME
begin_pos_ptr.u.seek_time = timestamp_begin
end_pos_ptr.u.seek_time = timestamp_end
for event in self._events(begin_pos_ptr, end_pos_ptr):
yield event
+ nbt._bt_iter_free_pos(begin_pos_ptr);
+ nbt._bt_iter_free_pos(end_pos_ptr);
+
@property
def timestamp_begin(self):
"""
ev_ptr = nbt._bt_ctf_iter_read_event(ctf_it_ptr)
nbt._bt_ctf_iter_destroy(ctf_it_ptr)
+ ev = Event.__new__(Event)
+ ev._e = ev_ptr
+
+ return ev.timestamp
+
def _events(self, begin_pos_ptr, end_pos_ptr):
ctf_it_ptr = nbt._bt_ctf_iter_create(self._tc, begin_pos_ptr, end_pos_ptr)
return common.ByteOrder.BYTE_ORDER_UNKNOWN
@property
- def length(self):
+ def size(self):
"""
Integer size in bits, or a negative value on error.
"""
-
return nbt._bt_ctf_get_int_len(self._fd)
+ @property
+ def length(self):
+ return self.size
+
@property
def encoding(self):
"""