namespace zz.fbs;
table Float {
value:float;
}
table Size {
width:float = 0;
height:float = 0;
scale:bool = false;
}
struct Version {
major:int;
minor:int;
build:int;
}
table GameConfiguration {
autoSaveSecondsDelta:Float;
targetResolution:Size;
version:Version;
}
root_type GameConfiguration;
flatbuffers::FlatBufferBuilder builder;
zz::fbs::SizeBuilder sizeBuilder(builder);
sizeBuilder.add_width(1536);
sizeBuilder.add_height(2048);
sizeBuilder.add_scale(true);
auto res = sizeBuilder.Finish();
auto version = zz::fbs::Version(0, 11, 0);
zz::fbs::GameConfigurationBuilder gameBuilder(builder);
gameBuilder.add_autoSaveSecondsDelta(10.0);
gameBuilder.add_targetResolution(res);
gameBuilder.add_version(&version);
auto gameConfig = gameBuilder.Finish();
builder.Finish(gameConfig);
auto bufferVerifier = flatbuffers::Verifier(builder.GetBufferPointer(), builder.GetSize());
auto isBufferOk = zz::fbs::VerifyGameConfigurationBuffer(bufferVerifier);
CCLOG("Verifying GridConfiguration buffer, size: %u, is OK: %d", builder.GetSize(), isBufferOk);
auto gameConfigBuffer = zz::fbs::GetGameConfiguration(builder.GetBufferPointer());
CCLOG("gameConfig: %p", gameConfigBuffer);
auto gameConfig = new GameConfiguration(gameConfigBuffer);
CCLOG("auto save seconds (from buffer) delay: %f", gameConfigBuffer->autoSaveSecondsDelta()->value());
CCLOG("auto save seconds (from custom object) delay: %f", gameConfig->getAutoSaveSecondsDelta().getValue());
"Verifying GridConfiguration buffer, size: 68, is OK: 0"
"gameConfig: 0x7c06f7cc"
"auto save seconds (from buffer) delay: 0.000000"
"auto save seconds (from custom object) delay: 0.000000"
--
You received this message because you are subscribed to the Google Groups "FlatBuffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to flatbuffers...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
void add_version(const zz::fbs::Version *version) { fbb_.AddStruct(GameConfiguration::VT_VERSION, version); }
Here's the code for the GameConfiguration table and its builder (add_version takes a const ptr, not a reference or struct value):
struct GameConfiguration FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
enum {
VT_AUTOSAVESECONDSDELTA = 4,
VT_TARGETRESOLUTION = 6,
VT_VERSION = 8
};
const zz::fbs::Float *autoSaveSecondsDelta() const { return GetPointer<const zz::fbs::Float *>(VT_AUTOSAVESECONDSDELTA); }
const zz::fbs::Size *targetResolution() const { return GetPointer<const zz::fbs::Size *>(VT_TARGETRESOLUTION); }
const zz::fbs::Version *version() const { return GetStruct<const zz::fbs::Version *>(VT_VERSION); }
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<flatbuffers::uoffset_t>(verifier, VT_AUTOSAVESECONDSDELTA) &&
verifier.VerifyTable(autoSaveSecondsDelta()) &&
VerifyField<flatbuffers::uoffset_t>(verifier, VT_TARGETRESOLUTION) &&
verifier.VerifyTable(targetResolution()) &&
VerifyField<zz::fbs::Version>(verifier, VT_VERSION) &&
verifier.EndTable();
}
};
struct GameConfigurationBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
void add_autoSaveSecondsDelta(flatbuffers::Offset<zz::fbs::Float> autoSaveSecondsDelta) { fbb_.AddOffset(GameConfiguration::VT_AUTOSAVESECONDSDELTA, autoSaveSecondsDelta); }
void add_targetResolution(flatbuffers::Offset<zz::fbs::Size> targetResolution) { fbb_.AddOffset(GameConfiguration::VT_TARGETRESOLUTION, targetResolution); }
void add_version(const zz::fbs::Version *version) { fbb_.AddStruct(GameConfiguration::VT_VERSION, version); }
GameConfigurationBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); }
GameConfigurationBuilder &operator=(const GameConfigurationBuilder &);
flatbuffers::Offset<GameConfiguration> Finish() {
auto o = flatbuffers::Offset<GameConfiguration>(fbb_.EndTable(start_, 3));
return o;
}
};
#4 0x0000000100006d55 in flatbuffers::Verifier::Check(bool) const at gitrepos_root/flatbuffers/include/flatbuffers/flatbuffers.h:1158
#5 0x0000000100006cf8 in flatbuffers::Verifier::Verify(void const*, unsigned long) const at gitrepos_root/flatbuffers/include/flatbuffers/flatbuffers.h:1165
#6 0x00000001000070d4 in bool flatbuffers::Verifier::Verify<unsigned short>(void const*) const at gitrepos_root/flatbuffers/include/flatbuffers/flatbuffers.h:1170
#7 0x0000000100006dec in flatbuffers::Table::VerifyTableStart(flatbuffers::Verifier&) const at gitrepos_root/flatbuffers/include/flatbuffers/flatbuffers.h:1366
#8 0x0000000100007107 in zz::fbs::Float::Verify(flatbuffers::Verifier&) const at gitrepos_root/flatbuffers_test/FlatBuffersTest/FlatBuffersTest/zanzo_configuration_schema_generated.h:221
#9 0x0000000100006ef8 in bool flatbuffers::Verifier::VerifyTable<zz::fbs::Float>(zz::fbs::Float const*) at gitrepos_root/flatbuffers/include/flatbuffers/flatbuffers.h:1175
#10 0x0000000100006bb4 in zz::fbs::GameConfiguration::Verify(flatbuffers::Verifier&) const at gitrepos_root/flatbuffers_test/FlatBuffersTest/FlatBuffersTest/game_config_generated.h:76
#11 0x0000000100006ae7 in bool flatbuffers::Verifier::VerifyBuffer<zz::fbs::GameConfiguration>() at gitrepos_root/flatbuffers/include/flatbuffers/flatbuffers.h:1237
#12 0x0000000100002535 in zz::fbs::VerifyGameConfigurationBuffer(flatbuffers::Verifier&) at gitrepos_root/flatbuffers_test/FlatBuffersTest/FlatBuffersTest/game_config_generated.h:111
#13 0x0000000100001e7d in main at gitrepos_root/flatbuffers_test/FlatBuffersTest/FlatBuffersTest/main.cpp:35
To unsubscribe from this group and stop receiving emails from it, send an email to flatbuffers+unsubscribe@googlegroups.com.