bt2: check for _graph_is_configured method in user sink classes
[babeltrace.git] / src / bindings / python / bt2 / bt2 / component.py
index afd7514a7b856101f7361c05a3c42f12eeb58ffa..18b502ac6c1e150fbb328bab9f7bac0451061678 100644 (file)
@@ -443,6 +443,9 @@ class _UserComponentType(type):
                                                                  comp_cls_descr,
                                                                  comp_cls_help)
         elif _UserSinkComponent in bases:
+            if not hasattr(cls, '_graph_is_configured'):
+                raise bt2.IncompleteUserClass("cannot create component class '{}': missing a _graph_is_configured() method".format(class_name))
+
             if not hasattr(cls, '_consume'):
                 raise bt2.IncompleteUserClass("cannot create component class '{}': missing a _consume() method".format(class_name))
 
@@ -527,12 +530,15 @@ class _UserComponentType(type):
         results = bt2.create_value(results)
 
         if results is None:
-            results_addr = int(native_bt.value_null)
+            results_ptr = native_bt.value_null
         else:
             # return new reference
-            results_addr = int(results._release())
+            results_ptr = results._ptr
+
+        # We return a new reference.
+        bt2.value._Value._get_ref(results_ptr)
 
-        return results_addr
+        return int(results_ptr)
 
     def _query(cls, query_executor, obj, params, log_level):
         raise NotImplementedError
This page took 0.024587 seconds and 4 git commands to generate.