+ def _create_integer_field_class(self, create_func, py_cls, type_name, field_value_range, preferred_display_base):
+ field_class_ptr = create_func(self._ptr)
+ self._check_create_status(field_class_ptr, type_name)
+
+ field_class = py_cls._create_from_ptr(field_class_ptr)
+
+ if field_value_range is not None:
+ field_class._field_value_range = field_value_range
+
+ if preferred_display_base is not None:
+ field_class._preferred_display_base = preferred_display_base
+
+ return field_class
+
+ def create_signed_integer_field_class(self, field_value_range=None, preferred_display_base=None):
+ return self._create_integer_field_class(native_bt.field_class_signed_integer_create,
+ bt2.field_class._SignedIntegerFieldClass,
+ 'signed integer', field_value_range, preferred_display_base)
+
+ def create_unsigned_integer_field_class(self, field_value_range=None, preferred_display_base=None):
+ return self._create_integer_field_class(native_bt.field_class_unsigned_integer_create,
+ bt2.field_class._UnsignedIntegerFieldClass,
+ 'unsigned integer', field_value_range, preferred_display_base)
+
+ def create_signed_enumeration_field_class(self, field_value_range=None, preferred_display_base=None):
+ return self._create_integer_field_class(native_bt.field_class_signed_enumeration_create,
+ bt2.field_class._SignedEnumerationFieldClass,
+ 'signed enumeration', field_value_range, preferred_display_base)
+
+ def create_unsigned_enumeration_field_class(self, field_value_range=None, preferred_display_base=None):
+ return self._create_integer_field_class(native_bt.field_class_unsigned_enumeration_create,
+ bt2.field_class._UnsignedEnumerationFieldClass,
+ 'unsigned enumeration', field_value_range, preferred_display_base)
+
+ def create_real_field_class(self, is_single_precision=False):
+ field_class_ptr = native_bt.field_class_real_create(self._ptr)
+ self._check_create_status(field_class_ptr, 'real')
+
+ field_class = bt2.field_class._RealFieldClass._create_from_ptr(field_class_ptr)
+
+ field_class._is_single_precision = is_single_precision
+
+ return field_class
+