github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/executor/_include/flatbuffers/reflection_generated.h (about)

     1  // automatically generated by the FlatBuffers compiler, do not modify
     2  
     3  
     4  #ifndef FLATBUFFERS_GENERATED_REFLECTION_REFLECTION_H_
     5  #define FLATBUFFERS_GENERATED_REFLECTION_REFLECTION_H_
     6  
     7  #include "flatbuffers/flatbuffers.h"
     8  
     9  // Ensure the included flatbuffers.h is the same version as when this file was
    10  // generated, otherwise it may not be compatible.
    11  static_assert(FLATBUFFERS_VERSION_MAJOR == 23 &&
    12                FLATBUFFERS_VERSION_MINOR == 5 &&
    13                FLATBUFFERS_VERSION_REVISION == 26,
    14               "Non-compatible flatbuffers version included");
    15  
    16  namespace reflection {
    17  
    18  struct Type;
    19  struct TypeBuilder;
    20  
    21  struct KeyValue;
    22  struct KeyValueBuilder;
    23  
    24  struct EnumVal;
    25  struct EnumValBuilder;
    26  
    27  struct Enum;
    28  struct EnumBuilder;
    29  
    30  struct Field;
    31  struct FieldBuilder;
    32  
    33  struct Object;
    34  struct ObjectBuilder;
    35  
    36  struct RPCCall;
    37  struct RPCCallBuilder;
    38  
    39  struct Service;
    40  struct ServiceBuilder;
    41  
    42  struct SchemaFile;
    43  struct SchemaFileBuilder;
    44  
    45  struct Schema;
    46  struct SchemaBuilder;
    47  
    48  enum BaseType {
    49    None = 0,
    50    UType = 1,
    51    Bool = 2,
    52    Byte = 3,
    53    UByte = 4,
    54    Short = 5,
    55    UShort = 6,
    56    Int = 7,
    57    UInt = 8,
    58    Long = 9,
    59    ULong = 10,
    60    Float = 11,
    61    Double = 12,
    62    String = 13,
    63    Vector = 14,
    64    Obj = 15,
    65    Union = 16,
    66    Array = 17,
    67    Vector64 = 18,
    68    MaxBaseType = 19
    69  };
    70  
    71  inline const BaseType (&EnumValuesBaseType())[20] {
    72    static const BaseType values[] = {
    73      None,
    74      UType,
    75      Bool,
    76      Byte,
    77      UByte,
    78      Short,
    79      UShort,
    80      Int,
    81      UInt,
    82      Long,
    83      ULong,
    84      Float,
    85      Double,
    86      String,
    87      Vector,
    88      Obj,
    89      Union,
    90      Array,
    91      Vector64,
    92      MaxBaseType
    93    };
    94    return values;
    95  }
    96  
    97  inline const char * const *EnumNamesBaseType() {
    98    static const char * const names[21] = {
    99      "None",
   100      "UType",
   101      "Bool",
   102      "Byte",
   103      "UByte",
   104      "Short",
   105      "UShort",
   106      "Int",
   107      "UInt",
   108      "Long",
   109      "ULong",
   110      "Float",
   111      "Double",
   112      "String",
   113      "Vector",
   114      "Obj",
   115      "Union",
   116      "Array",
   117      "Vector64",
   118      "MaxBaseType",
   119      nullptr
   120    };
   121    return names;
   122  }
   123  
   124  inline const char *EnumNameBaseType(BaseType e) {
   125    if (::flatbuffers::IsOutRange(e, None, MaxBaseType)) return "";
   126    const size_t index = static_cast<size_t>(e);
   127    return EnumNamesBaseType()[index];
   128  }
   129  
   130  /// New schema language features that are not supported by old code generators.
   131  enum AdvancedFeatures {
   132    AdvancedArrayFeatures = 1ULL,
   133    AdvancedUnionFeatures = 2ULL,
   134    OptionalScalars = 4ULL,
   135    DefaultVectorsAndStrings = 8ULL
   136  };
   137  
   138  inline const AdvancedFeatures (&EnumValuesAdvancedFeatures())[4] {
   139    static const AdvancedFeatures values[] = {
   140      AdvancedArrayFeatures,
   141      AdvancedUnionFeatures,
   142      OptionalScalars,
   143      DefaultVectorsAndStrings
   144    };
   145    return values;
   146  }
   147  
   148  inline const char * const *EnumNamesAdvancedFeatures() {
   149    static const char * const names[9] = {
   150      "AdvancedArrayFeatures",
   151      "AdvancedUnionFeatures",
   152      "",
   153      "OptionalScalars",
   154      "",
   155      "",
   156      "",
   157      "DefaultVectorsAndStrings",
   158      nullptr
   159    };
   160    return names;
   161  }
   162  
   163  inline const char *EnumNameAdvancedFeatures(AdvancedFeatures e) {
   164    if (::flatbuffers::IsOutRange(e, AdvancedArrayFeatures, DefaultVectorsAndStrings)) return "";
   165    const size_t index = static_cast<size_t>(e) - static_cast<size_t>(AdvancedArrayFeatures);
   166    return EnumNamesAdvancedFeatures()[index];
   167  }
   168  
   169  struct Type FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
   170    typedef TypeBuilder Builder;
   171    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
   172      VT_BASE_TYPE = 4,
   173      VT_ELEMENT = 6,
   174      VT_INDEX = 8,
   175      VT_FIXED_LENGTH = 10,
   176      VT_BASE_SIZE = 12,
   177      VT_ELEMENT_SIZE = 14
   178    };
   179    reflection::BaseType base_type() const {
   180      return static_cast<reflection::BaseType>(GetField<int8_t>(VT_BASE_TYPE, 0));
   181    }
   182    reflection::BaseType element() const {
   183      return static_cast<reflection::BaseType>(GetField<int8_t>(VT_ELEMENT, 0));
   184    }
   185    int32_t index() const {
   186      return GetField<int32_t>(VT_INDEX, -1);
   187    }
   188    uint16_t fixed_length() const {
   189      return GetField<uint16_t>(VT_FIXED_LENGTH, 0);
   190    }
   191    /// The size (octets) of the `base_type` field.
   192    uint32_t base_size() const {
   193      return GetField<uint32_t>(VT_BASE_SIZE, 4);
   194    }
   195    /// The size (octets) of the `element` field, if present.
   196    uint32_t element_size() const {
   197      return GetField<uint32_t>(VT_ELEMENT_SIZE, 0);
   198    }
   199    bool Verify(::flatbuffers::Verifier &verifier) const {
   200      return VerifyTableStart(verifier) &&
   201             VerifyField<int8_t>(verifier, VT_BASE_TYPE, 1) &&
   202             VerifyField<int8_t>(verifier, VT_ELEMENT, 1) &&
   203             VerifyField<int32_t>(verifier, VT_INDEX, 4) &&
   204             VerifyField<uint16_t>(verifier, VT_FIXED_LENGTH, 2) &&
   205             VerifyField<uint32_t>(verifier, VT_BASE_SIZE, 4) &&
   206             VerifyField<uint32_t>(verifier, VT_ELEMENT_SIZE, 4) &&
   207             verifier.EndTable();
   208    }
   209  };
   210  
   211  struct TypeBuilder {
   212    typedef Type Table;
   213    ::flatbuffers::FlatBufferBuilder &fbb_;
   214    ::flatbuffers::uoffset_t start_;
   215    void add_base_type(reflection::BaseType base_type) {
   216      fbb_.AddElement<int8_t>(Type::VT_BASE_TYPE, static_cast<int8_t>(base_type), 0);
   217    }
   218    void add_element(reflection::BaseType element) {
   219      fbb_.AddElement<int8_t>(Type::VT_ELEMENT, static_cast<int8_t>(element), 0);
   220    }
   221    void add_index(int32_t index) {
   222      fbb_.AddElement<int32_t>(Type::VT_INDEX, index, -1);
   223    }
   224    void add_fixed_length(uint16_t fixed_length) {
   225      fbb_.AddElement<uint16_t>(Type::VT_FIXED_LENGTH, fixed_length, 0);
   226    }
   227    void add_base_size(uint32_t base_size) {
   228      fbb_.AddElement<uint32_t>(Type::VT_BASE_SIZE, base_size, 4);
   229    }
   230    void add_element_size(uint32_t element_size) {
   231      fbb_.AddElement<uint32_t>(Type::VT_ELEMENT_SIZE, element_size, 0);
   232    }
   233    explicit TypeBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
   234          : fbb_(_fbb) {
   235      start_ = fbb_.StartTable();
   236    }
   237    ::flatbuffers::Offset<Type> Finish() {
   238      const auto end = fbb_.EndTable(start_);
   239      auto o = ::flatbuffers::Offset<Type>(end);
   240      return o;
   241    }
   242  };
   243  
   244  inline ::flatbuffers::Offset<Type> CreateType(
   245      ::flatbuffers::FlatBufferBuilder &_fbb,
   246      reflection::BaseType base_type = reflection::None,
   247      reflection::BaseType element = reflection::None,
   248      int32_t index = -1,
   249      uint16_t fixed_length = 0,
   250      uint32_t base_size = 4,
   251      uint32_t element_size = 0) {
   252    TypeBuilder builder_(_fbb);
   253    builder_.add_element_size(element_size);
   254    builder_.add_base_size(base_size);
   255    builder_.add_index(index);
   256    builder_.add_fixed_length(fixed_length);
   257    builder_.add_element(element);
   258    builder_.add_base_type(base_type);
   259    return builder_.Finish();
   260  }
   261  
   262  struct KeyValue FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
   263    typedef KeyValueBuilder Builder;
   264    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
   265      VT_KEY = 4,
   266      VT_VALUE = 6
   267    };
   268    const ::flatbuffers::String *key() const {
   269      return GetPointer<const ::flatbuffers::String *>(VT_KEY);
   270    }
   271    bool KeyCompareLessThan(const KeyValue * const o) const {
   272      return *key() < *o->key();
   273    }
   274    int KeyCompareWithValue(const char *_key) const {
   275      return strcmp(key()->c_str(), _key);
   276    }
   277    const ::flatbuffers::String *value() const {
   278      return GetPointer<const ::flatbuffers::String *>(VT_VALUE);
   279    }
   280    bool Verify(::flatbuffers::Verifier &verifier) const {
   281      return VerifyTableStart(verifier) &&
   282             VerifyOffsetRequired(verifier, VT_KEY) &&
   283             verifier.VerifyString(key()) &&
   284             VerifyOffset(verifier, VT_VALUE) &&
   285             verifier.VerifyString(value()) &&
   286             verifier.EndTable();
   287    }
   288  };
   289  
   290  struct KeyValueBuilder {
   291    typedef KeyValue Table;
   292    ::flatbuffers::FlatBufferBuilder &fbb_;
   293    ::flatbuffers::uoffset_t start_;
   294    void add_key(::flatbuffers::Offset<::flatbuffers::String> key) {
   295      fbb_.AddOffset(KeyValue::VT_KEY, key);
   296    }
   297    void add_value(::flatbuffers::Offset<::flatbuffers::String> value) {
   298      fbb_.AddOffset(KeyValue::VT_VALUE, value);
   299    }
   300    explicit KeyValueBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
   301          : fbb_(_fbb) {
   302      start_ = fbb_.StartTable();
   303    }
   304    ::flatbuffers::Offset<KeyValue> Finish() {
   305      const auto end = fbb_.EndTable(start_);
   306      auto o = ::flatbuffers::Offset<KeyValue>(end);
   307      fbb_.Required(o, KeyValue::VT_KEY);
   308      return o;
   309    }
   310  };
   311  
   312  inline ::flatbuffers::Offset<KeyValue> CreateKeyValue(
   313      ::flatbuffers::FlatBufferBuilder &_fbb,
   314      ::flatbuffers::Offset<::flatbuffers::String> key = 0,
   315      ::flatbuffers::Offset<::flatbuffers::String> value = 0) {
   316    KeyValueBuilder builder_(_fbb);
   317    builder_.add_value(value);
   318    builder_.add_key(key);
   319    return builder_.Finish();
   320  }
   321  
   322  inline ::flatbuffers::Offset<KeyValue> CreateKeyValueDirect(
   323      ::flatbuffers::FlatBufferBuilder &_fbb,
   324      const char *key = nullptr,
   325      const char *value = nullptr) {
   326    auto key__ = key ? _fbb.CreateString(key) : 0;
   327    auto value__ = value ? _fbb.CreateString(value) : 0;
   328    return reflection::CreateKeyValue(
   329        _fbb,
   330        key__,
   331        value__);
   332  }
   333  
   334  struct EnumVal FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
   335    typedef EnumValBuilder Builder;
   336    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
   337      VT_NAME = 4,
   338      VT_VALUE = 6,
   339      VT_UNION_TYPE = 10,
   340      VT_DOCUMENTATION = 12,
   341      VT_ATTRIBUTES = 14
   342    };
   343    const ::flatbuffers::String *name() const {
   344      return GetPointer<const ::flatbuffers::String *>(VT_NAME);
   345    }
   346    int64_t value() const {
   347      return GetField<int64_t>(VT_VALUE, 0);
   348    }
   349    bool KeyCompareLessThan(const EnumVal * const o) const {
   350      return value() < o->value();
   351    }
   352    int KeyCompareWithValue(int64_t _value) const {
   353      return static_cast<int>(value() > _value) - static_cast<int>(value() < _value);
   354    }
   355    const reflection::Type *union_type() const {
   356      return GetPointer<const reflection::Type *>(VT_UNION_TYPE);
   357    }
   358    const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const {
   359      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_DOCUMENTATION);
   360    }
   361    const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes() const {
   362      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *>(VT_ATTRIBUTES);
   363    }
   364    bool Verify(::flatbuffers::Verifier &verifier) const {
   365      return VerifyTableStart(verifier) &&
   366             VerifyOffsetRequired(verifier, VT_NAME) &&
   367             verifier.VerifyString(name()) &&
   368             VerifyField<int64_t>(verifier, VT_VALUE, 8) &&
   369             VerifyOffset(verifier, VT_UNION_TYPE) &&
   370             verifier.VerifyTable(union_type()) &&
   371             VerifyOffset(verifier, VT_DOCUMENTATION) &&
   372             verifier.VerifyVector(documentation()) &&
   373             verifier.VerifyVectorOfStrings(documentation()) &&
   374             VerifyOffset(verifier, VT_ATTRIBUTES) &&
   375             verifier.VerifyVector(attributes()) &&
   376             verifier.VerifyVectorOfTables(attributes()) &&
   377             verifier.EndTable();
   378    }
   379  };
   380  
   381  struct EnumValBuilder {
   382    typedef EnumVal Table;
   383    ::flatbuffers::FlatBufferBuilder &fbb_;
   384    ::flatbuffers::uoffset_t start_;
   385    void add_name(::flatbuffers::Offset<::flatbuffers::String> name) {
   386      fbb_.AddOffset(EnumVal::VT_NAME, name);
   387    }
   388    void add_value(int64_t value) {
   389      fbb_.AddElement<int64_t>(EnumVal::VT_VALUE, value, 0);
   390    }
   391    void add_union_type(::flatbuffers::Offset<reflection::Type> union_type) {
   392      fbb_.AddOffset(EnumVal::VT_UNION_TYPE, union_type);
   393    }
   394    void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) {
   395      fbb_.AddOffset(EnumVal::VT_DOCUMENTATION, documentation);
   396    }
   397    void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes) {
   398      fbb_.AddOffset(EnumVal::VT_ATTRIBUTES, attributes);
   399    }
   400    explicit EnumValBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
   401          : fbb_(_fbb) {
   402      start_ = fbb_.StartTable();
   403    }
   404    ::flatbuffers::Offset<EnumVal> Finish() {
   405      const auto end = fbb_.EndTable(start_);
   406      auto o = ::flatbuffers::Offset<EnumVal>(end);
   407      fbb_.Required(o, EnumVal::VT_NAME);
   408      return o;
   409    }
   410  };
   411  
   412  inline ::flatbuffers::Offset<EnumVal> CreateEnumVal(
   413      ::flatbuffers::FlatBufferBuilder &_fbb,
   414      ::flatbuffers::Offset<::flatbuffers::String> name = 0,
   415      int64_t value = 0,
   416      ::flatbuffers::Offset<reflection::Type> union_type = 0,
   417      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0,
   418      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes = 0) {
   419    EnumValBuilder builder_(_fbb);
   420    builder_.add_value(value);
   421    builder_.add_attributes(attributes);
   422    builder_.add_documentation(documentation);
   423    builder_.add_union_type(union_type);
   424    builder_.add_name(name);
   425    return builder_.Finish();
   426  }
   427  
   428  inline ::flatbuffers::Offset<EnumVal> CreateEnumValDirect(
   429      ::flatbuffers::FlatBufferBuilder &_fbb,
   430      const char *name = nullptr,
   431      int64_t value = 0,
   432      ::flatbuffers::Offset<reflection::Type> union_type = 0,
   433      const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr,
   434      std::vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes = nullptr) {
   435    auto name__ = name ? _fbb.CreateString(name) : 0;
   436    auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0;
   437    auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables<reflection::KeyValue>(attributes) : 0;
   438    return reflection::CreateEnumVal(
   439        _fbb,
   440        name__,
   441        value,
   442        union_type,
   443        documentation__,
   444        attributes__);
   445  }
   446  
   447  struct Enum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
   448    typedef EnumBuilder Builder;
   449    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
   450      VT_NAME = 4,
   451      VT_VALUES = 6,
   452      VT_IS_UNION = 8,
   453      VT_UNDERLYING_TYPE = 10,
   454      VT_ATTRIBUTES = 12,
   455      VT_DOCUMENTATION = 14,
   456      VT_DECLARATION_FILE = 16
   457    };
   458    const ::flatbuffers::String *name() const {
   459      return GetPointer<const ::flatbuffers::String *>(VT_NAME);
   460    }
   461    bool KeyCompareLessThan(const Enum * const o) const {
   462      return *name() < *o->name();
   463    }
   464    int KeyCompareWithValue(const char *_name) const {
   465      return strcmp(name()->c_str(), _name);
   466    }
   467    const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::EnumVal>> *values() const {
   468      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::EnumVal>> *>(VT_VALUES);
   469    }
   470    bool is_union() const {
   471      return GetField<uint8_t>(VT_IS_UNION, 0) != 0;
   472    }
   473    const reflection::Type *underlying_type() const {
   474      return GetPointer<const reflection::Type *>(VT_UNDERLYING_TYPE);
   475    }
   476    const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes() const {
   477      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *>(VT_ATTRIBUTES);
   478    }
   479    const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const {
   480      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_DOCUMENTATION);
   481    }
   482    /// File that this Enum is declared in.
   483    const ::flatbuffers::String *declaration_file() const {
   484      return GetPointer<const ::flatbuffers::String *>(VT_DECLARATION_FILE);
   485    }
   486    bool Verify(::flatbuffers::Verifier &verifier) const {
   487      return VerifyTableStart(verifier) &&
   488             VerifyOffsetRequired(verifier, VT_NAME) &&
   489             verifier.VerifyString(name()) &&
   490             VerifyOffsetRequired(verifier, VT_VALUES) &&
   491             verifier.VerifyVector(values()) &&
   492             verifier.VerifyVectorOfTables(values()) &&
   493             VerifyField<uint8_t>(verifier, VT_IS_UNION, 1) &&
   494             VerifyOffsetRequired(verifier, VT_UNDERLYING_TYPE) &&
   495             verifier.VerifyTable(underlying_type()) &&
   496             VerifyOffset(verifier, VT_ATTRIBUTES) &&
   497             verifier.VerifyVector(attributes()) &&
   498             verifier.VerifyVectorOfTables(attributes()) &&
   499             VerifyOffset(verifier, VT_DOCUMENTATION) &&
   500             verifier.VerifyVector(documentation()) &&
   501             verifier.VerifyVectorOfStrings(documentation()) &&
   502             VerifyOffset(verifier, VT_DECLARATION_FILE) &&
   503             verifier.VerifyString(declaration_file()) &&
   504             verifier.EndTable();
   505    }
   506  };
   507  
   508  struct EnumBuilder {
   509    typedef Enum Table;
   510    ::flatbuffers::FlatBufferBuilder &fbb_;
   511    ::flatbuffers::uoffset_t start_;
   512    void add_name(::flatbuffers::Offset<::flatbuffers::String> name) {
   513      fbb_.AddOffset(Enum::VT_NAME, name);
   514    }
   515    void add_values(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::EnumVal>>> values) {
   516      fbb_.AddOffset(Enum::VT_VALUES, values);
   517    }
   518    void add_is_union(bool is_union) {
   519      fbb_.AddElement<uint8_t>(Enum::VT_IS_UNION, static_cast<uint8_t>(is_union), 0);
   520    }
   521    void add_underlying_type(::flatbuffers::Offset<reflection::Type> underlying_type) {
   522      fbb_.AddOffset(Enum::VT_UNDERLYING_TYPE, underlying_type);
   523    }
   524    void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes) {
   525      fbb_.AddOffset(Enum::VT_ATTRIBUTES, attributes);
   526    }
   527    void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) {
   528      fbb_.AddOffset(Enum::VT_DOCUMENTATION, documentation);
   529    }
   530    void add_declaration_file(::flatbuffers::Offset<::flatbuffers::String> declaration_file) {
   531      fbb_.AddOffset(Enum::VT_DECLARATION_FILE, declaration_file);
   532    }
   533    explicit EnumBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
   534          : fbb_(_fbb) {
   535      start_ = fbb_.StartTable();
   536    }
   537    ::flatbuffers::Offset<Enum> Finish() {
   538      const auto end = fbb_.EndTable(start_);
   539      auto o = ::flatbuffers::Offset<Enum>(end);
   540      fbb_.Required(o, Enum::VT_NAME);
   541      fbb_.Required(o, Enum::VT_VALUES);
   542      fbb_.Required(o, Enum::VT_UNDERLYING_TYPE);
   543      return o;
   544    }
   545  };
   546  
   547  inline ::flatbuffers::Offset<Enum> CreateEnum(
   548      ::flatbuffers::FlatBufferBuilder &_fbb,
   549      ::flatbuffers::Offset<::flatbuffers::String> name = 0,
   550      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::EnumVal>>> values = 0,
   551      bool is_union = false,
   552      ::flatbuffers::Offset<reflection::Type> underlying_type = 0,
   553      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes = 0,
   554      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0,
   555      ::flatbuffers::Offset<::flatbuffers::String> declaration_file = 0) {
   556    EnumBuilder builder_(_fbb);
   557    builder_.add_declaration_file(declaration_file);
   558    builder_.add_documentation(documentation);
   559    builder_.add_attributes(attributes);
   560    builder_.add_underlying_type(underlying_type);
   561    builder_.add_values(values);
   562    builder_.add_name(name);
   563    builder_.add_is_union(is_union);
   564    return builder_.Finish();
   565  }
   566  
   567  inline ::flatbuffers::Offset<Enum> CreateEnumDirect(
   568      ::flatbuffers::FlatBufferBuilder &_fbb,
   569      const char *name = nullptr,
   570      std::vector<::flatbuffers::Offset<reflection::EnumVal>> *values = nullptr,
   571      bool is_union = false,
   572      ::flatbuffers::Offset<reflection::Type> underlying_type = 0,
   573      std::vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes = nullptr,
   574      const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr,
   575      const char *declaration_file = nullptr) {
   576    auto name__ = name ? _fbb.CreateString(name) : 0;
   577    auto values__ = values ? _fbb.CreateVectorOfSortedTables<reflection::EnumVal>(values) : 0;
   578    auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables<reflection::KeyValue>(attributes) : 0;
   579    auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0;
   580    auto declaration_file__ = declaration_file ? _fbb.CreateString(declaration_file) : 0;
   581    return reflection::CreateEnum(
   582        _fbb,
   583        name__,
   584        values__,
   585        is_union,
   586        underlying_type,
   587        attributes__,
   588        documentation__,
   589        declaration_file__);
   590  }
   591  
   592  struct Field FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
   593    typedef FieldBuilder Builder;
   594    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
   595      VT_NAME = 4,
   596      VT_TYPE = 6,
   597      VT_ID = 8,
   598      VT_OFFSET = 10,
   599      VT_DEFAULT_INTEGER = 12,
   600      VT_DEFAULT_REAL = 14,
   601      VT_DEPRECATED = 16,
   602      VT_REQUIRED = 18,
   603      VT_KEY = 20,
   604      VT_ATTRIBUTES = 22,
   605      VT_DOCUMENTATION = 24,
   606      VT_OPTIONAL = 26,
   607      VT_PADDING = 28,
   608      VT_OFFSET64 = 30
   609    };
   610    const ::flatbuffers::String *name() const {
   611      return GetPointer<const ::flatbuffers::String *>(VT_NAME);
   612    }
   613    bool KeyCompareLessThan(const Field * const o) const {
   614      return *name() < *o->name();
   615    }
   616    int KeyCompareWithValue(const char *_name) const {
   617      return strcmp(name()->c_str(), _name);
   618    }
   619    const reflection::Type *type() const {
   620      return GetPointer<const reflection::Type *>(VT_TYPE);
   621    }
   622    uint16_t id() const {
   623      return GetField<uint16_t>(VT_ID, 0);
   624    }
   625    uint16_t offset() const {
   626      return GetField<uint16_t>(VT_OFFSET, 0);
   627    }
   628    int64_t default_integer() const {
   629      return GetField<int64_t>(VT_DEFAULT_INTEGER, 0);
   630    }
   631    double default_real() const {
   632      return GetField<double>(VT_DEFAULT_REAL, 0.0);
   633    }
   634    bool deprecated() const {
   635      return GetField<uint8_t>(VT_DEPRECATED, 0) != 0;
   636    }
   637    bool required() const {
   638      return GetField<uint8_t>(VT_REQUIRED, 0) != 0;
   639    }
   640    bool key() const {
   641      return GetField<uint8_t>(VT_KEY, 0) != 0;
   642    }
   643    const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes() const {
   644      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *>(VT_ATTRIBUTES);
   645    }
   646    const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const {
   647      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_DOCUMENTATION);
   648    }
   649    bool optional() const {
   650      return GetField<uint8_t>(VT_OPTIONAL, 0) != 0;
   651    }
   652    /// Number of padding octets to always add after this field. Structs only.
   653    uint16_t padding() const {
   654      return GetField<uint16_t>(VT_PADDING, 0);
   655    }
   656    /// If the field uses 64-bit offsets.
   657    bool offset64() const {
   658      return GetField<uint8_t>(VT_OFFSET64, 0) != 0;
   659    }
   660    bool Verify(::flatbuffers::Verifier &verifier) const {
   661      return VerifyTableStart(verifier) &&
   662             VerifyOffsetRequired(verifier, VT_NAME) &&
   663             verifier.VerifyString(name()) &&
   664             VerifyOffsetRequired(verifier, VT_TYPE) &&
   665             verifier.VerifyTable(type()) &&
   666             VerifyField<uint16_t>(verifier, VT_ID, 2) &&
   667             VerifyField<uint16_t>(verifier, VT_OFFSET, 2) &&
   668             VerifyField<int64_t>(verifier, VT_DEFAULT_INTEGER, 8) &&
   669             VerifyField<double>(verifier, VT_DEFAULT_REAL, 8) &&
   670             VerifyField<uint8_t>(verifier, VT_DEPRECATED, 1) &&
   671             VerifyField<uint8_t>(verifier, VT_REQUIRED, 1) &&
   672             VerifyField<uint8_t>(verifier, VT_KEY, 1) &&
   673             VerifyOffset(verifier, VT_ATTRIBUTES) &&
   674             verifier.VerifyVector(attributes()) &&
   675             verifier.VerifyVectorOfTables(attributes()) &&
   676             VerifyOffset(verifier, VT_DOCUMENTATION) &&
   677             verifier.VerifyVector(documentation()) &&
   678             verifier.VerifyVectorOfStrings(documentation()) &&
   679             VerifyField<uint8_t>(verifier, VT_OPTIONAL, 1) &&
   680             VerifyField<uint16_t>(verifier, VT_PADDING, 2) &&
   681             VerifyField<uint8_t>(verifier, VT_OFFSET64, 1) &&
   682             verifier.EndTable();
   683    }
   684  };
   685  
   686  struct FieldBuilder {
   687    typedef Field Table;
   688    ::flatbuffers::FlatBufferBuilder &fbb_;
   689    ::flatbuffers::uoffset_t start_;
   690    void add_name(::flatbuffers::Offset<::flatbuffers::String> name) {
   691      fbb_.AddOffset(Field::VT_NAME, name);
   692    }
   693    void add_type(::flatbuffers::Offset<reflection::Type> type) {
   694      fbb_.AddOffset(Field::VT_TYPE, type);
   695    }
   696    void add_id(uint16_t id) {
   697      fbb_.AddElement<uint16_t>(Field::VT_ID, id, 0);
   698    }
   699    void add_offset(uint16_t offset) {
   700      fbb_.AddElement<uint16_t>(Field::VT_OFFSET, offset, 0);
   701    }
   702    void add_default_integer(int64_t default_integer) {
   703      fbb_.AddElement<int64_t>(Field::VT_DEFAULT_INTEGER, default_integer, 0);
   704    }
   705    void add_default_real(double default_real) {
   706      fbb_.AddElement<double>(Field::VT_DEFAULT_REAL, default_real, 0.0);
   707    }
   708    void add_deprecated(bool deprecated) {
   709      fbb_.AddElement<uint8_t>(Field::VT_DEPRECATED, static_cast<uint8_t>(deprecated), 0);
   710    }
   711    void add_required(bool required) {
   712      fbb_.AddElement<uint8_t>(Field::VT_REQUIRED, static_cast<uint8_t>(required), 0);
   713    }
   714    void add_key(bool key) {
   715      fbb_.AddElement<uint8_t>(Field::VT_KEY, static_cast<uint8_t>(key), 0);
   716    }
   717    void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes) {
   718      fbb_.AddOffset(Field::VT_ATTRIBUTES, attributes);
   719    }
   720    void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) {
   721      fbb_.AddOffset(Field::VT_DOCUMENTATION, documentation);
   722    }
   723    void add_optional(bool optional) {
   724      fbb_.AddElement<uint8_t>(Field::VT_OPTIONAL, static_cast<uint8_t>(optional), 0);
   725    }
   726    void add_padding(uint16_t padding) {
   727      fbb_.AddElement<uint16_t>(Field::VT_PADDING, padding, 0);
   728    }
   729    void add_offset64(bool offset64) {
   730      fbb_.AddElement<uint8_t>(Field::VT_OFFSET64, static_cast<uint8_t>(offset64), 0);
   731    }
   732    explicit FieldBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
   733          : fbb_(_fbb) {
   734      start_ = fbb_.StartTable();
   735    }
   736    ::flatbuffers::Offset<Field> Finish() {
   737      const auto end = fbb_.EndTable(start_);
   738      auto o = ::flatbuffers::Offset<Field>(end);
   739      fbb_.Required(o, Field::VT_NAME);
   740      fbb_.Required(o, Field::VT_TYPE);
   741      return o;
   742    }
   743  };
   744  
   745  inline ::flatbuffers::Offset<Field> CreateField(
   746      ::flatbuffers::FlatBufferBuilder &_fbb,
   747      ::flatbuffers::Offset<::flatbuffers::String> name = 0,
   748      ::flatbuffers::Offset<reflection::Type> type = 0,
   749      uint16_t id = 0,
   750      uint16_t offset = 0,
   751      int64_t default_integer = 0,
   752      double default_real = 0.0,
   753      bool deprecated = false,
   754      bool required = false,
   755      bool key = false,
   756      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes = 0,
   757      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0,
   758      bool optional = false,
   759      uint16_t padding = 0,
   760      bool offset64 = false) {
   761    FieldBuilder builder_(_fbb);
   762    builder_.add_default_real(default_real);
   763    builder_.add_default_integer(default_integer);
   764    builder_.add_documentation(documentation);
   765    builder_.add_attributes(attributes);
   766    builder_.add_type(type);
   767    builder_.add_name(name);
   768    builder_.add_padding(padding);
   769    builder_.add_offset(offset);
   770    builder_.add_id(id);
   771    builder_.add_offset64(offset64);
   772    builder_.add_optional(optional);
   773    builder_.add_key(key);
   774    builder_.add_required(required);
   775    builder_.add_deprecated(deprecated);
   776    return builder_.Finish();
   777  }
   778  
   779  inline ::flatbuffers::Offset<Field> CreateFieldDirect(
   780      ::flatbuffers::FlatBufferBuilder &_fbb,
   781      const char *name = nullptr,
   782      ::flatbuffers::Offset<reflection::Type> type = 0,
   783      uint16_t id = 0,
   784      uint16_t offset = 0,
   785      int64_t default_integer = 0,
   786      double default_real = 0.0,
   787      bool deprecated = false,
   788      bool required = false,
   789      bool key = false,
   790      std::vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes = nullptr,
   791      const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr,
   792      bool optional = false,
   793      uint16_t padding = 0,
   794      bool offset64 = false) {
   795    auto name__ = name ? _fbb.CreateString(name) : 0;
   796    auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables<reflection::KeyValue>(attributes) : 0;
   797    auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0;
   798    return reflection::CreateField(
   799        _fbb,
   800        name__,
   801        type,
   802        id,
   803        offset,
   804        default_integer,
   805        default_real,
   806        deprecated,
   807        required,
   808        key,
   809        attributes__,
   810        documentation__,
   811        optional,
   812        padding,
   813        offset64);
   814  }
   815  
   816  struct Object FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
   817    typedef ObjectBuilder Builder;
   818    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
   819      VT_NAME = 4,
   820      VT_FIELDS = 6,
   821      VT_IS_STRUCT = 8,
   822      VT_MINALIGN = 10,
   823      VT_BYTESIZE = 12,
   824      VT_ATTRIBUTES = 14,
   825      VT_DOCUMENTATION = 16,
   826      VT_DECLARATION_FILE = 18
   827    };
   828    const ::flatbuffers::String *name() const {
   829      return GetPointer<const ::flatbuffers::String *>(VT_NAME);
   830    }
   831    bool KeyCompareLessThan(const Object * const o) const {
   832      return *name() < *o->name();
   833    }
   834    int KeyCompareWithValue(const char *_name) const {
   835      return strcmp(name()->c_str(), _name);
   836    }
   837    const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Field>> *fields() const {
   838      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Field>> *>(VT_FIELDS);
   839    }
   840    bool is_struct() const {
   841      return GetField<uint8_t>(VT_IS_STRUCT, 0) != 0;
   842    }
   843    int32_t minalign() const {
   844      return GetField<int32_t>(VT_MINALIGN, 0);
   845    }
   846    int32_t bytesize() const {
   847      return GetField<int32_t>(VT_BYTESIZE, 0);
   848    }
   849    const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes() const {
   850      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *>(VT_ATTRIBUTES);
   851    }
   852    const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const {
   853      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_DOCUMENTATION);
   854    }
   855    /// File that this Object is declared in.
   856    const ::flatbuffers::String *declaration_file() const {
   857      return GetPointer<const ::flatbuffers::String *>(VT_DECLARATION_FILE);
   858    }
   859    bool Verify(::flatbuffers::Verifier &verifier) const {
   860      return VerifyTableStart(verifier) &&
   861             VerifyOffsetRequired(verifier, VT_NAME) &&
   862             verifier.VerifyString(name()) &&
   863             VerifyOffsetRequired(verifier, VT_FIELDS) &&
   864             verifier.VerifyVector(fields()) &&
   865             verifier.VerifyVectorOfTables(fields()) &&
   866             VerifyField<uint8_t>(verifier, VT_IS_STRUCT, 1) &&
   867             VerifyField<int32_t>(verifier, VT_MINALIGN, 4) &&
   868             VerifyField<int32_t>(verifier, VT_BYTESIZE, 4) &&
   869             VerifyOffset(verifier, VT_ATTRIBUTES) &&
   870             verifier.VerifyVector(attributes()) &&
   871             verifier.VerifyVectorOfTables(attributes()) &&
   872             VerifyOffset(verifier, VT_DOCUMENTATION) &&
   873             verifier.VerifyVector(documentation()) &&
   874             verifier.VerifyVectorOfStrings(documentation()) &&
   875             VerifyOffset(verifier, VT_DECLARATION_FILE) &&
   876             verifier.VerifyString(declaration_file()) &&
   877             verifier.EndTable();
   878    }
   879  };
   880  
   881  struct ObjectBuilder {
   882    typedef Object Table;
   883    ::flatbuffers::FlatBufferBuilder &fbb_;
   884    ::flatbuffers::uoffset_t start_;
   885    void add_name(::flatbuffers::Offset<::flatbuffers::String> name) {
   886      fbb_.AddOffset(Object::VT_NAME, name);
   887    }
   888    void add_fields(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Field>>> fields) {
   889      fbb_.AddOffset(Object::VT_FIELDS, fields);
   890    }
   891    void add_is_struct(bool is_struct) {
   892      fbb_.AddElement<uint8_t>(Object::VT_IS_STRUCT, static_cast<uint8_t>(is_struct), 0);
   893    }
   894    void add_minalign(int32_t minalign) {
   895      fbb_.AddElement<int32_t>(Object::VT_MINALIGN, minalign, 0);
   896    }
   897    void add_bytesize(int32_t bytesize) {
   898      fbb_.AddElement<int32_t>(Object::VT_BYTESIZE, bytesize, 0);
   899    }
   900    void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes) {
   901      fbb_.AddOffset(Object::VT_ATTRIBUTES, attributes);
   902    }
   903    void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) {
   904      fbb_.AddOffset(Object::VT_DOCUMENTATION, documentation);
   905    }
   906    void add_declaration_file(::flatbuffers::Offset<::flatbuffers::String> declaration_file) {
   907      fbb_.AddOffset(Object::VT_DECLARATION_FILE, declaration_file);
   908    }
   909    explicit ObjectBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
   910          : fbb_(_fbb) {
   911      start_ = fbb_.StartTable();
   912    }
   913    ::flatbuffers::Offset<Object> Finish() {
   914      const auto end = fbb_.EndTable(start_);
   915      auto o = ::flatbuffers::Offset<Object>(end);
   916      fbb_.Required(o, Object::VT_NAME);
   917      fbb_.Required(o, Object::VT_FIELDS);
   918      return o;
   919    }
   920  };
   921  
   922  inline ::flatbuffers::Offset<Object> CreateObject(
   923      ::flatbuffers::FlatBufferBuilder &_fbb,
   924      ::flatbuffers::Offset<::flatbuffers::String> name = 0,
   925      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Field>>> fields = 0,
   926      bool is_struct = false,
   927      int32_t minalign = 0,
   928      int32_t bytesize = 0,
   929      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes = 0,
   930      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0,
   931      ::flatbuffers::Offset<::flatbuffers::String> declaration_file = 0) {
   932    ObjectBuilder builder_(_fbb);
   933    builder_.add_declaration_file(declaration_file);
   934    builder_.add_documentation(documentation);
   935    builder_.add_attributes(attributes);
   936    builder_.add_bytesize(bytesize);
   937    builder_.add_minalign(minalign);
   938    builder_.add_fields(fields);
   939    builder_.add_name(name);
   940    builder_.add_is_struct(is_struct);
   941    return builder_.Finish();
   942  }
   943  
   944  inline ::flatbuffers::Offset<Object> CreateObjectDirect(
   945      ::flatbuffers::FlatBufferBuilder &_fbb,
   946      const char *name = nullptr,
   947      std::vector<::flatbuffers::Offset<reflection::Field>> *fields = nullptr,
   948      bool is_struct = false,
   949      int32_t minalign = 0,
   950      int32_t bytesize = 0,
   951      std::vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes = nullptr,
   952      const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr,
   953      const char *declaration_file = nullptr) {
   954    auto name__ = name ? _fbb.CreateString(name) : 0;
   955    auto fields__ = fields ? _fbb.CreateVectorOfSortedTables<reflection::Field>(fields) : 0;
   956    auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables<reflection::KeyValue>(attributes) : 0;
   957    auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0;
   958    auto declaration_file__ = declaration_file ? _fbb.CreateString(declaration_file) : 0;
   959    return reflection::CreateObject(
   960        _fbb,
   961        name__,
   962        fields__,
   963        is_struct,
   964        minalign,
   965        bytesize,
   966        attributes__,
   967        documentation__,
   968        declaration_file__);
   969  }
   970  
   971  struct RPCCall FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
   972    typedef RPCCallBuilder Builder;
   973    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
   974      VT_NAME = 4,
   975      VT_REQUEST = 6,
   976      VT_RESPONSE = 8,
   977      VT_ATTRIBUTES = 10,
   978      VT_DOCUMENTATION = 12
   979    };
   980    const ::flatbuffers::String *name() const {
   981      return GetPointer<const ::flatbuffers::String *>(VT_NAME);
   982    }
   983    bool KeyCompareLessThan(const RPCCall * const o) const {
   984      return *name() < *o->name();
   985    }
   986    int KeyCompareWithValue(const char *_name) const {
   987      return strcmp(name()->c_str(), _name);
   988    }
   989    const reflection::Object *request() const {
   990      return GetPointer<const reflection::Object *>(VT_REQUEST);
   991    }
   992    const reflection::Object *response() const {
   993      return GetPointer<const reflection::Object *>(VT_RESPONSE);
   994    }
   995    const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes() const {
   996      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *>(VT_ATTRIBUTES);
   997    }
   998    const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const {
   999      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_DOCUMENTATION);
  1000    }
  1001    bool Verify(::flatbuffers::Verifier &verifier) const {
  1002      return VerifyTableStart(verifier) &&
  1003             VerifyOffsetRequired(verifier, VT_NAME) &&
  1004             verifier.VerifyString(name()) &&
  1005             VerifyOffsetRequired(verifier, VT_REQUEST) &&
  1006             verifier.VerifyTable(request()) &&
  1007             VerifyOffsetRequired(verifier, VT_RESPONSE) &&
  1008             verifier.VerifyTable(response()) &&
  1009             VerifyOffset(verifier, VT_ATTRIBUTES) &&
  1010             verifier.VerifyVector(attributes()) &&
  1011             verifier.VerifyVectorOfTables(attributes()) &&
  1012             VerifyOffset(verifier, VT_DOCUMENTATION) &&
  1013             verifier.VerifyVector(documentation()) &&
  1014             verifier.VerifyVectorOfStrings(documentation()) &&
  1015             verifier.EndTable();
  1016    }
  1017  };
  1018  
  1019  struct RPCCallBuilder {
  1020    typedef RPCCall Table;
  1021    ::flatbuffers::FlatBufferBuilder &fbb_;
  1022    ::flatbuffers::uoffset_t start_;
  1023    void add_name(::flatbuffers::Offset<::flatbuffers::String> name) {
  1024      fbb_.AddOffset(RPCCall::VT_NAME, name);
  1025    }
  1026    void add_request(::flatbuffers::Offset<reflection::Object> request) {
  1027      fbb_.AddOffset(RPCCall::VT_REQUEST, request);
  1028    }
  1029    void add_response(::flatbuffers::Offset<reflection::Object> response) {
  1030      fbb_.AddOffset(RPCCall::VT_RESPONSE, response);
  1031    }
  1032    void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes) {
  1033      fbb_.AddOffset(RPCCall::VT_ATTRIBUTES, attributes);
  1034    }
  1035    void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) {
  1036      fbb_.AddOffset(RPCCall::VT_DOCUMENTATION, documentation);
  1037    }
  1038    explicit RPCCallBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
  1039          : fbb_(_fbb) {
  1040      start_ = fbb_.StartTable();
  1041    }
  1042    ::flatbuffers::Offset<RPCCall> Finish() {
  1043      const auto end = fbb_.EndTable(start_);
  1044      auto o = ::flatbuffers::Offset<RPCCall>(end);
  1045      fbb_.Required(o, RPCCall::VT_NAME);
  1046      fbb_.Required(o, RPCCall::VT_REQUEST);
  1047      fbb_.Required(o, RPCCall::VT_RESPONSE);
  1048      return o;
  1049    }
  1050  };
  1051  
  1052  inline ::flatbuffers::Offset<RPCCall> CreateRPCCall(
  1053      ::flatbuffers::FlatBufferBuilder &_fbb,
  1054      ::flatbuffers::Offset<::flatbuffers::String> name = 0,
  1055      ::flatbuffers::Offset<reflection::Object> request = 0,
  1056      ::flatbuffers::Offset<reflection::Object> response = 0,
  1057      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes = 0,
  1058      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0) {
  1059    RPCCallBuilder builder_(_fbb);
  1060    builder_.add_documentation(documentation);
  1061    builder_.add_attributes(attributes);
  1062    builder_.add_response(response);
  1063    builder_.add_request(request);
  1064    builder_.add_name(name);
  1065    return builder_.Finish();
  1066  }
  1067  
  1068  inline ::flatbuffers::Offset<RPCCall> CreateRPCCallDirect(
  1069      ::flatbuffers::FlatBufferBuilder &_fbb,
  1070      const char *name = nullptr,
  1071      ::flatbuffers::Offset<reflection::Object> request = 0,
  1072      ::flatbuffers::Offset<reflection::Object> response = 0,
  1073      std::vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes = nullptr,
  1074      const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr) {
  1075    auto name__ = name ? _fbb.CreateString(name) : 0;
  1076    auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables<reflection::KeyValue>(attributes) : 0;
  1077    auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0;
  1078    return reflection::CreateRPCCall(
  1079        _fbb,
  1080        name__,
  1081        request,
  1082        response,
  1083        attributes__,
  1084        documentation__);
  1085  }
  1086  
  1087  struct Service FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
  1088    typedef ServiceBuilder Builder;
  1089    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
  1090      VT_NAME = 4,
  1091      VT_CALLS = 6,
  1092      VT_ATTRIBUTES = 8,
  1093      VT_DOCUMENTATION = 10,
  1094      VT_DECLARATION_FILE = 12
  1095    };
  1096    const ::flatbuffers::String *name() const {
  1097      return GetPointer<const ::flatbuffers::String *>(VT_NAME);
  1098    }
  1099    bool KeyCompareLessThan(const Service * const o) const {
  1100      return *name() < *o->name();
  1101    }
  1102    int KeyCompareWithValue(const char *_name) const {
  1103      return strcmp(name()->c_str(), _name);
  1104    }
  1105    const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::RPCCall>> *calls() const {
  1106      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::RPCCall>> *>(VT_CALLS);
  1107    }
  1108    const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes() const {
  1109      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *>(VT_ATTRIBUTES);
  1110    }
  1111    const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const {
  1112      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_DOCUMENTATION);
  1113    }
  1114    /// File that this Service is declared in.
  1115    const ::flatbuffers::String *declaration_file() const {
  1116      return GetPointer<const ::flatbuffers::String *>(VT_DECLARATION_FILE);
  1117    }
  1118    bool Verify(::flatbuffers::Verifier &verifier) const {
  1119      return VerifyTableStart(verifier) &&
  1120             VerifyOffsetRequired(verifier, VT_NAME) &&
  1121             verifier.VerifyString(name()) &&
  1122             VerifyOffset(verifier, VT_CALLS) &&
  1123             verifier.VerifyVector(calls()) &&
  1124             verifier.VerifyVectorOfTables(calls()) &&
  1125             VerifyOffset(verifier, VT_ATTRIBUTES) &&
  1126             verifier.VerifyVector(attributes()) &&
  1127             verifier.VerifyVectorOfTables(attributes()) &&
  1128             VerifyOffset(verifier, VT_DOCUMENTATION) &&
  1129             verifier.VerifyVector(documentation()) &&
  1130             verifier.VerifyVectorOfStrings(documentation()) &&
  1131             VerifyOffset(verifier, VT_DECLARATION_FILE) &&
  1132             verifier.VerifyString(declaration_file()) &&
  1133             verifier.EndTable();
  1134    }
  1135  };
  1136  
  1137  struct ServiceBuilder {
  1138    typedef Service Table;
  1139    ::flatbuffers::FlatBufferBuilder &fbb_;
  1140    ::flatbuffers::uoffset_t start_;
  1141    void add_name(::flatbuffers::Offset<::flatbuffers::String> name) {
  1142      fbb_.AddOffset(Service::VT_NAME, name);
  1143    }
  1144    void add_calls(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::RPCCall>>> calls) {
  1145      fbb_.AddOffset(Service::VT_CALLS, calls);
  1146    }
  1147    void add_attributes(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes) {
  1148      fbb_.AddOffset(Service::VT_ATTRIBUTES, attributes);
  1149    }
  1150    void add_documentation(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation) {
  1151      fbb_.AddOffset(Service::VT_DOCUMENTATION, documentation);
  1152    }
  1153    void add_declaration_file(::flatbuffers::Offset<::flatbuffers::String> declaration_file) {
  1154      fbb_.AddOffset(Service::VT_DECLARATION_FILE, declaration_file);
  1155    }
  1156    explicit ServiceBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
  1157          : fbb_(_fbb) {
  1158      start_ = fbb_.StartTable();
  1159    }
  1160    ::flatbuffers::Offset<Service> Finish() {
  1161      const auto end = fbb_.EndTable(start_);
  1162      auto o = ::flatbuffers::Offset<Service>(end);
  1163      fbb_.Required(o, Service::VT_NAME);
  1164      return o;
  1165    }
  1166  };
  1167  
  1168  inline ::flatbuffers::Offset<Service> CreateService(
  1169      ::flatbuffers::FlatBufferBuilder &_fbb,
  1170      ::flatbuffers::Offset<::flatbuffers::String> name = 0,
  1171      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::RPCCall>>> calls = 0,
  1172      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>>> attributes = 0,
  1173      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> documentation = 0,
  1174      ::flatbuffers::Offset<::flatbuffers::String> declaration_file = 0) {
  1175    ServiceBuilder builder_(_fbb);
  1176    builder_.add_declaration_file(declaration_file);
  1177    builder_.add_documentation(documentation);
  1178    builder_.add_attributes(attributes);
  1179    builder_.add_calls(calls);
  1180    builder_.add_name(name);
  1181    return builder_.Finish();
  1182  }
  1183  
  1184  inline ::flatbuffers::Offset<Service> CreateServiceDirect(
  1185      ::flatbuffers::FlatBufferBuilder &_fbb,
  1186      const char *name = nullptr,
  1187      std::vector<::flatbuffers::Offset<reflection::RPCCall>> *calls = nullptr,
  1188      std::vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes = nullptr,
  1189      const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation = nullptr,
  1190      const char *declaration_file = nullptr) {
  1191    auto name__ = name ? _fbb.CreateString(name) : 0;
  1192    auto calls__ = calls ? _fbb.CreateVectorOfSortedTables<reflection::RPCCall>(calls) : 0;
  1193    auto attributes__ = attributes ? _fbb.CreateVectorOfSortedTables<reflection::KeyValue>(attributes) : 0;
  1194    auto documentation__ = documentation ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*documentation) : 0;
  1195    auto declaration_file__ = declaration_file ? _fbb.CreateString(declaration_file) : 0;
  1196    return reflection::CreateService(
  1197        _fbb,
  1198        name__,
  1199        calls__,
  1200        attributes__,
  1201        documentation__,
  1202        declaration_file__);
  1203  }
  1204  
  1205  /// File specific information.
  1206  /// Symbols declared within a file may be recovered by iterating over all
  1207  /// symbols and examining the `declaration_file` field.
  1208  struct SchemaFile FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
  1209    typedef SchemaFileBuilder Builder;
  1210    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
  1211      VT_FILENAME = 4,
  1212      VT_INCLUDED_FILENAMES = 6
  1213    };
  1214    /// Filename, relative to project root.
  1215    const ::flatbuffers::String *filename() const {
  1216      return GetPointer<const ::flatbuffers::String *>(VT_FILENAME);
  1217    }
  1218    bool KeyCompareLessThan(const SchemaFile * const o) const {
  1219      return *filename() < *o->filename();
  1220    }
  1221    int KeyCompareWithValue(const char *_filename) const {
  1222      return strcmp(filename()->c_str(), _filename);
  1223    }
  1224    /// Names of included files, relative to project root.
  1225    const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *included_filenames() const {
  1226      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_INCLUDED_FILENAMES);
  1227    }
  1228    bool Verify(::flatbuffers::Verifier &verifier) const {
  1229      return VerifyTableStart(verifier) &&
  1230             VerifyOffsetRequired(verifier, VT_FILENAME) &&
  1231             verifier.VerifyString(filename()) &&
  1232             VerifyOffset(verifier, VT_INCLUDED_FILENAMES) &&
  1233             verifier.VerifyVector(included_filenames()) &&
  1234             verifier.VerifyVectorOfStrings(included_filenames()) &&
  1235             verifier.EndTable();
  1236    }
  1237  };
  1238  
  1239  struct SchemaFileBuilder {
  1240    typedef SchemaFile Table;
  1241    ::flatbuffers::FlatBufferBuilder &fbb_;
  1242    ::flatbuffers::uoffset_t start_;
  1243    void add_filename(::flatbuffers::Offset<::flatbuffers::String> filename) {
  1244      fbb_.AddOffset(SchemaFile::VT_FILENAME, filename);
  1245    }
  1246    void add_included_filenames(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> included_filenames) {
  1247      fbb_.AddOffset(SchemaFile::VT_INCLUDED_FILENAMES, included_filenames);
  1248    }
  1249    explicit SchemaFileBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
  1250          : fbb_(_fbb) {
  1251      start_ = fbb_.StartTable();
  1252    }
  1253    ::flatbuffers::Offset<SchemaFile> Finish() {
  1254      const auto end = fbb_.EndTable(start_);
  1255      auto o = ::flatbuffers::Offset<SchemaFile>(end);
  1256      fbb_.Required(o, SchemaFile::VT_FILENAME);
  1257      return o;
  1258    }
  1259  };
  1260  
  1261  inline ::flatbuffers::Offset<SchemaFile> CreateSchemaFile(
  1262      ::flatbuffers::FlatBufferBuilder &_fbb,
  1263      ::flatbuffers::Offset<::flatbuffers::String> filename = 0,
  1264      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>>> included_filenames = 0) {
  1265    SchemaFileBuilder builder_(_fbb);
  1266    builder_.add_included_filenames(included_filenames);
  1267    builder_.add_filename(filename);
  1268    return builder_.Finish();
  1269  }
  1270  
  1271  inline ::flatbuffers::Offset<SchemaFile> CreateSchemaFileDirect(
  1272      ::flatbuffers::FlatBufferBuilder &_fbb,
  1273      const char *filename = nullptr,
  1274      const std::vector<::flatbuffers::Offset<::flatbuffers::String>> *included_filenames = nullptr) {
  1275    auto filename__ = filename ? _fbb.CreateString(filename) : 0;
  1276    auto included_filenames__ = included_filenames ? _fbb.CreateVector<::flatbuffers::Offset<::flatbuffers::String>>(*included_filenames) : 0;
  1277    return reflection::CreateSchemaFile(
  1278        _fbb,
  1279        filename__,
  1280        included_filenames__);
  1281  }
  1282  
  1283  struct Schema FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
  1284    typedef SchemaBuilder Builder;
  1285    enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
  1286      VT_OBJECTS = 4,
  1287      VT_ENUMS = 6,
  1288      VT_FILE_IDENT = 8,
  1289      VT_FILE_EXT = 10,
  1290      VT_ROOT_TABLE = 12,
  1291      VT_SERVICES = 14,
  1292      VT_ADVANCED_FEATURES = 16,
  1293      VT_FBS_FILES = 18
  1294    };
  1295    const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Object>> *objects() const {
  1296      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Object>> *>(VT_OBJECTS);
  1297    }
  1298    const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Enum>> *enums() const {
  1299      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Enum>> *>(VT_ENUMS);
  1300    }
  1301    const ::flatbuffers::String *file_ident() const {
  1302      return GetPointer<const ::flatbuffers::String *>(VT_FILE_IDENT);
  1303    }
  1304    const ::flatbuffers::String *file_ext() const {
  1305      return GetPointer<const ::flatbuffers::String *>(VT_FILE_EXT);
  1306    }
  1307    const reflection::Object *root_table() const {
  1308      return GetPointer<const reflection::Object *>(VT_ROOT_TABLE);
  1309    }
  1310    const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Service>> *services() const {
  1311      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Service>> *>(VT_SERVICES);
  1312    }
  1313    reflection::AdvancedFeatures advanced_features() const {
  1314      return static_cast<reflection::AdvancedFeatures>(GetField<uint64_t>(VT_ADVANCED_FEATURES, 0));
  1315    }
  1316    /// All the files used in this compilation. Files are relative to where
  1317    /// flatc was invoked.
  1318    const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::SchemaFile>> *fbs_files() const {
  1319      return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::SchemaFile>> *>(VT_FBS_FILES);
  1320    }
  1321    bool Verify(::flatbuffers::Verifier &verifier) const {
  1322      return VerifyTableStart(verifier) &&
  1323             VerifyOffsetRequired(verifier, VT_OBJECTS) &&
  1324             verifier.VerifyVector(objects()) &&
  1325             verifier.VerifyVectorOfTables(objects()) &&
  1326             VerifyOffsetRequired(verifier, VT_ENUMS) &&
  1327             verifier.VerifyVector(enums()) &&
  1328             verifier.VerifyVectorOfTables(enums()) &&
  1329             VerifyOffset(verifier, VT_FILE_IDENT) &&
  1330             verifier.VerifyString(file_ident()) &&
  1331             VerifyOffset(verifier, VT_FILE_EXT) &&
  1332             verifier.VerifyString(file_ext()) &&
  1333             VerifyOffset(verifier, VT_ROOT_TABLE) &&
  1334             verifier.VerifyTable(root_table()) &&
  1335             VerifyOffset(verifier, VT_SERVICES) &&
  1336             verifier.VerifyVector(services()) &&
  1337             verifier.VerifyVectorOfTables(services()) &&
  1338             VerifyField<uint64_t>(verifier, VT_ADVANCED_FEATURES, 8) &&
  1339             VerifyOffset(verifier, VT_FBS_FILES) &&
  1340             verifier.VerifyVector(fbs_files()) &&
  1341             verifier.VerifyVectorOfTables(fbs_files()) &&
  1342             verifier.EndTable();
  1343    }
  1344  };
  1345  
  1346  struct SchemaBuilder {
  1347    typedef Schema Table;
  1348    ::flatbuffers::FlatBufferBuilder &fbb_;
  1349    ::flatbuffers::uoffset_t start_;
  1350    void add_objects(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Object>>> objects) {
  1351      fbb_.AddOffset(Schema::VT_OBJECTS, objects);
  1352    }
  1353    void add_enums(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Enum>>> enums) {
  1354      fbb_.AddOffset(Schema::VT_ENUMS, enums);
  1355    }
  1356    void add_file_ident(::flatbuffers::Offset<::flatbuffers::String> file_ident) {
  1357      fbb_.AddOffset(Schema::VT_FILE_IDENT, file_ident);
  1358    }
  1359    void add_file_ext(::flatbuffers::Offset<::flatbuffers::String> file_ext) {
  1360      fbb_.AddOffset(Schema::VT_FILE_EXT, file_ext);
  1361    }
  1362    void add_root_table(::flatbuffers::Offset<reflection::Object> root_table) {
  1363      fbb_.AddOffset(Schema::VT_ROOT_TABLE, root_table);
  1364    }
  1365    void add_services(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Service>>> services) {
  1366      fbb_.AddOffset(Schema::VT_SERVICES, services);
  1367    }
  1368    void add_advanced_features(reflection::AdvancedFeatures advanced_features) {
  1369      fbb_.AddElement<uint64_t>(Schema::VT_ADVANCED_FEATURES, static_cast<uint64_t>(advanced_features), 0);
  1370    }
  1371    void add_fbs_files(::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::SchemaFile>>> fbs_files) {
  1372      fbb_.AddOffset(Schema::VT_FBS_FILES, fbs_files);
  1373    }
  1374    explicit SchemaBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
  1375          : fbb_(_fbb) {
  1376      start_ = fbb_.StartTable();
  1377    }
  1378    ::flatbuffers::Offset<Schema> Finish() {
  1379      const auto end = fbb_.EndTable(start_);
  1380      auto o = ::flatbuffers::Offset<Schema>(end);
  1381      fbb_.Required(o, Schema::VT_OBJECTS);
  1382      fbb_.Required(o, Schema::VT_ENUMS);
  1383      return o;
  1384    }
  1385  };
  1386  
  1387  inline ::flatbuffers::Offset<Schema> CreateSchema(
  1388      ::flatbuffers::FlatBufferBuilder &_fbb,
  1389      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Object>>> objects = 0,
  1390      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Enum>>> enums = 0,
  1391      ::flatbuffers::Offset<::flatbuffers::String> file_ident = 0,
  1392      ::flatbuffers::Offset<::flatbuffers::String> file_ext = 0,
  1393      ::flatbuffers::Offset<reflection::Object> root_table = 0,
  1394      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::Service>>> services = 0,
  1395      reflection::AdvancedFeatures advanced_features = static_cast<reflection::AdvancedFeatures>(0),
  1396      ::flatbuffers::Offset<::flatbuffers::Vector<::flatbuffers::Offset<reflection::SchemaFile>>> fbs_files = 0) {
  1397    SchemaBuilder builder_(_fbb);
  1398    builder_.add_advanced_features(advanced_features);
  1399    builder_.add_fbs_files(fbs_files);
  1400    builder_.add_services(services);
  1401    builder_.add_root_table(root_table);
  1402    builder_.add_file_ext(file_ext);
  1403    builder_.add_file_ident(file_ident);
  1404    builder_.add_enums(enums);
  1405    builder_.add_objects(objects);
  1406    return builder_.Finish();
  1407  }
  1408  
  1409  inline ::flatbuffers::Offset<Schema> CreateSchemaDirect(
  1410      ::flatbuffers::FlatBufferBuilder &_fbb,
  1411      std::vector<::flatbuffers::Offset<reflection::Object>> *objects = nullptr,
  1412      std::vector<::flatbuffers::Offset<reflection::Enum>> *enums = nullptr,
  1413      const char *file_ident = nullptr,
  1414      const char *file_ext = nullptr,
  1415      ::flatbuffers::Offset<reflection::Object> root_table = 0,
  1416      std::vector<::flatbuffers::Offset<reflection::Service>> *services = nullptr,
  1417      reflection::AdvancedFeatures advanced_features = static_cast<reflection::AdvancedFeatures>(0),
  1418      std::vector<::flatbuffers::Offset<reflection::SchemaFile>> *fbs_files = nullptr) {
  1419    auto objects__ = objects ? _fbb.CreateVectorOfSortedTables<reflection::Object>(objects) : 0;
  1420    auto enums__ = enums ? _fbb.CreateVectorOfSortedTables<reflection::Enum>(enums) : 0;
  1421    auto file_ident__ = file_ident ? _fbb.CreateString(file_ident) : 0;
  1422    auto file_ext__ = file_ext ? _fbb.CreateString(file_ext) : 0;
  1423    auto services__ = services ? _fbb.CreateVectorOfSortedTables<reflection::Service>(services) : 0;
  1424    auto fbs_files__ = fbs_files ? _fbb.CreateVectorOfSortedTables<reflection::SchemaFile>(fbs_files) : 0;
  1425    return reflection::CreateSchema(
  1426        _fbb,
  1427        objects__,
  1428        enums__,
  1429        file_ident__,
  1430        file_ext__,
  1431        root_table,
  1432        services__,
  1433        advanced_features,
  1434        fbs_files__);
  1435  }
  1436  
  1437  inline const reflection::Schema *GetSchema(const void *buf) {
  1438    return ::flatbuffers::GetRoot<reflection::Schema>(buf);
  1439  }
  1440  
  1441  inline const reflection::Schema *GetSizePrefixedSchema(const void *buf) {
  1442    return ::flatbuffers::GetSizePrefixedRoot<reflection::Schema>(buf);
  1443  }
  1444  
  1445  inline const char *SchemaIdentifier() {
  1446    return "BFBS";
  1447  }
  1448  
  1449  inline bool SchemaBufferHasIdentifier(const void *buf) {
  1450    return ::flatbuffers::BufferHasIdentifier(
  1451        buf, SchemaIdentifier());
  1452  }
  1453  
  1454  inline bool SizePrefixedSchemaBufferHasIdentifier(const void *buf) {
  1455    return ::flatbuffers::BufferHasIdentifier(
  1456        buf, SchemaIdentifier(), true);
  1457  }
  1458  
  1459  inline bool VerifySchemaBuffer(
  1460      ::flatbuffers::Verifier &verifier) {
  1461    return verifier.VerifyBuffer<reflection::Schema>(SchemaIdentifier());
  1462  }
  1463  
  1464  inline bool VerifySizePrefixedSchemaBuffer(
  1465      ::flatbuffers::Verifier &verifier) {
  1466    return verifier.VerifySizePrefixedBuffer<reflection::Schema>(SchemaIdentifier());
  1467  }
  1468  
  1469  inline const char *SchemaExtension() {
  1470    return "bfbs";
  1471  }
  1472  
  1473  inline void FinishSchemaBuffer(
  1474      ::flatbuffers::FlatBufferBuilder &fbb,
  1475      ::flatbuffers::Offset<reflection::Schema> root) {
  1476    fbb.Finish(root, SchemaIdentifier());
  1477  }
  1478  
  1479  inline void FinishSizePrefixedSchemaBuffer(
  1480      ::flatbuffers::FlatBufferBuilder &fbb,
  1481      ::flatbuffers::Offset<reflection::Schema> root) {
  1482    fbb.FinishSizePrefixed(root, SchemaIdentifier());
  1483  }
  1484  
  1485  }  // namespace reflection
  1486  
  1487  #endif  // FLATBUFFERS_GENERATED_REFLECTION_REFLECTION_H_