bt2: Mass clock_value -> clock_snapshot rename
[babeltrace.git] / bindings / python / bt2 / bt2 / event.py
index 2e11de087380c6f7fe46436bd2f2c81395cd0e3b..eeb9e47ba3ee20446871c080f3326ec078131492 100644 (file)
@@ -25,6 +25,8 @@ import bt2.clock_class
 import bt2.packet
 import bt2.stream
 import bt2.fields
+import bt2.clock_snapshot
+import collections
 import numbers
 import copy
 import abc
@@ -35,7 +37,7 @@ def _create_from_ptr(ptr):
     # recreate the event class wrapper of this event's class (the
     # identity could be different, but the underlying address should be
     # the same)
-    event_class_ptr = native_bt.ctf_event_get_class(ptr)
+    event_class_ptr = native_bt.event_get_class(ptr)
     utils._handle_ptr(event_class_ptr, "cannot get event object's class")
     event_class = bt2.EventClass._create_from_ptr(event_class_ptr)
     event = _Event._create_from_ptr(ptr)
@@ -43,6 +45,50 @@ def _create_from_ptr(ptr):
     return event
 
 
+class _EventClockSnapshotsIterator(collections.abc.Iterator):
+    def __init__(self, event_clock_snapshots):
+        self._event_clock_snapshots = event_clock_snapshots
+        self._clock_classes = event_clock_snapshots._event._clock_classes
+        self._at = 0
+
+    def __next__(self):
+        if self._at == len(self._clock_classes):
+            raise StopIteration
+
+        self._at += 1
+        return self._clock_classes[at]
+
+
+class _EventClockSnapshots(collections.abc.Mapping):
+    def __init__(self, event):
+        self._event = event
+
+    def __getitem__(self, clock_class):
+        utils._check_type(clock_class, bt2.ClockClass)
+        clock_snapshot_ptr = native_bt.event_get_clock_snapshot(self._event._ptr,
+                                                          clock_class._ptr)
+
+        if clock_snapshot_ptr is None:
+            return
+
+        clock_snapshot = bt2.clock_snapshot._create_clock_snapshot_from_ptr(clock_snapshot_ptr)
+        return clock_snapshot
+
+    def add(self, clock_snapshot):
+        utils._check_type(clock_snapshot, bt2.clock_snapshot._ClockSnapshot)
+        ret = native_bt.event_set_clock_snapshot(self._ptr,
+                                              clock_snapshot._ptr)
+        utils._handle_ret(ret, "cannot set event object's clock value")
+
+    def __len__(self):
+        count = len(self._event._clock_classes)
+        assert(count >= 0)
+        return count
+
+    def __iter__(self):
+        return _EventClockSnapshotsIterator(self)
+
+
 class _Event(object._Object):
     @property
     def event_class(self):
@@ -58,7 +104,7 @@ class _Event(object._Object):
 
     @property
     def packet(self):
-        packet_ptr = native_bt.ctf_event_get_packet(self._ptr)
+        packet_ptr = native_bt.event_get_packet(self._ptr)
 
         if packet_ptr is None:
             return packet_ptr
@@ -68,12 +114,12 @@ class _Event(object._Object):
     @packet.setter
     def packet(self, packet):
         utils._check_type(packet, bt2.packet._Packet)
-        ret = native_bt.ctf_event_set_packet(self._ptr, packet._ptr)
+        ret = native_bt.event_set_packet(self._ptr, packet._ptr)
         utils._handle_ret(ret, "cannot set event object's packet object")
 
     @property
     def stream(self):
-        stream_ptr = native_bt.ctf_event_get_stream(self._ptr)
+        stream_ptr = native_bt.event_get_stream(self._ptr)
 
         if stream_ptr is None:
             return stream_ptr
@@ -82,7 +128,7 @@ class _Event(object._Object):
 
     @property
     def header_field(self):
-        field_ptr = native_bt.ctf_event_get_header(self._ptr)
+        field_ptr = native_bt.event_get_header(self._ptr)
 
         if field_ptr is None:
             return
@@ -97,12 +143,12 @@ class _Event(object._Object):
             utils._check_type(header_field, bt2.fields._Field)
             header_field_ptr = header_field._ptr
 
-        ret = native_bt.ctf_event_set_header(self._ptr, header_field_ptr)
+        ret = native_bt.event_set_header(self._ptr, header_field_ptr)
         utils._handle_ret(ret, "cannot set event object's header field")
 
     @property
     def stream_event_context_field(self):
-        field_ptr = native_bt.ctf_event_get_stream_event_context(self._ptr)
+        field_ptr = native_bt.event_get_stream_event_context(self._ptr)
 
         if field_ptr is None:
             return
@@ -117,13 +163,13 @@ class _Event(object._Object):
             utils._check_type(stream_event_context, bt2.fields._Field)
             stream_event_context_ptr = stream_event_context._ptr
 
