ONE - On-device Neural Engine
Loading...
Searching...
No Matches
flatbuffers::Table Class Reference

#include <table.h>

Public Member Functions

const uint8_t * GetVTable () const
 
voffset_t GetOptionalFieldOffset (voffset_t field) const
 
template<typename T >
GetField (voffset_t field, T defaultval) const
 
template<typename P , typename OffsetSize = uoffset_t>
GetPointer (voffset_t field)
 
template<typename P , typename OffsetSize = uoffset_t>
GetPointer (voffset_t field) const
 
template<typename P >
GetPointer64 (voffset_t field)
 
template<typename P >
GetPointer64 (voffset_t field) const
 
template<typename P >
GetStruct (voffset_t field) const
 
template<typename Raw , typename Face >
flatbuffers::Optional< Face > GetOptional (voffset_t field) const
 
template<typename T >
bool SetField (voffset_t field, T val, T def)
 
template<typename T >
bool SetField (voffset_t field, T val)
 
bool SetPointer (voffset_t field, const uint8_t *val)
 
uint8_t * GetAddressOf (voffset_t field)
 
const uint8_t * GetAddressOf (voffset_t field) const
 
bool CheckField (voffset_t field) const
 
bool VerifyTableStart (Verifier &verifier) const
 
template<typename T >
bool VerifyField (const Verifier &verifier, voffset_t field, size_t align) const
 
template<typename T >
bool VerifyFieldRequired (const Verifier &verifier, voffset_t field, size_t align) const
 
template<typename OffsetT = uoffset_t>
bool VerifyOffset (const Verifier &verifier, voffset_t field) const
 
template<typename OffsetT = uoffset_t>
bool VerifyOffsetRequired (const Verifier &verifier, voffset_t field) const
 
bool VerifyOffset64 (const Verifier &verifier, voffset_t field) const
 
bool VerifyOffset64Required (const Verifier &verifier, voffset_t field) const
 
template<>
flatbuffers::Optional< bool > GetOptional (voffset_t field) const
 

Detailed Description

Definition at line 27 of file table.h.

Member Function Documentation

◆ CheckField()

bool flatbuffers::Table::CheckField ( voffset_t  field) const
inline

Definition at line 113 of file table.h.

113 {
114 return GetOptionalFieldOffset(field) != 0;
115 }
voffset_t GetOptionalFieldOffset(voffset_t field) const
Definition table.h:35

References GetOptionalFieldOffset().

◆ GetAddressOf() [1/2]

uint8_t * flatbuffers::Table::GetAddressOf ( voffset_t  field)
inline

Definition at line 105 of file table.h.

105 {
106 auto field_offset = GetOptionalFieldOffset(field);
107 return field_offset ? data_ + field_offset : nullptr;
108 }

References GetOptionalFieldOffset().

Referenced by GetAddressOf(), flatbuffers::GetAnyFieldAddressOf(), flatbuffers::GetAnyFieldF(), flatbuffers::GetAnyFieldI(), flatbuffers::GetAnyFieldS(), flatbuffers::SetAnyFieldF(), flatbuffers::SetAnyFieldI(), and flatbuffers::SetAnyFieldS().

◆ GetAddressOf() [2/2]

const uint8_t * flatbuffers::Table::GetAddressOf ( voffset_t  field) const
inline

Definition at line 109 of file table.h.

109 {
110 return const_cast<Table *>(this)->GetAddressOf(field);
111 }
uint8_t * GetAddressOf(voffset_t field)
Definition table.h:105

References GetAddressOf().

◆ GetField()

template<typename T >
T flatbuffers::Table::GetField ( voffset_t  field,
defaultval 
) const
inline

Definition at line 45 of file table.h.

45 {
46 auto field_offset = GetOptionalFieldOffset(field);
47 return field_offset ? ReadScalar<T>(data_ + field_offset) : defaultval;
48 }

References GetOptionalFieldOffset().

Referenced by flatbuffers::GetFieldF(), and flatbuffers::GetFieldI().

◆ GetOptional() [1/2]

template<>
flatbuffers::Optional< bool > flatbuffers::Table::GetOptional ( voffset_t  field) const
inline

