From 5bafa33690efe640d064ed624858d134d1fdecb2 Mon Sep 17 00:00:00 2001 From: Alexey Geraskin Date: Wed, 17 Jul 2019 14:55:19 +0300 Subject: [PATCH] [C++] Add generated native_type_test_generated.h and fix arguments for flatc according to CMakeList --- tests/generate_code.bat | 2 +- tests/native_type_test_generated.h | 239 +++++++++++++++++++++++++++++ 2 files changed, 240 insertions(+), 1 deletion(-) create mode 100644 tests/native_type_test_generated.h diff --git a/tests/generate_code.bat b/tests/generate_code.bat index d0b3b8283..59033b8ea 100644 --- a/tests/generate_code.bat +++ b/tests/generate_code.bat @@ -22,7 +22,7 @@ if "%1"=="-b" set buildtype=%2 ..\%buildtype%\flatc.exe -b --schema --bfbs-comments --bfbs-builtins -I include_test arrays_test.fbs || goto FAIL ..\%buildtype%\flatc.exe --jsonschema --schema -I include_test monster_test.fbs || goto FAIL ..\%buildtype%\flatc.exe --cpp --java --csharp --python --gen-mutable --reflect-names --gen-object-api --gen-compare --no-includes --scoped-enums --jsonschema --cpp-ptr-type flatbuffers::unique_ptr arrays_test.fbs || goto FAIL -..\%buildtype%\flatc.exe --cpp --gen-mutable --gen-object-api native_type_test.fbs || goto FAIL +..\%buildtype%\flatc.exe --cpp --gen-mutable --gen-object-api --reflect-names --cpp-ptr-type flatbuffers::unique_ptr native_type_test.fbs || goto FAIL IF NOT "%MONSTER_EXTRA%"=="skip" ( @echo Generate MosterExtra diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h new file mode 100644 index 000000000..f1888f691 --- /dev/null +++ b/tests/native_type_test_generated.h @@ -0,0 +1,239 @@ +// automatically generated by the FlatBuffers compiler, do not modify + + +#ifndef FLATBUFFERS_GENERATED_NATIVETYPETEST_GEOMETRY_H_ +#define FLATBUFFERS_GENERATED_NATIVETYPETEST_GEOMETRY_H_ + +#include "flatbuffers/flatbuffers.h" + +#include "vector3d.h" +#include "vector3d_pack.h" + +namespace Geometry { + +struct Vector3D; + +struct ApplicationData; +struct ApplicationDataT; + +inline const flatbuffers::TypeTable *Vector3DTypeTable(); + +inline const flatbuffers::TypeTable *ApplicationDataTypeTable(); + +FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Vector3D FLATBUFFERS_FINAL_CLASS { + private: + double x_; + double y_; + double z_; + + public: + static const flatbuffers::TypeTable *MiniReflectTypeTable() { + return Vector3DTypeTable(); + } + Vector3D() { + memset(static_cast(this), 0, sizeof(Vector3D)); + } + Vector3D(double _x, double _y, double _z) + : x_(flatbuffers::EndianScalar(_x)), + y_(flatbuffers::EndianScalar(_y)), + z_(flatbuffers::EndianScalar(_z)) { + } + double x() const { + return flatbuffers::EndianScalar(x_); + } + void mutate_x(double _x) { + flatbuffers::WriteScalar(&x_, _x); + } + double y() const { + return flatbuffers::EndianScalar(y_); + } + void mutate_y(double _y) { + flatbuffers::WriteScalar(&y_, _y); + } + double z() const { + return flatbuffers::EndianScalar(z_); + } + void mutate_z(double _z) { + flatbuffers::WriteScalar(&z_, _z); + } +}; +FLATBUFFERS_STRUCT_END(Vector3D, 24); + +struct ApplicationDataT : public flatbuffers::NativeTable { + typedef ApplicationData TableType; + std::vector vectors; + ApplicationDataT() { + } +}; + +struct ApplicationData FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ApplicationDataT NativeTableType; + static const flatbuffers::TypeTable *MiniReflectTypeTable() { + return ApplicationDataTypeTable(); + } + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_VECTORS = 4 + }; + const flatbuffers::Vector *vectors() const { + return GetPointer *>(VT_VECTORS); + } + flatbuffers::Vector *mutable_vectors() { + return GetPointer *>(VT_VECTORS); + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_VECTORS) && + verifier.VerifyVector(vectors()) && + verifier.EndTable(); + } + ApplicationDataT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(ApplicationDataT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const; + static flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const ApplicationDataT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct ApplicationDataBuilder { + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_vectors(flatbuffers::Offset> vectors) { + fbb_.AddOffset(ApplicationData::VT_VECTORS, vectors); + } + explicit ApplicationDataBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + ApplicationDataBuilder &operator=(const ApplicationDataBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); + return o; + } +}; + +inline flatbuffers::Offset CreateApplicationData( + flatbuffers::FlatBufferBuilder &_fbb, + flatbuffers::Offset> vectors = 0) { + ApplicationDataBuilder builder_(_fbb); + builder_.add_vectors(vectors); + return builder_.Finish(); +} + +inline flatbuffers::Offset CreateApplicationDataDirect( + flatbuffers::FlatBufferBuilder &_fbb, + const std::vector *vectors = nullptr) { + auto vectors__ = vectors ? _fbb.CreateVectorOfStructs(*vectors) : 0; + return Geometry::CreateApplicationData( + _fbb, + vectors__); +} + +flatbuffers::Offset CreateApplicationData(flatbuffers::FlatBufferBuilder &_fbb, const ApplicationDataT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + +inline ApplicationDataT *ApplicationData::UnPack(const flatbuffers::resolver_function_t *_resolver) const { + auto _o = new ApplicationDataT(); + UnPackTo(_o, _resolver); + return _o; +} + +inline void ApplicationData::UnPackTo(ApplicationDataT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = vectors(); if (_e) { _o->vectors.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->vectors[_i] = flatbuffers::UnPack(*_e->Get(_i)); } } }; +} + +inline flatbuffers::Offset ApplicationData::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ApplicationDataT* _o, const flatbuffers::rehasher_function_t *_rehasher) { + return CreateApplicationData(_fbb, _o, _rehasher); +} + +inline flatbuffers::Offset CreateApplicationData(flatbuffers::FlatBufferBuilder &_fbb, const ApplicationDataT *_o, const flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const ApplicationDataT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _vectors = _o->vectors.size() ? _fbb.CreateVectorOfNativeStructs(_o->vectors) : 0; + return Geometry::CreateApplicationData( + _fbb, + _vectors); +} + +inline const flatbuffers::TypeTable *Vector3DTypeTable() { + static const flatbuffers::TypeCode type_codes[] = { + { flatbuffers::ET_DOUBLE, 0, -1 }, + { flatbuffers::ET_DOUBLE, 0, -1 }, + { flatbuffers::ET_DOUBLE, 0, -1 } + }; + static const int64_t values[] = { 0, 8, 16, 24 }; + static const char * const names[] = { + "x", + "y", + "z" + }; + static const flatbuffers::TypeTable tt = { + flatbuffers::ST_STRUCT, 3, type_codes, nullptr, values, names + }; + return &tt; +} + +inline const flatbuffers::TypeTable *ApplicationDataTypeTable() { + static const flatbuffers::TypeCode type_codes[] = { + { flatbuffers::ET_SEQUENCE, 1, 0 } + }; + static const flatbuffers::TypeFunction type_refs[] = { + Geometry::Vector3DTypeTable + }; + static const char * const names[] = { + "vectors" + }; + static const flatbuffers::TypeTable tt = { + flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, names + }; + return &tt; +} + +inline const Geometry::ApplicationData *GetApplicationData(const void *buf) { + return flatbuffers::GetRoot(buf); +} + +inline const Geometry::ApplicationData *GetSizePrefixedApplicationData(const void *buf) { + return flatbuffers::GetSizePrefixedRoot(buf); +} + +inline ApplicationData *GetMutableApplicationData(void *buf) { + return flatbuffers::GetMutableRoot(buf); +} + +inline bool VerifyApplicationDataBuffer( + flatbuffers::Verifier &verifier) { + return verifier.VerifyBuffer(nullptr); +} + +inline bool VerifySizePrefixedApplicationDataBuffer( + flatbuffers::Verifier &verifier) { + return verifier.VerifySizePrefixedBuffer(nullptr); +} + +inline void FinishApplicationDataBuffer( + flatbuffers::FlatBufferBuilder &fbb, + flatbuffers::Offset root) { + fbb.Finish(root); +} + +inline void FinishSizePrefixedApplicationDataBuffer( + flatbuffers::FlatBufferBuilder &fbb, + flatbuffers::Offset root) { + fbb.FinishSizePrefixed(root); +} + +inline flatbuffers::unique_ptr UnPackApplicationData( + const void *buf, + const flatbuffers::resolver_function_t *res = nullptr) { + return flatbuffers::unique_ptr(GetApplicationData(buf)->UnPack(res)); +} + +inline flatbuffers::unique_ptr UnPackSizePrefixedApplicationData( + const void *buf, + const flatbuffers::resolver_function_t *res = nullptr) { + return flatbuffers::unique_ptr(GetSizePrefixedApplicationData(buf)->UnPack(res)); +} + +} // namespace Geometry + +#endif // FLATBUFFERS_GENERATED_NATIVETYPETEST_GEOMETRY_H_