-        ret = native_bt.ctf_event_set_stream_event_context(self._ptr,
-                                                           stream_event_context_ptr)
+        ret = native_bt.event_set_stream_event_context(self._ptr,
+                                                       stream_event_context_ptr)
         utils._handle_ret(ret, "cannot set event object's stream event context field")
 
     @property
     def context_field(self):
-        field_ptr = native_bt.ctf_event_get_event_context(self._ptr)
+        field_ptr = native_bt.event_get_event_context(self._ptr)
 
         if field_ptr is None:
             return
@@ -138,12 +184,12 @@ class _Event(object._Object):
             utils._check_type(context, bt2.fields._Field)
             context_ptr = context._ptr
 
-        ret = native_bt.ctf_event_set_event_context(self._ptr, context_ptr)
+        ret = native_bt.event_set_event_context(self._ptr, context_ptr)
         utils._handle_ret(ret, "cannot set event object's context field")
 
     @property
     def payload_field(self):
-        field_ptr = native_bt.ctf_event_get_event_payload(self._ptr)
+        field_ptr = native_bt.event_get_event_payload(self._ptr)
 
         if field_ptr is None:
             return
@@ -158,37 +204,24 @@ class _Event(object._Object):
             utils._check_type(payload, bt2.fields._Field)
             payload_ptr = payload._ptr
 
-        ret = native_bt.ctf_event_set_event_payload(self._ptr, payload_ptr)
+        ret = native_bt.event_set_event_payload(self._ptr, payload_ptr)
         utils._handle_ret(ret, "cannot set event object's payload field")
 
-    def _get_clock_value_cycles(self, clock_class_ptr):
-        clock_value_ptr = native_bt.ctf_event_get_clock_value(self._ptr,
-                                                              clock_class_ptr)
+    def _get_clock_snapshot_cycles(self, clock_class_ptr):
+        clock_snapshot_ptr = native_bt.event_get_clock_snapshot(self._ptr,
+                                                          clock_class_ptr)
 
-        if clock_value_ptr is None:
+        if clock_snapshot_ptr is None:
             return
 
-        ret, cycles = native_bt.ctf_clock_value_get_value(clock_value_ptr)
-        native_bt.put(clock_value_ptr)
+        ret, cycles = native_bt.clock_snapshot_get_value(clock_snapshot_ptr)
+        native_bt.put(clock_snapshot_ptr)
         utils._handle_ret(ret, "cannot get clock value object's cycles")
         return cycles
 
-    def clock_value(self, clock_class):
-        utils._check_type(clock_class, bt2.ClockClass)
-        clock_value_ptr = native_bt.ctf_event_get_clock_value(self._ptr,
-                                                              clock_class._ptr)
-
-        if clock_value_ptr is None:
-            return
-
-        clock_value = bt2.clock_class._create_clock_value_from_ptr(clock_value_ptr)
-        return clock_value
-
-    def add_clock_value(self, clock_value):
-        utils._check_type(clock_value, bt2.clock_class._ClockValue)
-        ret = native_bt.ctf_event_set_clock_value(self._ptr,
-                                                  clock_value._ptr)
-        utils._handle_ret(ret, "cannot set event object's clock value")
+    @property
+    def clock_snapshots(self):
+        return _EventClockSnapshots(self)
 
     def __getitem__(self, key):
         utils._check_str(key)
@@ -259,28 +292,28 @@ class _Event(object._Object):
         if self.addr == other.addr:
             return True
 
-        self_clock_values = {}
-        other_clock_values = {}
+        self_clock_snapshots = {}
+        other_clock_snapshots = {}
 
         for clock_class_ptr in self._clock_class_ptrs:
-            self_clock_values[int(clock_class_ptr)] = self._get_clock_value_cycles(clock_class_ptr)
+            self_clock_snapshots[int(clock_class_ptr)] = self._get_clock_snapshot_cycles(clock_class_ptr)
 
         for clock_class_ptr in other._clock_class_ptrs:
-            other_clock_values[int(clock_class_ptr)] = self._get_clock_value_cycles(clock_class_ptr)
+            other_clock_snapshots[int(clock_class_ptr)] = self._get_clock_snapshot_cycles(clock_class_ptr)
 
         self_props = (
             self.header_field,
             self.stream_event_context_field,
             self.context_field,
             self.payload_field,
-            self_clock_values,
+            self_clock_snapshots,
         )
         other_props = (
             other.header_field,
             other.stream_event_context_field,
             other.context_field,
             other.payload_field,
-            other_clock_values,
+            other_clock_snapshots,
         )
         return self_props == other_props
 
@@ -299,10 +332,10 @@ class _Event(object._Object):
         # Thus even if we copy the clock class, the user cannot modify
         # it, therefore it's useless to copy it.
         for clock_class in self._clock_classes:
-            clock_value = self.clock_value(clock_class)
+            clock_snapshot = self.clock_snapshots[clock_class]
 
-            if clock_value is not None:
-                cpy.add_clock_value(clock_value)
+            if clock_snapshot is not None:
+                cpy.clock_snapshots.add(clock_snapshot)
 
         return cpy
 
This page took 0.026202 seconds and 4 git commands to generate.