cpp-common/bt2c/fmt.hpp: use `wise_enum::string_type` in `EnableIfIsWiseEnum` definition
[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
c345b078 5from bt2 import error as bt2_error
5995b304 6from bt2 import utils as bt2_utils
c345b078 7from bt2 import logging as bt2_logging
5995b304 8from bt2 import native_bt
c345b078 9from bt2 import component_descriptor as bt2_component_descriptor
f1f74173
PP
10
11
12def get_greatest_operative_mip_version(
c345b078 13 component_descriptors, log_level=bt2_logging.LoggingLevel.NONE
f1f74173 14):
e5914347 15 bt2_utils._check_log_level(log_level)
f1f74173
PP
16 comp_descr_set_ptr = native_bt.component_descriptor_set_create()
17
18 if comp_descr_set_ptr is None:
c345b078 19 raise bt2_error._MemoryError("cannot create component descriptor set object")
f1f74173
PP
20
21 if len(component_descriptors) == 0:
f5567ea8 22 raise ValueError("no component descriptors")
f1f74173
PP
23
24 try:
25 for descr in component_descriptors:
c345b078 26 if type(descr) is not bt2_component_descriptor.ComponentDescriptor:
f1f74173
PP
27 raise TypeError("'{}' is not a component descriptor".format(descr))
28
29 base_cc_ptr = descr.component_class._bt_component_class_ptr()
30 params_ptr = None
31
32 if descr.params is not None:
33 params_ptr = descr.params._ptr
34
21a9f056 35 status = native_bt.bt2_component_descriptor_set_add_descriptor_with_initialize_method_data(
f1f74173
PP
36 comp_descr_set_ptr, base_cc_ptr, params_ptr, descr.obj
37 )
e5914347 38 bt2_utils._handle_func_status(
f5567ea8 39 status, "cannot add descriptor to component descriptor set"
f1f74173
PP
40 )
41
42 status, version = native_bt.get_greatest_operative_mip_version(
43 comp_descr_set_ptr, log_level
44 )
45
46 if status == native_bt.__BT_FUNC_STATUS_NO_MATCH:
47 return None
48
e5914347
SM
49 bt2_utils._handle_func_status(
50 status, "cannot get greatest operative MIP version"
51 )
f1f74173
PP
52 return version
53 finally:
54 native_bt.component_descriptor_set_put_ref(comp_descr_set_ptr)
55
56
57def get_maximal_mip_version():
58 return native_bt.get_maximal_mip_version()
This page took 0.068758 seconds and 5 git commands to generate.