forked from BigfootDev/flatbuffers
* First working hack of adding 64-bit. Don't judge :) * Made vector_downward work on 64 bit types * vector_downward uses size_t, added offset64 to reflection * cleaned up adding offset64 in parser * Add C++ testing skeleton for 64-bit * working test for CreateVector64 * working >2 GiB buffers * support for large strings * simplified CreateString<> to just provide the offset type * generalize CreateVector template * update test_64.afb due to upstream format change * Added Vector64 type, which is just an alias for vector ATM * Switch to Offset64 for Vector64 * Update for reflection bfbs output change * Starting to add support for vector64 type in C++ * made a generic CreateVector that can handle different offsets and vector types * Support for 32-vector with 64-addressing * Vector64 basic builder + tests working * basic support for json vector64 support * renamed fields in test_64bit.fbs to better reflect their use * working C++ vector64 builder * Apply --annotate-sparse-vector to 64-bit tests * Enable Vector64 for --annotate-sparse-vectors * Merged from upstream * Add `near_string` field for testing 32-bit offsets alongside * keep track of where the 32-bit and 64-bit regions are for flatbufferbuilder * move template<> outside class body for GCC * update run.sh to build and run tests * basic assertion for adding 64-bit offset at the wrong time * started to separate `FlatBufferBuilder` into two classes, 1 64-bit aware, the other not * add test for nested flatbuffer vector64, fix bug in alignment of big vectors * fixed CreateDirect method by iterating by Offset64 first * internal refactoring of flatbufferbuilder * block not supported languages in the parser from using 64-bit * evolution tests for adding a vector64 field * conformity tests for adding/removing offset64 attributes * ensure test is for a big buffer * add parser error tests for `offset64` and `vector64` attributes * add missing static that GCC only complains about * remove stdint-uintn.h header that gets automatically added * move 64-bit CalculateOffset internal * fixed return size of EndVector * various fixes on windows * add SizeT to vector_downward * minimze range of size changes in vector and builder * reworked how tracking if 64-offsets are added * Add ReturnT to EndVector * small cleanups * remove need for second Array definition * combine IndirectHelpers into one definition * started support for vector of struct * Support for 32/64-vectors of structs + Offset64 * small cleanups * add verification for vector64 * add sized prefix for 64-bit buffers * add fuzzer for 64-bit * add example of adding many vectors using a wrapper table * run the new -bfbs-gen-embed logic on the 64-bit tests * remove run.sh and fix cmakelist issue * fixed bazel rules * fixed some PR comments * add 64-bit tests to cmakelist
273 lines
8.8 KiB
Python
273 lines
8.8 KiB
Python
# automatically generated by the FlatBuffers compiler, do not modify
|
|
|
|
# namespace: reflection
|
|
|
|
import flatbuffers
|
|
from flatbuffers.compat import import_numpy
|
|
np = import_numpy()
|
|
|
|
class Field(object):
|
|
__slots__ = ['_tab']
|
|
|
|
@classmethod
|
|
def GetRootAs(cls, buf, offset=0):
|
|
n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
|
|
x = Field()
|
|
x.Init(buf, n + offset)
|
|
return x
|
|
|
|
@classmethod
|
|
def GetRootAsField(cls, buf, offset=0):
|
|
"""This method is deprecated. Please switch to GetRootAs."""
|
|
return cls.GetRootAs(buf, offset)
|
|
@classmethod
|
|
def FieldBufferHasIdentifier(cls, buf, offset, size_prefixed=False):
|
|
return flatbuffers.util.BufferHasIdentifier(buf, offset, b"\x42\x46\x42\x53", size_prefixed=size_prefixed)
|
|
|
|
# Field
|
|
def Init(self, buf, pos):
|
|
self._tab = flatbuffers.table.Table(buf, pos)
|
|
|
|
# Field
|
|
def Name(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
|
|
if o != 0:
|
|
return self._tab.String(o + self._tab.Pos)
|
|
return None
|
|
|
|
# Field
|
|
def Type(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
|
|
if o != 0:
|
|
x = self._tab.Indirect(o + self._tab.Pos)
|
|
from .reflection.Type import Type
|
|
obj = Type()
|
|
obj.Init(self._tab.Bytes, x)
|
|
return obj
|
|
return None
|
|
|
|
# Field
|
|
def Id(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
|
|
if o != 0:
|
|
return self._tab.Get(flatbuffers.number_types.Uint16Flags, o + self._tab.Pos)
|
|
return 0
|
|
|
|
# Field
|
|
def Offset(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10))
|
|
if o != 0:
|
|
return self._tab.Get(flatbuffers.number_types.Uint16Flags, o + self._tab.Pos)
|
|
return 0
|
|
|
|
# Field
|
|
def DefaultInteger(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
|
|
if o != 0:
|
|
return self._tab.Get(flatbuffers.number_types.Int64Flags, o + self._tab.Pos)
|
|
return 0
|
|
|
|
# Field
|
|
def DefaultReal(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(14))
|
|
if o != 0:
|
|
return self._tab.Get(flatbuffers.number_types.Float64Flags, o + self._tab.Pos)
|
|
return 0.0
|
|
|
|
# Field
|
|
def Deprecated(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(16))
|
|
if o != 0:
|
|
return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos))
|
|
return False
|
|
|
|
# Field
|
|
def Required(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(18))
|
|
if o != 0:
|
|
return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos))
|
|
return False
|
|
|
|
# Field
|
|
def Key(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(20))
|
|
if o != 0:
|
|
return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos))
|
|
return False
|
|
|
|
# Field
|
|
def Attributes(self, j):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22))
|
|
if o != 0:
|
|
x = self._tab.Vector(o)
|
|
x += flatbuffers.number_types.UOffsetTFlags.py_type(j) * 4
|
|
x = self._tab.Indirect(x)
|
|
from .reflection.KeyValue import KeyValue
|
|
obj = KeyValue()
|
|
obj.Init(self._tab.Bytes, x)
|
|
return obj
|
|
return None
|
|
|
|
# Field
|
|
def AttributesLength(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22))
|
|
if o != 0:
|
|
return self._tab.VectorLen(o)
|
|
return 0
|
|
|
|
# Field
|
|
def AttributesIsNone(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(22))
|
|
return o == 0
|
|
|
|
# Field
|
|
def Documentation(self, j):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(24))
|
|
if o != 0:
|
|
a = self._tab.Vector(o)
|
|
return self._tab.String(a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 4))
|
|
return ""
|
|
|
|
# Field
|
|
def DocumentationLength(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(24))
|
|
if o != 0:
|
|
return self._tab.VectorLen(o)
|
|
return 0
|
|
|
|
# Field
|
|
def DocumentationIsNone(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(24))
|
|
return o == 0
|
|
|
|
# Field
|
|
def Optional(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(26))
|
|
if o != 0:
|
|
return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos))
|
|
return False
|
|
|
|
# Number of padding octets to always add after this field. Structs only.
|
|
# Field
|
|
def Padding(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(28))
|
|
if o != 0:
|
|
return self._tab.Get(flatbuffers.number_types.Uint16Flags, o + self._tab.Pos)
|
|
return 0
|
|
|
|
# If the field uses 64-bit offsets.
|
|
# Field
|
|
def Offset64(self):
|
|
o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(30))
|
|
if o != 0:
|
|
return bool(self._tab.Get(flatbuffers.number_types.BoolFlags, o + self._tab.Pos))
|
|
return False
|
|
|
|
def FieldStart(builder):
|
|
builder.StartObject(14)
|
|
|
|
def Start(builder):
|
|
FieldStart(builder)
|
|
|
|
def FieldAddName(builder, name):
|
|
builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(name), 0)
|
|
|
|
def AddName(builder: flatbuffers.Builder, name: int):
|
|
FieldAddName(builder, name)
|
|
|
|
def FieldAddType(builder, type):
|
|
builder.PrependUOffsetTRelativeSlot(1, flatbuffers.number_types.UOffsetTFlags.py_type(type), 0)
|
|
|
|
def AddType(builder: flatbuffers.Builder, type: int):
|
|
FieldAddType(builder, type)
|
|
|
|
def FieldAddId(builder, id):
|
|
builder.PrependUint16Slot(2, id, 0)
|
|
|
|
def AddId(builder: flatbuffers.Builder, id: int):
|
|
FieldAddId(builder, id)
|
|
|
|
def FieldAddOffset(builder, offset):
|
|
builder.PrependUint16Slot(3, offset, 0)
|
|
|
|
def AddOffset(builder: flatbuffers.Builder, offset: int):
|
|
FieldAddOffset(builder, offset)
|
|
|
|
def FieldAddDefaultInteger(builder, defaultInteger):
|
|
builder.PrependInt64Slot(4, defaultInteger, 0)
|
|
|
|
def AddDefaultInteger(builder: flatbuffers.Builder, defaultInteger: int):
|
|
FieldAddDefaultInteger(builder, defaultInteger)
|
|
|
|
def FieldAddDefaultReal(builder, defaultReal):
|
|
builder.PrependFloat64Slot(5, defaultReal, 0.0)
|
|
|
|
def AddDefaultReal(builder: flatbuffers.Builder, defaultReal: float):
|
|
FieldAddDefaultReal(builder, defaultReal)
|
|
|
|
def FieldAddDeprecated(builder, deprecated):
|
|
builder.PrependBoolSlot(6, deprecated, 0)
|
|
|
|
def AddDeprecated(builder: flatbuffers.Builder, deprecated: bool):
|
|
FieldAddDeprecated(builder, deprecated)
|
|
|
|
def FieldAddRequired(builder, required):
|
|
builder.PrependBoolSlot(7, required, 0)
|
|
|
|
def AddRequired(builder: flatbuffers.Builder, required: bool):
|
|
FieldAddRequired(builder, required)
|
|
|
|
def FieldAddKey(builder, key):
|
|
builder.PrependBoolSlot(8, key, 0)
|
|
|
|
def AddKey(builder: flatbuffers.Builder, key: bool):
|
|
FieldAddKey(builder, key)
|
|
|
|
def FieldAddAttributes(builder, attributes):
|
|
builder.PrependUOffsetTRelativeSlot(9, flatbuffers.number_types.UOffsetTFlags.py_type(attributes), 0)
|
|
|
|
def AddAttributes(builder: flatbuffers.Builder, attributes: int):
|
|
FieldAddAttributes(builder, attributes)
|
|
|
|
def FieldStartAttributesVector(builder, numElems):
|
|
return builder.StartVector(4, numElems, 4)
|
|
|
|
def StartAttributesVector(builder, numElems: int) -> int:
|
|
return FieldStartAttributesVector(builder, numElems)
|
|
|
|
def FieldAddDocumentation(builder, documentation):
|
|
builder.PrependUOffsetTRelativeSlot(10, flatbuffers.number_types.UOffsetTFlags.py_type(documentation), 0)
|
|
|
|
def AddDocumentation(builder: flatbuffers.Builder, documentation: int):
|
|
FieldAddDocumentation(builder, documentation)
|
|
|
|
def FieldStartDocumentationVector(builder, numElems):
|
|
return builder.StartVector(4, numElems, 4)
|
|
|
|
def StartDocumentationVector(builder, numElems: int) -> int:
|
|
return FieldStartDocumentationVector(builder, numElems)
|
|
|
|
def FieldAddOptional(builder, optional):
|
|
builder.PrependBoolSlot(11, optional, 0)
|
|
|
|
def AddOptional(builder: flatbuffers.Builder, optional: bool):
|
|
FieldAddOptional(builder, optional)
|
|
|
|
def FieldAddPadding(builder, padding):
|
|
builder.PrependUint16Slot(12, padding, 0)
|
|
|
|
def AddPadding(builder: flatbuffers.Builder, padding: int):
|
|
FieldAddPadding(builder, padding)
|
|
|
|
def FieldAddOffset64(builder, offset64):
|
|
builder.PrependBoolSlot(13, offset64, 0)
|
|
|
|
def AddOffset64(builder: flatbuffers.Builder, offset64: bool):
|
|
FieldAddOffset64(builder, offset64)
|
|
|
|
def FieldEnd(builder):
|
|
return builder.EndObject()
|
|
|
|
def End(builder):
|
|
return FieldEnd(builder)
|