Definition at line 1 of file table.h.

179 {
180 auto field_offset = GetOptionalFieldOffset(field);
181 auto p = data_ + field_offset;
182 return field_offset ? Optional<bool>(ReadScalar<uint8_t>(p) != 0)
183 : Optional<bool>();
184}
Configuration p

◆ GetOptional() [2/2]

template<typename Raw , typename Face >
flatbuffers::Optional< Face > flatbuffers::Table::GetOptional ( voffset_t  field) const
inline

Definition at line 77 of file table.h.

77 {
78 auto field_offset = GetOptionalFieldOffset(field);
79 auto p = data_ + field_offset;
80 return field_offset ? Optional<Face>(static_cast<Face>(ReadScalar<Raw>(p)))
81 : Optional<Face>();
82 }

References GetOptionalFieldOffset(), and p.

◆ GetOptionalFieldOffset()

voffset_t flatbuffers::Table::GetOptionalFieldOffset ( voffset_t  field) const
inline

Definition at line 35 of file table.h.

35 {
36 // The vtable offset is always at the start.
37 auto vtable = GetVTable();
38 // The first element is the size of the vtable (fields + type id + itself).
39 auto vtsize = ReadScalar<voffset_t>(vtable);
40 // If the field we're accessing is outside the vtable, we're reading older
41 // data, so it's the same as if the offset was 0 (not present).
42 return field < vtsize ? ReadScalar<voffset_t>(vtable + field) : 0;
43 }
const uint8_t * GetVTable() const
Definition table.h:29

References GetVTable().

Referenced by CheckField(), GetAddressOf(), GetField(), GetOptional(), GetPointer(), GetStruct(), SetField(), SetField(), SetPointer(), VerifyField(), VerifyFieldRequired(), VerifyOffset(), and VerifyOffsetRequired().

◆ GetPointer() [1/2]

template<typename P , typename OffsetSize = uoffset_t>
P flatbuffers::Table::GetPointer ( voffset_t  field)
inline

Definition at line 51 of file table.h.

51 {
52 auto field_offset = GetOptionalFieldOffset(field);
53 auto p = data_ + field_offset;
54 return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
55 : nullptr;
56 }

References GetOptionalFieldOffset(), and p.

Referenced by flatbuffers::GetFieldAnyV(), flatbuffers::GetFieldS(), flatbuffers::GetFieldT(), and flatbuffers::GetFieldV().

◆ GetPointer() [2/2]

template<typename P , typename OffsetSize = uoffset_t>
P flatbuffers::Table::GetPointer ( voffset_t  field) const
inline

Definition at line 58 of file table.h.

58 {
59 return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
60 }

◆ GetPointer64() [1/2]

template<typename P >
P flatbuffers::Table::GetPointer64 ( voffset_t  field)
inline

Definition at line 62 of file table.h.

62 {
63 return GetPointer<P, uoffset64_t>(field);
64 }

◆ GetPointer64() [2/2]

template<typename P >
P flatbuffers::Table::GetPointer64 ( voffset_t  field) const
inline

Definition at line 66 of file table.h.

66 {
67 return GetPointer<P, uoffset64_t>(field);
68 }

◆ GetStruct()

template<typename P >
P flatbuffers::Table::GetStruct ( voffset_t  field) const
inline

Definition at line 70 of file table.h.

70 {
71 auto field_offset = GetOptionalFieldOffset(field);
72 auto p = const_cast<uint8_t *>(data_ + field_offset);
73 return field_offset ? reinterpret_cast<P>(p) : nullptr;
74 }

References GetOptionalFieldOffset(), and p.

Referenced by flatbuffers::GetFieldStruct().

◆ GetVTable()

const uint8_t * flatbuffers::Table::GetVTable ( ) const
inline

Definition at line 29 of file table.h.

29 {
30 return data_ - ReadScalar<soffset_t>(data_);
31 }

Referenced by flatbuffers::GetBufferStartFromRootPointer(), and GetOptionalFieldOffset().

◆ SetField() [1/2]

template<typename T >
bool flatbuffers::Table::SetField ( voffset_t  field,
val 
)
inline

