X-Git-Url: https://git.efficios.com/?a=blobdiff_plain;f=src%2Fbindings%2Fpython%2Fbt2%2Fbt2%2Ffield_class.py;h=b873a15bb16b8e0f3a5f7e2e1386945fb86e8c64;hb=76276a81e72d967979674fdc0a646b42d8d6033e;hp=03e6e4e3569c405dea401410da5e78f1a482a9fa;hpb=9cbe0c595e3bf191fb2eb1b906413b2833611f7a;p=babeltrace.git diff --git a/src/bindings/python/bt2/bt2/field_class.py b/src/bindings/python/bt2/bt2/field_class.py index 03e6e4e3..b873a15b 100644 --- a/src/bindings/python/bt2/bt2/field_class.py +++ b/src/bindings/python/bt2/bt2/field_class.py @@ -172,23 +172,27 @@ class _SignedIntegerFieldClass( class _RealFieldClassConst(_FieldClassConst): - _NAME = 'Const real' + pass - @property - def is_single_precision(self): - return native_bt.field_class_real_is_single_precision(self._ptr) + +class _SinglePrecisionRealFieldClassConst(_RealFieldClassConst): + _NAME = 'Const single-precision real' + + +class _DoublePrecisionRealFieldClassConst(_RealFieldClassConst): + _NAME = 'Const double-precision real' class _RealFieldClass(_FieldClass, _RealFieldClassConst): - _NAME = 'Real' + pass + + +class _SinglePrecisionRealFieldClass(_RealFieldClass): + _NAME = 'Single-precision real' - def _is_single_precision(self, is_single_precision): - utils._check_bool(is_single_precision) - native_bt.field_class_real_set_is_single_precision( - self._ptr, is_single_precision - ) - _is_single_precision = property(fset=_is_single_precision) +class _DoublePrecisionRealFieldClass(_RealFieldClass): + _NAME = 'Double-precision real' # an enumeration field class mapping does not have a reference count, so @@ -202,7 +206,7 @@ class _EnumerationFieldClassMapping: assert self._label is not None ranges_ptr = self._mapping_borrow_ranges_ptr(mapping_ptr) assert ranges_ptr is not None - self._ranges = self._ranges_type._create_from_ptr_and_get_ref(ranges_ptr) + self._ranges = self._range_set_pycls._create_from_ptr_and_get_ref(ranges_ptr) @property def label(self): @@ -214,7 +218,7 @@ class _EnumerationFieldClassMapping: class _UnsignedEnumerationFieldClassMappingConst(_EnumerationFieldClassMapping): - _ranges_type = bt2_integer_range_set.UnsignedIntegerRangeSet + _range_set_pycls = bt2_integer_range_set.UnsignedIntegerRangeSet _as_enumeration_field_class_mapping_ptr = staticmethod( native_bt.field_class_enumeration_unsigned_mapping_as_mapping_const ) @@ -224,7 +228,7 @@ class _UnsignedEnumerationFieldClassMappingConst(_EnumerationFieldClassMapping): class _SignedEnumerationFieldClassMappingConst(_EnumerationFieldClassMapping): - _ranges_type = bt2_integer_range_set.SignedIntegerRangeSet + _range_set_pycls = bt2_integer_range_set.SignedIntegerRangeSet _as_enumeration_field_class_mapping_ptr = staticmethod( native_bt.field_class_enumeration_signed_mapping_as_mapping_const ) @@ -266,7 +270,7 @@ class _EnumerationFieldClassConst(_IntegerFieldClassConst, collections.abc.Mappi class _EnumerationFieldClass(_EnumerationFieldClassConst, _IntegerFieldClass): def add_mapping(self, label, ranges): utils._check_str(label) - utils._check_type(ranges, self._range_set_type) + utils._check_type(ranges, self._range_set_pycls) if label in self: raise ValueError("duplicate mapping label '{}'".format(label)) @@ -287,7 +291,7 @@ class _UnsignedEnumerationFieldClassConst( _EnumerationFieldClassConst, _UnsignedIntegerFieldClassConst ): _NAME = 'Const nsigned enumeration' - _range_set_type = bt2_integer_range_set.UnsignedIntegerRangeSet + _range_set_pycls = bt2_integer_range_set.UnsignedIntegerRangeSet _borrow_mapping_ptr_by_label = staticmethod( native_bt.field_class_enumeration_unsigned_borrow_mapping_by_label_const ) @@ -314,7 +318,7 @@ class _SignedEnumerationFieldClassConst( _EnumerationFieldClassConst, _SignedIntegerFieldClassConst ): _NAME = 'Const signed enumeration' - _range_set_type = bt2_integer_range_set.SignedIntegerRangeSet + _range_set_pycls = bt2_integer_range_set.SignedIntegerRangeSet _borrow_mapping_ptr_by_label = staticmethod( native_bt.field_class_enumeration_signed_borrow_mapping_by_label_const ) @@ -516,7 +520,7 @@ class _OptionFieldClassConst(_FieldClassConst): if ptr is None: return - return bt2_field_path._FieldPath._create_from_ptr_and_get_ref(ptr) + return bt2_field_path._FieldPathConst._create_from_ptr_and_get_ref(ptr) class _OptionFieldClass(_OptionFieldClassConst, _FieldClass): @@ -576,7 +580,7 @@ class _VariantFieldClassOption(_VariantFieldClassOptionConst): native_bt.field_class_variant_option_borrow_field_class ) _borrow_user_attributes_ptr = staticmethod( - native_bt.field_class_variant_option_borrow_user_attributes_const + native_bt.field_class_variant_option_borrow_user_attributes ) _create_value_from_ptr_and_get_ref = staticmethod( bt2_value._create_from_ptr_and_get_ref @@ -599,7 +603,7 @@ class _VariantFieldClassWithSelectorOptionConst(_VariantFieldClassOptionConst): def ranges(self): range_set_ptr = self._borrow_ranges_ptr(self._spec_ptr) assert range_set_ptr is not None - return self._range_set_type._create_from_ptr_and_get_ref(range_set_ptr) + return self._range_set_pycls._create_from_ptr_and_get_ref(range_set_ptr) class _VariantFieldClassWithSelectorOption( @@ -617,7 +621,7 @@ class _VariantFieldClassWithSignedSelectorOptionConst( _borrow_ranges_ptr = staticmethod( native_bt.field_class_variant_with_selector_signed_option_borrow_ranges_const ) - _range_set_type = bt2_integer_range_set.SignedIntegerRangeSet + _range_set_pycls = bt2_integer_range_set.SignedIntegerRangeSet class _VariantFieldClassWithSignedSelectorOption( @@ -636,7 +640,7 @@ class _VariantFieldClassWithUnsignedSelectorOptionConst( _borrow_ranges_ptr = staticmethod( native_bt.field_class_variant_with_selector_unsigned_option_borrow_ranges_const ) - _range_set_type = bt2_integer_range_set.UnsignedIntegerRangeSet + _range_set_pycls = bt2_integer_range_set.UnsignedIntegerRangeSet class _VariantFieldClassWithUnsignedSelectorOption( @@ -761,7 +765,7 @@ class _VariantFieldClassWithSelectorConst(_VariantFieldClassConst): if ptr is None: return - return bt2_field_path._FieldPath._create_from_ptr_and_get_ref(ptr) + return bt2_field_path._FieldPathConst._create_from_ptr_and_get_ref(ptr) class _VariantFieldClassWithSelector( @@ -772,7 +776,7 @@ class _VariantFieldClassWithSelector( def append_option(self, name, field_class, ranges, user_attributes=None): utils._check_str(name) utils._check_type(field_class, _FieldClass) - utils._check_type(ranges, self._variant_option_pycls._range_set_type) + utils._check_type(ranges, self._variant_option_pycls._range_set_pycls) if name in self: raise ValueError("duplicate option name '{}'".format(name)) @@ -811,9 +815,6 @@ class _VariantFieldClassWithUnsignedSelectorConst(_VariantFieldClassWithSelector _borrow_option_ptr_by_index = staticmethod( native_bt.field_class_variant_with_selector_unsigned_borrow_option_by_index_const ) - _append_option = staticmethod( - native_bt.field_class_variant_with_selector_unsigned_append_option - ) _variant_option_pycls = _VariantFieldClassWithUnsignedSelectorOptionConst _as_option_ptr = staticmethod(_variant_option_pycls._as_option_ptr) @@ -824,6 +825,9 @@ class _VariantFieldClassWithUnsignedSelector( _NAME = 'Variant (with unsigned selector)' _variant_option_pycls = _VariantFieldClassWithUnsignedSelectorOption _as_option_ptr = staticmethod(_variant_option_pycls._as_option_ptr) + _append_option = staticmethod( + native_bt.field_class_variant_with_selector_unsigned_append_option + ) class _VariantFieldClassWithSignedSelectorConst(_VariantFieldClassWithSelectorConst): @@ -834,9 +838,6 @@ class _VariantFieldClassWithSignedSelectorConst(_VariantFieldClassWithSelectorCo _borrow_option_ptr_by_index = staticmethod( native_bt.field_class_variant_with_selector_signed_borrow_option_by_index_const ) - _append_option = staticmethod( - native_bt.field_class_variant_with_selector_signed_append_option - ) _variant_option_pycls = _VariantFieldClassWithSignedSelectorOptionConst _as_option_ptr = staticmethod(_variant_option_pycls._as_option_ptr) @@ -847,6 +848,9 @@ class _VariantFieldClassWithSignedSelector( _NAME = 'Variant (with signed selector)' _variant_option_pycls = _VariantFieldClassWithSignedSelectorOption _as_option_ptr = staticmethod(_variant_option_pycls._as_option_ptr) + _append_option = staticmethod( + native_bt.field_class_variant_with_selector_signed_append_option + ) class _ArrayFieldClassConst(_FieldClassConst): @@ -895,7 +899,7 @@ class _DynamicArrayFieldClassConst(_ArrayFieldClassConst): if ptr is None: return - return bt2_field_path._FieldPath._create_from_ptr_and_get_ref(ptr) + return bt2_field_path._FieldPathConst._create_from_ptr_and_get_ref(ptr) class _DynamicArrayFieldClass(_DynamicArrayFieldClassConst, _ArrayFieldClass): @@ -907,7 +911,8 @@ _FIELD_CLASS_TYPE_TO_CONST_OBJ = { native_bt.FIELD_CLASS_TYPE_BIT_ARRAY: _BitArrayFieldClassConst, native_bt.FIELD_CLASS_TYPE_UNSIGNED_INTEGER: _UnsignedIntegerFieldClassConst, native_bt.FIELD_CLASS_TYPE_SIGNED_INTEGER: _SignedIntegerFieldClassConst, - native_bt.FIELD_CLASS_TYPE_REAL: _RealFieldClassConst, + native_bt.FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL: _SinglePrecisionRealFieldClassConst, + native_bt.FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL: _DoublePrecisionRealFieldClassConst, native_bt.FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION: _UnsignedEnumerationFieldClassConst, native_bt.FIELD_CLASS_TYPE_SIGNED_ENUMERATION: _SignedEnumerationFieldClassConst, native_bt.FIELD_CLASS_TYPE_STRING: _StringFieldClassConst, @@ -925,7 +930,8 @@ _FIELD_CLASS_TYPE_TO_OBJ = { native_bt.FIELD_CLASS_TYPE_BIT_ARRAY: _BitArrayFieldClass, native_bt.FIELD_CLASS_TYPE_UNSIGNED_INTEGER: _UnsignedIntegerFieldClass, native_bt.FIELD_CLASS_TYPE_SIGNED_INTEGER: _SignedIntegerFieldClass, - native_bt.FIELD_CLASS_TYPE_REAL: _RealFieldClass, + native_bt.FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL: _SinglePrecisionRealFieldClass, + native_bt.FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL: _DoublePrecisionRealFieldClass, native_bt.FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION: _UnsignedEnumerationFieldClass, native_bt.FIELD_CLASS_TYPE_SIGNED_ENUMERATION: _SignedEnumerationFieldClass, native_bt.FIELD_CLASS_TYPE_STRING: _StringFieldClass,