import bt2
-def _create_from_ptr(ptr):
- typeid = native_bt.field_class_get_type_id(ptr)
- return _TYPE_ID_TO_OBJ[typeid]._create_from_ptr(ptr)
+def _create_field_class_from_ptr_and_get_ref(ptr):
+ typeid = native_bt.field_class_get_type(ptr)
+ return _FIELD_CLASS_TYPE_TO_OBJ[typeid]._create_from_ptr_and_get_ref(ptr)
class _FieldClass(object._SharedObject, metaclass=abc.ABCMeta):
+ _get_ref = staticmethod(native_bt.field_class_get_ref)
+ _put_ref = staticmethod(native_bt.field_class_put_ref)
+
def __init__(self, ptr):
super().__init__(ptr)
return name
-class StructureFieldClass(_FieldClass, _FieldContainer, _AlignmentProp):
+class _StructureFieldClass(_FieldClass, _FieldContainer, _AlignmentProp):
_NAME = 'Structure'
_ITER_CLS = _StructureFieldClassFieldIterator
return _create_from_ptr(field_class_ptr)
-StructureFieldClass.min_alignment = property(fset=StructureFieldClass.alignment.fset)
-StructureFieldClass.alignment = property(fget=StructureFieldClass.alignment.fget)
+_StructureFieldClass.min_alignment = property(fset=_StructureFieldClass.alignment.fset)
+_StructureFieldClass.alignment = property(fget=_StructureFieldClass.alignment.fget)
class _VariantFieldClassFieldIterator(collections.abc.Iterator):
return _create_from_ptr(ptr)
-_TYPE_ID_TO_OBJ = {
+_FIELD_CLASS_TYPE_TO_OBJ = {
+ native_bt.FIELD_CLASS_TYPE_STRUCTURE: _StructureFieldClass,
}