bt2: add user attributes property support
[babeltrace.git] / src / bindings / python / bt2 / bt2 / trace.py
index e893b2d28bfabb24906b8735857b822b0bc728a0..7f98ac8698f39a7f9aeb615e33c901a28b941152 100644 (file)
@@ -115,6 +115,19 @@ class _Trace(object._SharedObject, collections.abc.Mapping):
         assert trace_class_ptr is not None
         return bt2_trace_class._TraceClass._create_from_ptr_and_get_ref(trace_class_ptr)
 
+    @property
+    def user_attributes(self):
+        ptr = native_bt.trace_borrow_user_attributes(self._ptr)
+        assert ptr is not None
+        return bt2_value._create_from_ptr_and_get_ref(ptr)
+
+    def _user_attributes(self, user_attributes):
+        value = bt2_value.create_value(user_attributes)
+        utils._check_type(value, bt2_value.MapValue)
+        native_bt.trace_set_user_attributes(self._ptr, value._ptr)
+
+    _user_attributes = property(fset=_user_attributes)
+
     @property
     def name(self):
         return native_bt.trace_get_name(self._ptr)
@@ -144,7 +157,7 @@ class _Trace(object._SharedObject, collections.abc.Mapping):
     def env(self):
         return _TraceEnv(self)
 
-    def create_stream(self, stream_class, id=None, name=None):
+    def create_stream(self, stream_class, id=None, name=None, user_attributes=None):
         utils._check_type(stream_class, bt2_stream_class._StreamClass)
 
         if stream_class.assigns_automatic_stream_id:
@@ -173,6 +186,9 @@ class _Trace(object._SharedObject, collections.abc.Mapping):
         if name is not None:
             stream._name = name
 
+        if user_attributes is not None:
+            stream._user_attributes = user_attributes
+
         return stream
 
     def add_destruction_listener(self, listener):
This page took 0.024361 seconds and 4 git commands to generate.