96efc03286cd1a391c64123e823af3bbad84325d
[babeltrace.git] / src / bindings / python / bt2 / bt2 / mip.py
1 # SPDX-License-Identifier: MIT
2 #
3 # Copyright (c) 2017 Philippe Proulx <pproulx@efficios.com>
4
5 from bt2 import native_bt
6 from bt2 import utils as bt2_utils
7 import bt2
8
9
10 def get_greatest_operative_mip_version(
11 component_descriptors, log_level=bt2.LoggingLevel.NONE
12 ):
13 bt2_utils._check_log_level(log_level)
14 comp_descr_set_ptr = native_bt.component_descriptor_set_create()
15
16 if comp_descr_set_ptr is None:
17 raise bt2._MemoryError("cannot create component descriptor set object")
18
19 if len(component_descriptors) == 0:
20 raise ValueError("no component descriptors")
21
22 try:
23 for descr in component_descriptors:
24 if type(descr) is not bt2.ComponentDescriptor:
25 raise TypeError("'{}' is not a component descriptor".format(descr))
26
27 base_cc_ptr = descr.component_class._bt_component_class_ptr()
28 params_ptr = None
29
30 if descr.params is not None:
31 params_ptr = descr.params._ptr
32
33 status = native_bt.bt2_component_descriptor_set_add_descriptor_with_initialize_method_data(
34 comp_descr_set_ptr, base_cc_ptr, params_ptr, descr.obj
35 )
36 bt2_utils._handle_func_status(
37 status, "cannot add descriptor to component descriptor set"
38 )
39
40 status, version = native_bt.get_greatest_operative_mip_version(
41 comp_descr_set_ptr, log_level
42 )
43
44 if status == native_bt.__BT_FUNC_STATUS_NO_MATCH:
45 return None
46
47 bt2_utils._handle_func_status(
48 status, "cannot get greatest operative MIP version"
49 )
50 return version
51 finally:
52 native_bt.component_descriptor_set_put_ref(comp_descr_set_ptr)
53
54
55 def get_maximal_mip_version():
56 return native_bt.get_maximal_mip_version()
This page took 0.029938 seconds and 3 git commands to generate.