-# The MIT License (MIT)
+# SPDX-License-Identifier: MIT
#
# Copyright (c) 2017 Philippe Proulx <pproulx@efficios.com>
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
from bt2 import native_bt, object, utils
import collections.abc
import bt2
-def _create_field_class_from_ptr_and_get_ref_template(type_map, ptr):
+def _obj_type_from_field_class_ptr_template(type_map, ptr):
typeid = native_bt.field_class_get_type(ptr)
- return type_map[typeid]._create_from_ptr_and_get_ref(ptr)
+ return type_map[typeid]
+
+
+def _obj_type_from_field_class_ptr(ptr):
+ return _obj_type_from_field_class_ptr_template(_FIELD_CLASS_TYPE_TO_OBJ, ptr)
+
+
+def _create_field_class_from_ptr_and_get_ref_template(type_map, ptr):
+ return _obj_type_from_field_class_ptr_template(
+ type_map, ptr
+ )._create_from_ptr_and_get_ref(ptr)
def _create_field_class_from_ptr_and_get_ref(ptr):
class _BoolFieldClassConst(_FieldClassConst):
- _NAME = 'Const Boolean'
+ _NAME = 'Const boolean'
class _BoolFieldClass(_BoolFieldClassConst, _FieldClass):
class _BitArrayFieldClassConst(_FieldClassConst):
- _NAME = 'Const Bit array'
+ _NAME = 'Const bit array'
@property
def length(self):
class _OptionFieldClassConst(_FieldClassConst):
- _NAME = 'Const Option'
+ _NAME = 'Const option'
_create_field_class_from_ptr_and_get_ref = staticmethod(
_create_field_class_from_const_ptr_and_get_ref
)
class _OptionWithSelectorFieldClassConst(_OptionFieldClassConst):
- _NAME = 'Const Option (with selector)'
+ _NAME = 'Const option (with selector)'
@property
def selector_field_path(self):
- ptr = native_bt.field_class_option_with_selector_borrow_selector_field_path_const(
+ ptr = native_bt.field_class_option_with_selector_field_borrow_selector_field_path_const(
self._ptr
)
if ptr is None:
class _OptionWithBoolSelectorFieldClassConst(_OptionWithSelectorFieldClassConst):
- _NAME = 'Const Option (with boolean selector)'
+ _NAME = 'Const option (with boolean selector)'
@property
def selector_is_reversed(self):
return bool(
- native_bt.field_class_option_with_selector_bool_selector_is_reversed(
+ native_bt.field_class_option_with_selector_field_bool_selector_is_reversed(
self._ptr
)
)
class _OptionWithIntegerSelectorFieldClassConst(_OptionWithSelectorFieldClassConst):
- _NAME = 'Const Option (with integer selector)'
+ _NAME = 'Const option (with integer selector)'
@property
def ranges(self):
class _OptionWithUnsignedIntegerSelectorFieldClassConst(
_OptionWithIntegerSelectorFieldClassConst
):
- _NAME = 'Const Option (with unsigned integer selector)'
+ _NAME = 'Const option (with unsigned integer selector)'
_range_set_pycls = bt2_integer_range_set._UnsignedIntegerRangeSetConst
_borrow_selector_ranges_ptr = staticmethod(
- native_bt.field_class_option_with_selector_integer_unsigned_borrow_selector_ranges_const
+ native_bt.field_class_option_with_selector_field_integer_unsigned_borrow_selector_ranges_const
)
class _OptionWithSignedIntegerSelectorFieldClassConst(
_OptionWithIntegerSelectorFieldClassConst
):
- _NAME = 'Const Option (with signed integer selector)'
+ _NAME = 'Const option (with signed integer selector)'
_range_set_pycls = bt2_integer_range_set._SignedIntegerRangeSetConst
_borrow_selector_ranges_ptr = staticmethod(
- native_bt.field_class_option_with_selector_integer_signed_borrow_selector_ranges_const
+ native_bt.field_class_option_with_selector_field_integer_signed_borrow_selector_ranges_const
)
def _selector_is_reversed(self, selector_is_reversed):
utils._check_bool(selector_is_reversed)
- native_bt.field_class_option_with_selector_bool_set_selector_is_reversed(
+ native_bt.field_class_option_with_selector_field_bool_set_selector_is_reversed(
self._ptr, selector_is_reversed
)
_VariantFieldClassWithIntegerSelectorOptionConst
):
_as_option_ptr = staticmethod(
- native_bt.field_class_variant_with_selector_integer_signed_option_as_option_const
+ native_bt.field_class_variant_with_selector_field_integer_signed_option_as_option_const
)
_borrow_ranges_ptr = staticmethod(
- native_bt.field_class_variant_with_selector_integer_signed_option_borrow_ranges_const
+ native_bt.field_class_variant_with_selector_field_integer_signed_option_borrow_ranges_const
)
_range_set_pycls = bt2_integer_range_set._SignedIntegerRangeSetConst
_VariantFieldClassWithIntegerSelectorOptionConst
):
_as_option_ptr = staticmethod(
- native_bt.field_class_variant_with_selector_integer_unsigned_option_as_option_const
+ native_bt.field_class_variant_with_selector_field_integer_unsigned_option_as_option_const
)
_borrow_ranges_ptr = staticmethod(
- native_bt.field_class_variant_with_selector_integer_unsigned_option_borrow_ranges_const
+ native_bt.field_class_variant_with_selector_field_integer_unsigned_option_borrow_ranges_const
)
_range_set_pycls = bt2_integer_range_set._UnsignedIntegerRangeSetConst
class _VariantFieldClassConst(_FieldClassConst, collections.abc.Mapping):
- _NAME = 'Const Variant'
+ _NAME = 'Const variant'
_borrow_option_ptr_by_name = staticmethod(
native_bt.field_class_variant_borrow_option_by_name_const
)
class _VariantFieldClassWithoutSelectorConst(_VariantFieldClassConst):
- _NAME = 'Const Variant (without selector)'
+ _NAME = 'Const variant (without selector)'
class _VariantFieldClassWithoutSelector(
class _VariantFieldClassWithIntegerSelectorConst(_VariantFieldClassConst):
- _NAME = 'Const Variant (with selector)'
+ _NAME = 'Const variant (with selector)'
@property
def selector_field_path(self):
- ptr = native_bt.field_class_variant_with_selector_borrow_selector_field_path_const(
+ ptr = native_bt.field_class_variant_with_selector_field_borrow_selector_field_path_const(
self._ptr
)
class _VariantFieldClassWithUnsignedIntegerSelectorConst(
_VariantFieldClassWithIntegerSelectorConst
):
- _NAME = 'Const Variant (with unsigned integer selector)'
+ _NAME = 'Const variant (with unsigned integer selector)'
_borrow_option_ptr_by_name = staticmethod(
- native_bt.field_class_variant_with_selector_integer_unsigned_borrow_option_by_name_const
+ native_bt.field_class_variant_with_selector_field_integer_unsigned_borrow_option_by_name_const
)
_borrow_option_ptr_by_index = staticmethod(
- native_bt.field_class_variant_with_selector_integer_unsigned_borrow_option_by_index_const
+ native_bt.field_class_variant_with_selector_field_integer_unsigned_borrow_option_by_index_const
)
_variant_option_pycls = _VariantFieldClassWithUnsignedIntegerSelectorOptionConst
_as_option_ptr = staticmethod(_variant_option_pycls._as_option_ptr)
_variant_option_pycls = _VariantFieldClassWithUnsignedIntegerSelectorOption
_as_option_ptr = staticmethod(_variant_option_pycls._as_option_ptr)
_append_option = staticmethod(
- native_bt.field_class_variant_with_selector_integer_unsigned_append_option
+ native_bt.field_class_variant_with_selector_field_integer_unsigned_append_option
)
class _VariantFieldClassWithSignedIntegerSelectorConst(
_VariantFieldClassWithIntegerSelectorConst
):
- _NAME = 'Const Variant (with signed integer selector)'
+ _NAME = 'Const variant (with signed integer selector)'
_borrow_option_ptr_by_name = staticmethod(
- native_bt.field_class_variant_with_selector_integer_signed_borrow_option_by_name_const
+ native_bt.field_class_variant_with_selector_field_integer_signed_borrow_option_by_name_const
)
_borrow_option_ptr_by_index = staticmethod(
- native_bt.field_class_variant_with_selector_integer_signed_borrow_option_by_index_const
+ native_bt.field_class_variant_with_selector_field_integer_signed_borrow_option_by_index_const
)
_variant_option_pycls = _VariantFieldClassWithSignedIntegerSelectorOptionConst
_as_option_ptr = staticmethod(_variant_option_pycls._as_option_ptr)
_variant_option_pycls = _VariantFieldClassWithSignedIntegerSelectorOption
_as_option_ptr = staticmethod(_variant_option_pycls._as_option_ptr)
_append_option = staticmethod(
- native_bt.field_class_variant_with_selector_integer_signed_append_option
+ native_bt.field_class_variant_with_selector_field_integer_signed_append_option
)
class _DynamicArrayFieldClassConst(_ArrayFieldClassConst):
_NAME = 'Const dynamic array'
+
+class _DynamicArrayWithLengthFieldFieldClassConst(_DynamicArrayFieldClassConst):
+ _NAME = 'Const dynamic array (with length field)'
+
@property
def length_field_path(self):
- ptr = native_bt.field_class_array_dynamic_borrow_length_field_path_const(
+ ptr = native_bt.field_class_array_dynamic_with_length_field_borrow_length_field_path_const(
self._ptr
)
if ptr is None:
class _DynamicArrayFieldClass(_DynamicArrayFieldClassConst, _ArrayFieldClass):
- _NAME = 'Dynamic Array'
+ _NAME = 'Dynamic array'
+
+
+class _DynamicArrayWithLengthFieldFieldClass(
+ _DynamicArrayWithLengthFieldFieldClassConst, _DynamicArrayFieldClass
+):
+ _NAME = 'Dynamic array (with length field)'
_FIELD_CLASS_TYPE_TO_CONST_OBJ = {
native_bt.FIELD_CLASS_TYPE_STRING: _StringFieldClassConst,
native_bt.FIELD_CLASS_TYPE_STRUCTURE: _StructureFieldClassConst,
native_bt.FIELD_CLASS_TYPE_STATIC_ARRAY: _StaticArrayFieldClassConst,
- native_bt.FIELD_CLASS_TYPE_DYNAMIC_ARRAY: _DynamicArrayFieldClassConst,
- native_bt.FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR: _OptionFieldClassConst,
- native_bt.FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR: _OptionWithBoolSelectorFieldClassConst,
- native_bt.FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR: _OptionWithUnsignedIntegerSelectorFieldClassConst,
- native_bt.FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR: _OptionWithSignedIntegerSelectorFieldClassConst,
- native_bt.FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR: _VariantFieldClassWithoutSelectorConst,
- native_bt.FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR: _VariantFieldClassWithUnsignedIntegerSelectorConst,
- native_bt.FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR: _VariantFieldClassWithSignedIntegerSelectorConst,
+ native_bt.FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD: _DynamicArrayFieldClassConst,
+ native_bt.FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD: _DynamicArrayWithLengthFieldFieldClassConst,
+ native_bt.FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD: _OptionFieldClassConst,
+ native_bt.FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD: _OptionWithBoolSelectorFieldClassConst,
+ native_bt.FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD: _OptionWithUnsignedIntegerSelectorFieldClassConst,
+ native_bt.FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD: _OptionWithSignedIntegerSelectorFieldClassConst,
+ native_bt.FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD: _VariantFieldClassWithoutSelectorConst,
+ native_bt.FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD: _VariantFieldClassWithUnsignedIntegerSelectorConst,
+ native_bt.FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD: _VariantFieldClassWithSignedIntegerSelectorConst,
}
_FIELD_CLASS_TYPE_TO_OBJ = {
native_bt.FIELD_CLASS_TYPE_STRING: _StringFieldClass,
native_bt.FIELD_CLASS_TYPE_STRUCTURE: _StructureFieldClass,
native_bt.FIELD_CLASS_TYPE_STATIC_ARRAY: _StaticArrayFieldClass,
- native_bt.FIELD_CLASS_TYPE_DYNAMIC_ARRAY: _DynamicArrayFieldClass,
- native_bt.FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR: _OptionFieldClass,
- native_bt.FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR: _OptionWithBoolSelectorFieldClass,
- native_bt.FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR: _OptionWithUnsignedIntegerSelectorFieldClass,
- native_bt.FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR: _OptionWithSignedIntegerSelectorFieldClass,
- native_bt.FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR: _VariantFieldClassWithoutSelector,
- native_bt.FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR: _VariantFieldClassWithUnsignedIntegerSelector,
- native_bt.FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR: _VariantFieldClassWithSignedIntegerSelector,
+ native_bt.FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD: _DynamicArrayFieldClass,
+ native_bt.FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD: _DynamicArrayWithLengthFieldFieldClass,
+ native_bt.FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD: _OptionFieldClass,
+ native_bt.FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD: _OptionWithBoolSelectorFieldClass,
+ native_bt.FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD: _OptionWithUnsignedIntegerSelectorFieldClass,
+ native_bt.FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD: _OptionWithSignedIntegerSelectorFieldClass,
+ native_bt.FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD: _VariantFieldClassWithoutSelector,
+ native_bt.FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD: _VariantFieldClassWithUnsignedIntegerSelector,
+ native_bt.FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD: _VariantFieldClassWithSignedIntegerSelector,
}