xref: /aosp_15_r20/external/flatbuffers/tests/namespace_test/NamespaceC/TableInC.py (revision 890232f25432b36107d06881e0a25aaa6b473652)
1# automatically generated by the FlatBuffers compiler, do not modify
2
3# namespace: NamespaceC
4
5import flatbuffers
6from flatbuffers.compat import import_numpy
7np = import_numpy()
8
9class TableInC(object):
10    __slots__ = ['_tab']
11
12    @classmethod
13    def GetRootAs(cls, buf, offset=0):
14        n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
15        x = TableInC()
16        x.Init(buf, n + offset)
17        return x
18
19    @classmethod
20    def GetRootAsTableInC(cls, buf, offset=0):
21        """This method is deprecated. Please switch to GetRootAs."""
22        return cls.GetRootAs(buf, offset)
23    # TableInC
24    def Init(self, buf, pos):
25        self._tab = flatbuffers.table.Table(buf, pos)
26
27    # TableInC
28    def ReferToA1(self):
29        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
30        if o != 0:
31            x = self._tab.Indirect(o + self._tab.Pos)
32            obj = TableInFirstNS()
33            obj.Init(self._tab.Bytes, x)
34            return obj
35        return None
36
37    # TableInC
38    def ReferToA2(self):
39        o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
40        if o != 0:
41            x = self._tab.Indirect(o + self._tab.Pos)
42            obj = SecondTableInA()
43            obj.Init(self._tab.Bytes, x)
44            return obj
45        return None
46
47def TableInCStart(builder): builder.StartObject(2)
48def Start(builder):
49    return TableInCStart(builder)
50def TableInCAddReferToA1(builder, referToA1): builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(referToA1), 0)
51def AddReferToA1(builder, referToA1):
52    return TableInCAddReferToA1(builder, referToA1)
53def TableInCAddReferToA2(builder, referToA2): builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(referToA2), 0)
54def AddReferToA2(builder, referToA2):
55    return TableInCAddReferToA2(builder, referToA2)
56def TableInCEnd(builder): return builder.EndObject()
57def End(builder):
58    return TableInCEnd(builder)
59try:
60    from typing import Optional
61except:
62    pass
63
64class TableInCT(object):
65
66    # TableInCT
67    def __init__(self):
68        self.referToA1 = None  # type: Optional[TableInFirstNST]
69        self.referToA2 = None  # type: Optional[SecondTableInAT]
70
71    @classmethod
72    def InitFromBuf(cls, buf, pos):
73        tableInC = TableInC()
74        tableInC.Init(buf, pos)
75        return cls.InitFromObj(tableInC)
76
77    @classmethod
78    def InitFromObj(cls, tableInC):
79        x = TableInCT()
80        x._UnPack(tableInC)
81        return x
82
83    # TableInCT
84    def _UnPack(self, tableInC):
85        if tableInC is None:
86            return
87        if tableInC.ReferToA1() is not None:
88            self.referToA1 = TableInFirstNST.InitFromObj(tableInC.ReferToA1())
89        if tableInC.ReferToA2() is not None:
90            self.referToA2 = SecondTableInAT.InitFromObj(tableInC.ReferToA2())
91
92    # TableInCT
93    def Pack(self, builder):
94        if self.referToA1 is not None:
95            referToA1 = self.referToA1.Pack(builder)
96        if self.referToA2 is not None:
97            referToA2 = self.referToA2.Pack(builder)
98        TableInCStart(builder)
99        if self.referToA1 is not None:
100            TableInCAddReferToA1(builder, referToA1)
101        if self.referToA2 is not None:
102            TableInCAddReferToA2(builder, referToA2)
103        tableInC = TableInCEnd(builder)
104        return tableInC
105