reflection_generated.h 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556
  1. // automatically generated by the FlatBuffers compiler, do not modify
  2. #ifndef FLATBUFFERS_GENERATED_REFLECTION_REFLECTION_H_
  3. #define FLATBUFFERS_GENERATED_REFLECTION_REFLECTION_H_
  4. #include "flatbuffers/flatbuffers.h"
  5. namespace reflection {
  6. struct Type;
  7. struct KeyValue;
  8. struct EnumVal;
  9. struct Enum;
  10. struct Field;
  11. struct Object;
  12. struct Schema;
  13. enum BaseType {
  14. None = 0,
  15. UType = 1,
  16. Bool = 2,
  17. Byte = 3,
  18. UByte = 4,
  19. Short = 5,
  20. UShort = 6,
  21. Int = 7,
  22. UInt = 8,
  23. Long = 9,
  24. ULong = 10,
  25. Float = 11,
  26. Double = 12,
  27. String = 13,
  28. Vector = 14,
  29. Obj = 15,
  30. Union = 16
  31. };
  32. inline const char **EnumNamesBaseType() {
  33. static const char *names[] = { "None", "UType", "Bool", "Byte", "UByte", "Short", "UShort", "Int", "UInt", "Long", "ULong", "Float", "Double", "String", "Vector", "Obj", "Union", nullptr };
  34. return names;
  35. }
  36. inline const char *EnumNameBaseType(BaseType e) { return EnumNamesBaseType()[static_cast<int>(e)]; }
  37. struct Type FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  38. enum {
  39. VT_BASE_TYPE = 4,
  40. VT_ELEMENT = 6,
  41. VT_INDEX = 8
  42. };
  43. BaseType base_type() const { return static_cast<BaseType>(GetField<int8_t>(VT_BASE_TYPE, 0)); }
  44. BaseType element() const { return static_cast<BaseType>(GetField<int8_t>(VT_ELEMENT, 0)); }
  45. int32_t index() const { return GetField<int32_t>(VT_INDEX, -1); }
  46. bool Verify(flatbuffers::Verifier &verifier) const {
  47. return VerifyTableStart(verifier) &&
  48. VerifyField<int8_t>(verifier, VT_BASE_TYPE) &&
  49. VerifyField<int8_t>(verifier, VT_ELEMENT) &&
  50. VerifyField<int32_t>(verifier, VT_INDEX) &&
  51. verifier.EndTable();
  52. }
  53. };
  54. struct TypeBuilder {
  55. flatbuffers::FlatBufferBuilder &fbb_;
  56. flatbuffers::uoffset_t start_;
  57. void add_base_type(BaseType base_type) { fbb_.AddElement<int8_t>(Type::VT_BASE_TYPE, static_cast<int8_t>(base_type), 0); }
  58. void add_element(BaseType element) { fbb_.AddElement<int8_t>(Type::VT_ELEMENT, static_cast<int8_t>(element), 0); }
  59. void add_index(int32_t index) { fbb_.AddElement<int32_t>(Type::VT_INDEX, index, -1); }
  60. TypeBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  61. TypeBuilder &operator=(const TypeBuilder &);
  62. flatbuffers::Offset<Type> Finish() {
  63. auto o = flatbuffers::Offset<Type>(fbb_.EndTable(start_, 3));
  64. return o;
  65. }
  66. };
  67. inline flatbuffers::Offset<Type> CreateType(flatbuffers::FlatBufferBuilder &_fbb,
  68. BaseType base_type = None,
  69. BaseType element = None,
  70. int32_t index = -1) {
  71. TypeBuilder builder_(_fbb);
  72. builder_.add_index(index);
  73. builder_.add_element(element);
  74. builder_.add_base_type(base_type);
  75. return builder_.Finish();
  76. }
  77. struct KeyValue FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  78. enum {
  79. VT_KEY = 4,
  80. VT_VALUE = 6
  81. };
  82. const flatbuffers::String *key() const { return GetPointer<const flatbuffers::String *>(VT_KEY); }
  83. bool KeyCompareLessThan(const KeyValue *o) const { return *key() < *o->key(); }
  84. int KeyCompareWithValue(const char *val) const { return strcmp(key()->c_str(), val); }
  85. const flatbuffers::String *value() const { return GetPointer<const flatbuffers::String *>(VT_VALUE); }
  86. bool Verify(flatbuffers::Verifier &verifier) const {
  87. return VerifyTableStart(verifier) &&
  88. VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_KEY) &&
  89. verifier.Verify(key()) &&
  90. VerifyField<flatbuffers::uoffset_t>(verifier, VT_VALUE) &&
  91. verifier.Verify(value()) &&
  92. verifier.EndTable();
  93. }
  94. };
  95. struct KeyValueBuilder {
  96. flatbuffers::FlatBufferBuilder &fbb_;
  97. flatbuffers::uoffset_t start_;
  98. void add_key(flatbuffers::Offset<flatbuffers::String> key) { fbb_.AddOffset(KeyValue::VT_KEY, key); }
  99. void add_value(flatbuffers::Offset<flatbuffers::String> value) { fbb_.AddOffset(KeyValue::VT_VALUE, value); }
  100. KeyValueBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  101. KeyValueBuilder &operator=(const KeyValueBuilder &);
  102. flatbuffers::Offset<KeyValue> Finish() {
  103. auto o = flatbuffers::Offset<KeyValue>(fbb_.EndTable(start_, 2));
  104. fbb_.Required(o, KeyValue::VT_KEY); // key
  105. return o;
  106. }
  107. };
  108. inline flatbuffers::Offset<KeyValue> CreateKeyValue(flatbuffers::FlatBufferBuilder &_fbb,
  109. flatbuffers::Offset<flatbuffers::String> key = 0,
  110. flatbuffers::Offset<flatbuffers::String> value = 0) {
  111. KeyValueBuilder builder_(_fbb);
  112. builder_.add_value(value);
  113. builder_.add_key(key);
  114. return builder_.Finish();
  115. }
  116. inline flatbuffers::Offset<KeyValue> CreateKeyValueDirect(flatbuffers::FlatBufferBuilder &_fbb,
  117. const char *key = nullptr,
  118. const char *value = nullptr) {
  119. return CreateKeyValue(_fbb, key ? _fbb.CreateString(key) : 0, value ? _fbb.CreateString(value) : 0);
  120. }
  121. struct EnumVal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  122. enum {
  123. VT_NAME = 4,
  124. VT_VALUE = 6,
  125. VT_OBJECT = 8
  126. };
  127. const flatbuffers::String *name() const { return GetPointer<const flatbuffers::String *>(VT_NAME); }
  128. int64_t value() const { return GetField<int64_t>(VT_VALUE, 0); }
  129. bool KeyCompareLessThan(const EnumVal *o) const { return value() < o->value(); }
  130. int KeyCompareWithValue(int64_t val) const { return value() < val ? -1 : value() > val; }
  131. const Object *object() const { return GetPointer<const Object *>(VT_OBJECT); }
  132. bool Verify(flatbuffers::Verifier &verifier) const {
  133. return VerifyTableStart(verifier) &&
  134. VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_NAME) &&
  135. verifier.Verify(name()) &&
  136. VerifyField<int64_t>(verifier, VT_VALUE) &&
  137. VerifyField<flatbuffers::uoffset_t>(verifier, VT_OBJECT) &&
  138. verifier.VerifyTable(object()) &&
  139. verifier.EndTable();
  140. }
  141. };
  142. struct EnumValBuilder {
  143. flatbuffers::FlatBufferBuilder &fbb_;
  144. flatbuffers::uoffset_t start_;
  145. void add_name(flatbuffers::Offset<flatbuffers::String> name) { fbb_.AddOffset(EnumVal::VT_NAME, name); }
  146. void add_value(int64_t value) { fbb_.AddElement<int64_t>(EnumVal::VT_VALUE, value, 0); }
  147. void add_object(flatbuffers::Offset<Object> object) { fbb_.AddOffset(EnumVal::VT_OBJECT, object); }
  148. EnumValBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  149. EnumValBuilder &operator=(const EnumValBuilder &);
  150. flatbuffers::Offset<EnumVal> Finish() {
  151. auto o = flatbuffers::Offset<EnumVal>(fbb_.EndTable(start_, 3));
  152. fbb_.Required(o, EnumVal::VT_NAME); // name
  153. return o;
  154. }
  155. };
  156. inline flatbuffers::Offset<EnumVal> CreateEnumVal(flatbuffers::FlatBufferBuilder &_fbb,
  157. flatbuffers::Offset<flatbuffers::String> name = 0,
  158. int64_t value = 0,
  159. flatbuffers::Offset<Object> object = 0) {
  160. EnumValBuilder builder_(_fbb);
  161. builder_.add_value(value);
  162. builder_.add_object(object);
  163. builder_.add_name(name);
  164. return builder_.Finish();
  165. }
  166. inline flatbuffers::Offset<EnumVal> CreateEnumValDirect(flatbuffers::FlatBufferBuilder &_fbb,
  167. const char *name = nullptr,
  168. int64_t value = 0,
  169. flatbuffers::Offset<Object> object = 0) {
  170. return CreateEnumVal(_fbb, name ? _fbb.CreateString(name) : 0, value, object);
  171. }
  172. struct Enum FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  173. enum {
  174. VT_NAME = 4,
  175. VT_VALUES = 6,
  176. VT_IS_UNION = 8,
  177. VT_UNDERLYING_TYPE = 10,
  178. VT_ATTRIBUTES = 12
  179. };
  180. const flatbuffers::String *name() const { return GetPointer<const flatbuffers::String *>(VT_NAME); }
  181. bool KeyCompareLessThan(const Enum *o) const { return *name() < *o->name(); }
  182. int KeyCompareWithValue(const char *val) const { return strcmp(name()->c_str(), val); }
  183. const flatbuffers::Vector<flatbuffers::Offset<EnumVal>> *values() const { return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<EnumVal>> *>(VT_VALUES); }
  184. bool is_union() const { return GetField<uint8_t>(VT_IS_UNION, 0) != 0; }
  185. const Type *underlying_type() const { return GetPointer<const Type *>(VT_UNDERLYING_TYPE); }
  186. const flatbuffers::Vector<flatbuffers::Offset<KeyValue>> *attributes() const { return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<KeyValue>> *>(VT_ATTRIBUTES); }
  187. bool Verify(flatbuffers::Verifier &verifier) const {
  188. return VerifyTableStart(verifier) &&
  189. VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_NAME) &&
  190. verifier.Verify(name()) &&
  191. VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_VALUES) &&
  192. verifier.Verify(values()) &&
  193. verifier.VerifyVectorOfTables(values()) &&
  194. VerifyField<uint8_t>(verifier, VT_IS_UNION) &&
  195. VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_UNDERLYING_TYPE) &&
  196. verifier.VerifyTable(underlying_type()) &&
  197. VerifyField<flatbuffers::uoffset_t>(verifier, VT_ATTRIBUTES) &&
  198. verifier.Verify(attributes()) &&
  199. verifier.VerifyVectorOfTables(attributes()) &&
  200. verifier.EndTable();
  201. }
  202. };
  203. struct EnumBuilder {
  204. flatbuffers::FlatBufferBuilder &fbb_;
  205. flatbuffers::uoffset_t start_;
  206. void add_name(flatbuffers::Offset<flatbuffers::String> name) { fbb_.AddOffset(Enum::VT_NAME, name); }
  207. void add_values(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<EnumVal>>> values) { fbb_.AddOffset(Enum::VT_VALUES, values); }
  208. void add_is_union(bool is_union) { fbb_.AddElement<uint8_t>(Enum::VT_IS_UNION, static_cast<uint8_t>(is_union), 0); }
  209. void add_underlying_type(flatbuffers::Offset<Type> underlying_type) { fbb_.AddOffset(Enum::VT_UNDERLYING_TYPE, underlying_type); }
  210. void add_attributes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<KeyValue>>> attributes) { fbb_.AddOffset(Enum::VT_ATTRIBUTES, attributes); }
  211. EnumBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  212. EnumBuilder &operator=(const EnumBuilder &);
  213. flatbuffers::Offset<Enum> Finish() {
  214. auto o = flatbuffers::Offset<Enum>(fbb_.EndTable(start_, 5));
  215. fbb_.Required(o, Enum::VT_NAME); // name
  216. fbb_.Required(o, Enum::VT_VALUES); // values
  217. fbb_.Required(o, Enum::VT_UNDERLYING_TYPE); // underlying_type
  218. return o;
  219. }
  220. };
  221. inline flatbuffers::Offset<Enum> CreateEnum(flatbuffers::FlatBufferBuilder &_fbb,
  222. flatbuffers::Offset<flatbuffers::String> name = 0,
  223. flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<EnumVal>>> values = 0,
  224. bool is_union = false,
  225. flatbuffers::Offset<Type> underlying_type = 0,
  226. flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<KeyValue>>> attributes = 0) {
  227. EnumBuilder builder_(_fbb);
  228. builder_.add_attributes(attributes);
  229. builder_.add_underlying_type(underlying_type);
  230. builder_.add_values(values);
  231. builder_.add_name(name);
  232. builder_.add_is_union(is_union);
  233. return builder_.Finish();
  234. }
  235. inline flatbuffers::Offset<Enum> CreateEnumDirect(flatbuffers::FlatBufferBuilder &_fbb,
  236. const char *name = nullptr,
  237. const std::vector<flatbuffers::Offset<EnumVal>> *values = nullptr,
  238. bool is_union = false,
  239. flatbuffers::Offset<Type> underlying_type = 0,
  240. const std::vector<flatbuffers::Offset<KeyValue>> *attributes = nullptr) {
  241. return CreateEnum(_fbb, name ? _fbb.CreateString(name) : 0, values ? _fbb.CreateVector<flatbuffers::Offset<EnumVal>>(*values) : 0, is_union, underlying_type, attributes ? _fbb.CreateVector<flatbuffers::Offset<KeyValue>>(*attributes) : 0);
  242. }
  243. struct Field FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  244. enum {
  245. VT_NAME = 4,
  246. VT_TYPE = 6,
  247. VT_ID = 8,
  248. VT_OFFSET = 10,
  249. VT_DEFAULT_INTEGER = 12,
  250. VT_DEFAULT_REAL = 14,
  251. VT_DEPRECATED = 16,
  252. VT_REQUIRED = 18,
  253. VT_KEY = 20,
  254. VT_ATTRIBUTES = 22
  255. };
  256. const flatbuffers::String *name() const { return GetPointer<const flatbuffers::String *>(VT_NAME); }
  257. bool KeyCompareLessThan(const Field *o) const { return *name() < *o->name(); }
  258. int KeyCompareWithValue(const char *val) const { return strcmp(name()->c_str(), val); }
  259. const Type *type() const { return GetPointer<const Type *>(VT_TYPE); }
  260. uint16_t id() const { return GetField<uint16_t>(VT_ID, 0); }
  261. uint16_t offset() const { return GetField<uint16_t>(VT_OFFSET, 0); }
  262. int64_t default_integer() const { return GetField<int64_t>(VT_DEFAULT_INTEGER, 0); }
  263. double default_real() const { return GetField<double>(VT_DEFAULT_REAL, 0.0); }
  264. bool deprecated() const { return GetField<uint8_t>(VT_DEPRECATED, 0) != 0; }
  265. bool required() const { return GetField<uint8_t>(VT_REQUIRED, 0) != 0; }
  266. bool key() const { return GetField<uint8_t>(VT_KEY, 0) != 0; }
  267. const flatbuffers::Vector<flatbuffers::Offset<KeyValue>> *attributes() const { return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<KeyValue>> *>(VT_ATTRIBUTES); }
  268. bool Verify(flatbuffers::Verifier &verifier) const {
  269. return VerifyTableStart(verifier) &&
  270. VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_NAME) &&
  271. verifier.Verify(name()) &&
  272. VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_TYPE) &&
  273. verifier.VerifyTable(type()) &&
  274. VerifyField<uint16_t>(verifier, VT_ID) &&
  275. VerifyField<uint16_t>(verifier, VT_OFFSET) &&
  276. VerifyField<int64_t>(verifier, VT_DEFAULT_INTEGER) &&
  277. VerifyField<double>(verifier, VT_DEFAULT_REAL) &&
  278. VerifyField<uint8_t>(verifier, VT_DEPRECATED) &&
  279. VerifyField<uint8_t>(verifier, VT_REQUIRED) &&
  280. VerifyField<uint8_t>(verifier, VT_KEY) &&
  281. VerifyField<flatbuffers::uoffset_t>(verifier, VT_ATTRIBUTES) &&
  282. verifier.Verify(attributes()) &&
  283. verifier.VerifyVectorOfTables(attributes()) &&
  284. verifier.EndTable();
  285. }
  286. };
  287. struct FieldBuilder {
  288. flatbuffers::FlatBufferBuilder &fbb_;
  289. flatbuffers::uoffset_t start_;
  290. void add_name(flatbuffers::Offset<flatbuffers::String> name) { fbb_.AddOffset(Field::VT_NAME, name); }
  291. void add_type(flatbuffers::Offset<Type> type) { fbb_.AddOffset(Field::VT_TYPE, type); }
  292. void add_id(uint16_t id) { fbb_.AddElement<uint16_t>(Field::VT_ID, id, 0); }
  293. void add_offset(uint16_t offset) { fbb_.AddElement<uint16_t>(Field::VT_OFFSET, offset, 0); }
  294. void add_default_integer(int64_t default_integer) { fbb_.AddElement<int64_t>(Field::VT_DEFAULT_INTEGER, default_integer, 0); }
  295. void add_default_real(double default_real) { fbb_.AddElement<double>(Field::VT_DEFAULT_REAL, default_real, 0.0); }
  296. void add_deprecated(bool deprecated) { fbb_.AddElement<uint8_t>(Field::VT_DEPRECATED, static_cast<uint8_t>(deprecated), 0); }
  297. void add_required(bool required) { fbb_.AddElement<uint8_t>(Field::VT_REQUIRED, static_cast<uint8_t>(required), 0); }
  298. void add_key(bool key) { fbb_.AddElement<uint8_t>(Field::VT_KEY, static_cast<uint8_t>(key), 0); }
  299. void add_attributes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<KeyValue>>> attributes) { fbb_.AddOffset(Field::VT_ATTRIBUTES, attributes); }
  300. FieldBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  301. FieldBuilder &operator=(const FieldBuilder &);
  302. flatbuffers::Offset<Field> Finish() {
  303. auto o = flatbuffers::Offset<Field>(fbb_.EndTable(start_, 10));
  304. fbb_.Required(o, Field::VT_NAME); // name
  305. fbb_.Required(o, Field::VT_TYPE); // type
  306. return o;
  307. }
  308. };
  309. inline flatbuffers::Offset<Field> CreateField(flatbuffers::FlatBufferBuilder &_fbb,
  310. flatbuffers::Offset<flatbuffers::String> name = 0,
  311. flatbuffers::Offset<Type> type = 0,
  312. uint16_t id = 0,
  313. uint16_t offset = 0,
  314. int64_t default_integer = 0,
  315. double default_real = 0.0,
  316. bool deprecated = false,
  317. bool required = false,
  318. bool key = false,
  319. flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<KeyValue>>> attributes = 0) {
  320. FieldBuilder builder_(_fbb);
  321. builder_.add_default_real(default_real);
  322. builder_.add_default_integer(default_integer);
  323. builder_.add_attributes(attributes);
  324. builder_.add_type(type);
  325. builder_.add_name(name);
  326. builder_.add_offset(offset);
  327. builder_.add_id(id);
  328. builder_.add_key(key);
  329. builder_.add_required(required);
  330. builder_.add_deprecated(deprecated);
  331. return builder_.Finish();
  332. }
  333. inline flatbuffers::Offset<Field> CreateFieldDirect(flatbuffers::FlatBufferBuilder &_fbb,
  334. const char *name = nullptr,
  335. flatbuffers::Offset<Type> type = 0,
  336. uint16_t id = 0,
  337. uint16_t offset = 0,
  338. int64_t default_integer = 0,
  339. double default_real = 0.0,
  340. bool deprecated = false,
  341. bool required = false,
  342. bool key = false,
  343. const std::vector<flatbuffers::Offset<KeyValue>> *attributes = nullptr) {
  344. return CreateField(_fbb, name ? _fbb.CreateString(name) : 0, type, id, offset, default_integer, default_real, deprecated, required, key, attributes ? _fbb.CreateVector<flatbuffers::Offset<KeyValue>>(*attributes) : 0);
  345. }
  346. struct Object FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  347. enum {
  348. VT_NAME = 4,
  349. VT_FIELDS = 6,
  350. VT_IS_STRUCT = 8,
  351. VT_MINALIGN = 10,
  352. VT_BYTESIZE = 12,
  353. VT_ATTRIBUTES = 14
  354. };
  355. const flatbuffers::String *name() const { return GetPointer<const flatbuffers::String *>(VT_NAME); }
  356. bool KeyCompareLessThan(const Object *o) const { return *name() < *o->name(); }
  357. int KeyCompareWithValue(const char *val) const { return strcmp(name()->c_str(), val); }
  358. const flatbuffers::Vector<flatbuffers::Offset<Field>> *fields() const { return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Field>> *>(VT_FIELDS); }
  359. bool is_struct() const { return GetField<uint8_t>(VT_IS_STRUCT, 0) != 0; }
  360. int32_t minalign() const { return GetField<int32_t>(VT_MINALIGN, 0); }
  361. int32_t bytesize() const { return GetField<int32_t>(VT_BYTESIZE, 0); }
  362. const flatbuffers::Vector<flatbuffers::Offset<KeyValue>> *attributes() const { return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<KeyValue>> *>(VT_ATTRIBUTES); }
  363. bool Verify(flatbuffers::Verifier &verifier) const {
  364. return VerifyTableStart(verifier) &&
  365. VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_NAME) &&
  366. verifier.Verify(name()) &&
  367. VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_FIELDS) &&
  368. verifier.Verify(fields()) &&
  369. verifier.VerifyVectorOfTables(fields()) &&
  370. VerifyField<uint8_t>(verifier, VT_IS_STRUCT) &&
  371. VerifyField<int32_t>(verifier, VT_MINALIGN) &&
  372. VerifyField<int32_t>(verifier, VT_BYTESIZE) &&
  373. VerifyField<flatbuffers::uoffset_t>(verifier, VT_ATTRIBUTES) &&
  374. verifier.Verify(attributes()) &&
  375. verifier.VerifyVectorOfTables(attributes()) &&
  376. verifier.EndTable();
  377. }
  378. };
  379. struct ObjectBuilder {
  380. flatbuffers::FlatBufferBuilder &fbb_;
  381. flatbuffers::uoffset_t start_;
  382. void add_name(flatbuffers::Offset<flatbuffers::String> name) { fbb_.AddOffset(Object::VT_NAME, name); }
  383. void add_fields(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Field>>> fields) { fbb_.AddOffset(Object::VT_FIELDS, fields); }
  384. void add_is_struct(bool is_struct) { fbb_.AddElement<uint8_t>(Object::VT_IS_STRUCT, static_cast<uint8_t>(is_struct), 0); }
  385. void add_minalign(int32_t minalign) { fbb_.AddElement<int32_t>(Object::VT_MINALIGN, minalign, 0); }
  386. void add_bytesize(int32_t bytesize) { fbb_.AddElement<int32_t>(Object::VT_BYTESIZE, bytesize, 0); }
  387. void add_attributes(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<KeyValue>>> attributes) { fbb_.AddOffset(Object::VT_ATTRIBUTES, attributes); }
  388. ObjectBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  389. ObjectBuilder &operator=(const ObjectBuilder &);
  390. flatbuffers::Offset<Object> Finish() {
  391. auto o = flatbuffers::Offset<Object>(fbb_.EndTable(start_, 6));
  392. fbb_.Required(o, Object::VT_NAME); // name
  393. fbb_.Required(o, Object::VT_FIELDS); // fields
  394. return o;
  395. }
  396. };
  397. inline flatbuffers::Offset<Object> CreateObject(flatbuffers::FlatBufferBuilder &_fbb,
  398. flatbuffers::Offset<flatbuffers::String> name = 0,
  399. flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Field>>> fields = 0,
  400. bool is_struct = false,
  401. int32_t minalign = 0,
  402. int32_t bytesize = 0,
  403. flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<KeyValue>>> attributes = 0) {
  404. ObjectBuilder builder_(_fbb);
  405. builder_.add_attributes(attributes);
  406. builder_.add_bytesize(bytesize);
  407. builder_.add_minalign(minalign);
  408. builder_.add_fields(fields);
  409. builder_.add_name(name);
  410. builder_.add_is_struct(is_struct);
  411. return builder_.Finish();
  412. }
  413. inline flatbuffers::Offset<Object> CreateObjectDirect(flatbuffers::FlatBufferBuilder &_fbb,
  414. const char *name = nullptr,
  415. const std::vector<flatbuffers::Offset<Field>> *fields = nullptr,
  416. bool is_struct = false,
  417. int32_t minalign = 0,
  418. int32_t bytesize = 0,
  419. const std::vector<flatbuffers::Offset<KeyValue>> *attributes = nullptr) {
  420. return CreateObject(_fbb, name ? _fbb.CreateString(name) : 0, fields ? _fbb.CreateVector<flatbuffers::Offset<Field>>(*fields) : 0, is_struct, minalign, bytesize, attributes ? _fbb.CreateVector<flatbuffers::Offset<KeyValue>>(*attributes) : 0);
  421. }
  422. struct Schema FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
  423. enum {
  424. VT_OBJECTS = 4,
  425. VT_ENUMS = 6,
  426. VT_FILE_IDENT = 8,
  427. VT_FILE_EXT = 10,
  428. VT_ROOT_TABLE = 12
  429. };
  430. const flatbuffers::Vector<flatbuffers::Offset<Object>> *objects() const { return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Object>> *>(VT_OBJECTS); }
  431. const flatbuffers::Vector<flatbuffers::Offset<Enum>> *enums() const { return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<Enum>> *>(VT_ENUMS); }
  432. const flatbuffers::String *file_ident() const { return GetPointer<const flatbuffers::String *>(VT_FILE_IDENT); }
  433. const flatbuffers::String *file_ext() const { return GetPointer<const flatbuffers::String *>(VT_FILE_EXT); }
  434. const Object *root_table() const { return GetPointer<const Object *>(VT_ROOT_TABLE); }
  435. bool Verify(flatbuffers::Verifier &verifier) const {
  436. return VerifyTableStart(verifier) &&
  437. VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_OBJECTS) &&
  438. verifier.Verify(objects()) &&
  439. verifier.VerifyVectorOfTables(objects()) &&
  440. VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_ENUMS) &&
  441. verifier.Verify(enums()) &&
  442. verifier.VerifyVectorOfTables(enums()) &&
  443. VerifyField<flatbuffers::uoffset_t>(verifier, VT_FILE_IDENT) &&
  444. verifier.Verify(file_ident()) &&
  445. VerifyField<flatbuffers::uoffset_t>(verifier, VT_FILE_EXT) &&
  446. verifier.Verify(file_ext()) &&
  447. VerifyField<flatbuffers::uoffset_t>(verifier, VT_ROOT_TABLE) &&
  448. verifier.VerifyTable(root_table()) &&
  449. verifier.EndTable();
  450. }
  451. };
  452. struct SchemaBuilder {
  453. flatbuffers::FlatBufferBuilder &fbb_;
  454. flatbuffers::uoffset_t start_;
  455. void add_objects(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Object>>> objects) { fbb_.AddOffset(Schema::VT_OBJECTS, objects); }
  456. void add_enums(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Enum>>> enums) { fbb_.AddOffset(Schema::VT_ENUMS, enums); }
  457. void add_file_ident(flatbuffers::Offset<flatbuffers::String> file_ident) { fbb_.AddOffset(Schema::VT_FILE_IDENT, file_ident); }
  458. void add_file_ext(flatbuffers::Offset<flatbuffers::String> file_ext) { fbb_.AddOffset(Schema::VT_FILE_EXT, file_ext); }
  459. void add_root_table(flatbuffers::Offset<Object> root_table) { fbb_.AddOffset(Schema::VT_ROOT_TABLE, root_table); }
  460. SchemaBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
  461. SchemaBuilder &operator=(const SchemaBuilder &);
  462. flatbuffers::Offset<Schema> Finish() {
  463. auto o = flatbuffers::Offset<Schema>(fbb_.EndTable(start_, 5));
  464. fbb_.Required(o, Schema::VT_OBJECTS); // objects
  465. fbb_.Required(o, Schema::VT_ENUMS); // enums
  466. return o;
  467. }
  468. };
  469. inline flatbuffers::Offset<Schema> CreateSchema(flatbuffers::FlatBufferBuilder &_fbb,
  470. flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Object>>> objects = 0,
  471. flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<Enum>>> enums = 0,
  472. flatbuffers::Offset<flatbuffers::String> file_ident = 0,
  473. flatbuffers::Offset<flatbuffers::String> file_ext = 0,
  474. flatbuffers::Offset<Object> root_table = 0) {
  475. SchemaBuilder builder_(_fbb);
  476. builder_.add_root_table(root_table);
  477. builder_.add_file_ext(file_ext);
  478. builder_.add_file_ident(file_ident);
  479. builder_.add_enums(enums);
  480. builder_.add_objects(objects);
  481. return builder_.Finish();
  482. }
  483. inline flatbuffers::Offset<Schema> CreateSchemaDirect(flatbuffers::FlatBufferBuilder &_fbb,
  484. const std::vector<flatbuffers::Offset<Object>> *objects = nullptr,
  485. const std::vector<flatbuffers::Offset<Enum>> *enums = nullptr,
  486. const char *file_ident = nullptr,
  487. const char *file_ext = nullptr,
  488. flatbuffers::Offset<Object> root_table = 0) {
  489. return CreateSchema(_fbb, objects ? _fbb.CreateVector<flatbuffers::Offset<Object>>(*objects) : 0, enums ? _fbb.CreateVector<flatbuffers::Offset<Enum>>(*enums) : 0, file_ident ? _fbb.CreateString(file_ident) : 0, file_ext ? _fbb.CreateString(file_ext) : 0, root_table);
  490. }
  491. inline const reflection::Schema *GetSchema(const void *buf) {
  492. return flatbuffers::GetRoot<reflection::Schema>(buf);
  493. }
  494. inline const char *SchemaIdentifier() {
  495. return "BFBS";
  496. }
  497. inline bool SchemaBufferHasIdentifier(const void *buf) {
  498. return flatbuffers::BufferHasIdentifier(buf, SchemaIdentifier());
  499. }
  500. inline bool VerifySchemaBuffer(flatbuffers::Verifier &verifier) {
  501. return verifier.VerifyBuffer<reflection::Schema>(SchemaIdentifier());
  502. }
  503. inline const char *SchemaExtension() { return "bfbs"; }
  504. inline void FinishSchemaBuffer(flatbuffers::FlatBufferBuilder &fbb, flatbuffers::Offset<reflection::Schema> root) {
  505. fbb.Finish(root, SchemaIdentifier());
  506. }
  507. } // namespace reflection
  508. #endif // FLATBUFFERS_GENERATED_REFLECTION_REFLECTION_H_