Docs: Document reference counting scheme implemented by Object
[babeltrace.git] / bindings / python / reader.py
index 285111e82f6f02d354a8c4f860b010450edaff4e..354403362d534d363e9f2fb73b21c129bd466ad2 100644 (file)
@@ -145,14 +145,17 @@ class TraceCollection:
         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
@@ -165,8 +168,8 @@ class TraceCollection:
         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
@@ -174,6 +177,9 @@ class TraceCollection:
         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):
         """
@@ -207,6 +213,11 @@ class TraceCollection:
         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)
 
@@ -810,13 +821,16 @@ class IntegerFieldDeclaration(FieldDeclaration):
             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):
         """
This page took 0.025441 seconds and 4 git commands to generate.