python: standardize intra-bt2 imports
[babeltrace.git] / src / bindings / python / bt2 / bt2 / mip.py
CommitLineData
0235b0db 1# SPDX-License-Identifier: MIT
f1f74173
PP
2#
3# Copyright (c) 2017 Philippe Proulx <pproulx@efficios.com>
f1f74173 4
e5914347
SM
5from bt2 import native_bt
6from bt2 import utils as bt2_utils
f1f74173
PP
7import bt2
8
9
10def get_greatest_operative_mip_version(
11 component_descriptors, log_level=bt2.LoggingLevel.NONE
12):
e5914347 13 bt2_utils._check_log_level(log_level)
f1f74173
PP
14 comp_descr_set_ptr = native_bt.component_descriptor_set_create()
15
16 if comp_descr_set_ptr is None:
f5567ea8 17 raise bt2._MemoryError("cannot create component descriptor set object")
f1f74173
PP
18
19 if len(component_descriptors) == 0:
f5567ea8 20 raise ValueError("no component descriptors")
f1f74173
PP
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
21a9f056 33 status = native_bt.bt2_component_descriptor_set_add_descriptor_with_initialize_method_data(
f1f74173
PP
34 comp_descr_set_ptr, base_cc_ptr, params_ptr, descr.obj
35 )
e5914347 36 bt2_utils._handle_func_status(
f5567ea8 37 status, "cannot add descriptor to component descriptor set"
f1f74173
PP
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
e5914347
SM
47 bt2_utils._handle_func_status(
48 status, "cannot get greatest operative MIP version"
49 )
f1f74173
PP
50 return version
51 finally:
52 native_bt.component_descriptor_set_put_ref(comp_descr_set_ptr)
53
54
55def get_maximal_mip_version():
56 return native_bt.get_maximal_mip_version()
This page took 0.087094 seconds and 4 git commands to generate.