Definition at line 90 of file table.h.

90 {
91 auto field_offset = GetOptionalFieldOffset(field);
92 if (!field_offset) return false;
93 WriteScalar(data_ + field_offset, val);
94 return true;
95 }

References GetOptionalFieldOffset().

◆ SetField() [2/2]

template<typename T >
bool flatbuffers::Table::SetField ( voffset_t  field,
val,
def 
)
inline

Definition at line 84 of file table.h.

84 {
85 auto field_offset = GetOptionalFieldOffset(field);
86 if (!field_offset) return IsTheSameAs(val, def);
87 WriteScalar(data_ + field_offset, val);
88 return true;
89 }

References GetOptionalFieldOffset().

Referenced by flatbuffers::SetField().

◆ SetPointer()

bool flatbuffers::Table::SetPointer ( voffset_t  field,
const uint8_t *  val 
)
inline

Definition at line 97 of file table.h.

97 {
98 auto field_offset = GetOptionalFieldOffset(field);
99 if (!field_offset) return false;
100 WriteScalar(data_ + field_offset,
101 static_cast<uoffset_t>(val - (data_ + field_offset)));
102 return true;
103 }

References GetOptionalFieldOffset().

Referenced by flatbuffers::SetFieldT().

◆ VerifyField()

template<typename T >
bool flatbuffers::Table::VerifyField ( const Verifier &  verifier,
voffset_t  field,
size_t  align 
) const
inline

Definition at line 125 of file table.h.

126 {
127 // Calling GetOptionalFieldOffset should be safe now thanks to
128 // VerifyTable().
129 auto field_offset = GetOptionalFieldOffset(field);
130 // Check the actual field.
131 return !field_offset || verifier.VerifyField<T>(data_, field_offset, align);
132 }

References GetOptionalFieldOffset().

◆ VerifyFieldRequired()

template<typename T >
bool flatbuffers::Table::VerifyFieldRequired ( const Verifier &  verifier,
voffset_t  field,
size_t  align 
) const
inline

Definition at line 136 of file table.h.

137 {
138 auto field_offset = GetOptionalFieldOffset(field);
139 return verifier.Check(field_offset != 0) &&
140 verifier.VerifyField<T>(data_, field_offset, align);
141 }

References GetOptionalFieldOffset().

◆ VerifyOffset()

template<typename OffsetT = uoffset_t>
bool flatbuffers::Table::VerifyOffset ( const Verifier &  verifier,
voffset_t  field 
) const
inline

Definition at line 145 of file table.h.

145 {
146 auto field_offset = GetOptionalFieldOffset(field);
147 return !field_offset || verifier.VerifyOffset<OffsetT>(data_, field_offset);
148 }

References GetOptionalFieldOffset().

◆ VerifyOffset64()

bool flatbuffers::Table::VerifyOffset64 ( const Verifier &  verifier,
voffset_t  field 
) const
inline

Definition at line 157 of file table.h.

157 {
158 return VerifyOffset<uoffset64_t>(verifier, field);
159 }

◆ VerifyOffset64Required()

bool flatbuffers::Table::VerifyOffset64Required ( const Verifier &  verifier,
voffset_t  field 
) const
inline

Definition at line 161 of file table.h.

161 {
162 return VerifyOffsetRequired<uoffset64_t>(verifier, field);
163 }

◆ VerifyOffsetRequired()

template<typename OffsetT = uoffset_t>
bool flatbuffers::Table::VerifyOffsetRequired ( const Verifier &  verifier,
voffset_t  field 
) const
inline

Definition at line 151 of file table.h.

151 {
152 auto field_offset = GetOptionalFieldOffset(field);
153 return verifier.Check(field_offset != 0) &&
154 verifier.VerifyOffset<OffsetT>(data_, field_offset);
155 }

References GetOptionalFieldOffset().

◆ VerifyTableStart()

bool flatbuffers::Table::VerifyTableStart ( Verifier &  verifier) const
inline

Definition at line 119 of file table.h.

119 {
120 return verifier.VerifyTableStart(data_);
121 }

The documentation for this class was generated from the following file: