X-Git-Url: https://git.efficios.com/?a=blobdiff_plain;f=bindings%2Fpython%2Fbt2%2Fbt2%2Ftrace_class.py;h=37a760ade19343acf49b54ecba7083f37bd49985;hb=af4bbfc790800f252f974ac3ea77643b2b0ffc4a;hp=631334a7fa9b356e09347ca635f8f75a2a90e374;hpb=3cdfbaeab23e6ed4268d606cb67c50ec9e8646a0;p=babeltrace.git diff --git a/bindings/python/bt2/bt2/trace_class.py b/bindings/python/bt2/bt2/trace_class.py index 631334a7..37a760ad 100644 --- a/bindings/python/bt2/bt2/trace_class.py +++ b/bindings/python/bt2/bt2/trace_class.py @@ -224,6 +224,25 @@ class TraceClass(object._SharedObject, collections.abc.Mapping): raise bt2.CreationError( 'cannot create {} field class'.format(type_name)) + def _create_integer_field_class(self, create_func, py_cls, type_name, range, 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 range is not None: + field_class._range = range + + if display_base is not None: + field_class._display_base = display_base + + return field_class + + def create_signed_integer_field_class(self, range=None, display_base=None): + return self._create_integer_field_class(native_bt.field_class_signed_integer_create, + bt2.field_class.SignedIntegerFieldClass, + 'signed integer', range, display_base) + def create_structure_field_class(self): field_class_ptr = native_bt.field_class_structure_create(self._ptr) self._check_create_status(field_class_ptr, 'structure')