From 99668be944b92dd75757a6f93daee8f80c3b2e1e Mon Sep 17 00:00:00 2001 From: Chalith Desaman Date: Tue, 15 Dec 2020 13:01:11 +0530 Subject: [PATCH] Added version to the ledger file structure. (#195) --- src/msg/fbuf/fullhistory_schema.fbs | 1 + src/msg/fbuf/fullhistory_schema_generated.h | 19 ++++++++++- src/msg/fbuf/ledger_helpers.cpp | 2 ++ src/msg/fbuf/ledger_schema.fbs | 1 + src/msg/fbuf/ledger_schema_generated.h | 35 +++++++++++++++------ 5 files changed, 48 insertions(+), 10 deletions(-) diff --git a/src/msg/fbuf/fullhistory_schema.fbs b/src/msg/fbuf/fullhistory_schema.fbs index f13f1e70..9e4ec349 100644 --- a/src/msg/fbuf/fullhistory_schema.fbs +++ b/src/msg/fbuf/fullhistory_schema.fbs @@ -1,6 +1,7 @@ namespace msg.fbuf.ledger; table FullHistoryBlock { + version:string; raw_inputs: [RawInput]; } diff --git a/src/msg/fbuf/fullhistory_schema_generated.h b/src/msg/fbuf/fullhistory_schema_generated.h index fae9d71d..686380c2 100644 --- a/src/msg/fbuf/fullhistory_schema_generated.h +++ b/src/msg/fbuf/fullhistory_schema_generated.h @@ -19,8 +19,15 @@ struct RawInputBuilder; struct FullHistoryBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { typedef FullHistoryBlockBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { - VT_RAW_INPUTS = 4 + VT_VERSION = 4, + VT_RAW_INPUTS = 6 }; + const flatbuffers::String *version() const { + return GetPointer(VT_VERSION); + } + flatbuffers::String *mutable_version() { + return GetPointer(VT_VERSION); + } const flatbuffers::Vector> *raw_inputs() const { return GetPointer> *>(VT_RAW_INPUTS); } @@ -29,6 +36,8 @@ struct FullHistoryBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_VERSION) && + verifier.VerifyString(version()) && VerifyOffset(verifier, VT_RAW_INPUTS) && verifier.VerifyVector(raw_inputs()) && verifier.VerifyVectorOfTables(raw_inputs()) && @@ -40,6 +49,9 @@ struct FullHistoryBlockBuilder { typedef FullHistoryBlock Table; flatbuffers::FlatBufferBuilder &fbb_; flatbuffers::uoffset_t start_; + void add_version(flatbuffers::Offset version) { + fbb_.AddOffset(FullHistoryBlock::VT_VERSION, version); + } void add_raw_inputs(flatbuffers::Offset>> raw_inputs) { fbb_.AddOffset(FullHistoryBlock::VT_RAW_INPUTS, raw_inputs); } @@ -56,18 +68,23 @@ struct FullHistoryBlockBuilder { inline flatbuffers::Offset CreateFullHistoryBlock( flatbuffers::FlatBufferBuilder &_fbb, + flatbuffers::Offset version = 0, flatbuffers::Offset>> raw_inputs = 0) { FullHistoryBlockBuilder builder_(_fbb); builder_.add_raw_inputs(raw_inputs); + builder_.add_version(version); return builder_.Finish(); } inline flatbuffers::Offset CreateFullHistoryBlockDirect( flatbuffers::FlatBufferBuilder &_fbb, + const char *version = nullptr, const std::vector> *raw_inputs = nullptr) { + auto version__ = version ? _fbb.CreateString(version) : 0; auto raw_inputs__ = raw_inputs ? _fbb.CreateVector>(*raw_inputs) : 0; return msg::fbuf::ledger::CreateFullHistoryBlock( _fbb, + version__, raw_inputs__); } diff --git a/src/msg/fbuf/ledger_helpers.cpp b/src/msg/fbuf/ledger_helpers.cpp index d22332de..bf4597c5 100644 --- a/src/msg/fbuf/ledger_helpers.cpp +++ b/src/msg/fbuf/ledger_helpers.cpp @@ -21,6 +21,7 @@ namespace msg::fbuf::ledger flatbuffers::Offset ledger = ledger::CreateLedgerBlock( builder, + sv_to_flatbuff_str(builder, conf::cfg.hpversion), seq_no, p.time, sv_to_flatbuff_bytes(builder, p.lcl), @@ -70,6 +71,7 @@ namespace msg::fbuf::ledger flatbuffers::Offset fullhistory = ledger::CreateFullHistoryBlock( builder, + sv_to_flatbuff_str(builder, conf::cfg.hpversion), builder.CreateVector(fbvec)); builder.Finish(fullhistory); // Finished building message content to get serialised content. diff --git a/src/msg/fbuf/ledger_schema.fbs b/src/msg/fbuf/ledger_schema.fbs index 5031be0d..66977ef6 100644 --- a/src/msg/fbuf/ledger_schema.fbs +++ b/src/msg/fbuf/ledger_schema.fbs @@ -3,6 +3,7 @@ include "common_schema.fbs"; namespace msg.fbuf.ledger; table LedgerBlock { + version:string; seq_no:uint64; time:uint64; lcl:[ubyte]; diff --git a/src/msg/fbuf/ledger_schema_generated.h b/src/msg/fbuf/ledger_schema_generated.h index 0751b615..0753d716 100644 --- a/src/msg/fbuf/ledger_schema_generated.h +++ b/src/msg/fbuf/ledger_schema_generated.h @@ -21,16 +21,23 @@ struct Unl_ChangesetBuilder; struct LedgerBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { typedef LedgerBlockBuilder Builder; enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { - VT_SEQ_NO = 4, - VT_TIME = 6, - VT_LCL = 8, - VT_STATE = 10, - VT_UNL = 12, - VT_USERS = 14, - VT_INPUTS = 16, - VT_OUTPUTS = 18, - VT_UNL_CHANGESET = 20 + VT_VERSION = 4, + VT_SEQ_NO = 6, + VT_TIME = 8, + VT_LCL = 10, + VT_STATE = 12, + VT_UNL = 14, + VT_USERS = 16, + VT_INPUTS = 18, + VT_OUTPUTS = 20, + VT_UNL_CHANGESET = 22 }; + const flatbuffers::String *version() const { + return GetPointer(VT_VERSION); + } + flatbuffers::String *mutable_version() { + return GetPointer(VT_VERSION); + } uint64_t seq_no() const { return GetField(VT_SEQ_NO, 0); } @@ -87,6 +94,8 @@ struct LedgerBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { } bool Verify(flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_VERSION) && + verifier.VerifyString(version()) && VerifyField(verifier, VT_SEQ_NO) && VerifyField(verifier, VT_TIME) && VerifyOffset(verifier, VT_LCL) && @@ -114,6 +123,9 @@ struct LedgerBlockBuilder { typedef LedgerBlock Table; flatbuffers::FlatBufferBuilder &fbb_; flatbuffers::uoffset_t start_; + void add_version(flatbuffers::Offset version) { + fbb_.AddOffset(LedgerBlock::VT_VERSION, version); + } void add_seq_no(uint64_t seq_no) { fbb_.AddElement(LedgerBlock::VT_SEQ_NO, seq_no, 0); } @@ -154,6 +166,7 @@ struct LedgerBlockBuilder { inline flatbuffers::Offset CreateLedgerBlock( flatbuffers::FlatBufferBuilder &_fbb, + flatbuffers::Offset version = 0, uint64_t seq_no = 0, uint64_t time = 0, flatbuffers::Offset> lcl = 0, @@ -173,11 +186,13 @@ inline flatbuffers::Offset CreateLedgerBlock( builder_.add_unl(unl); builder_.add_state(state); builder_.add_lcl(lcl); + builder_.add_version(version); return builder_.Finish(); } inline flatbuffers::Offset CreateLedgerBlockDirect( flatbuffers::FlatBufferBuilder &_fbb, + const char *version = nullptr, uint64_t seq_no = 0, uint64_t time = 0, const std::vector *lcl = nullptr, @@ -187,6 +202,7 @@ inline flatbuffers::Offset CreateLedgerBlockDirect( const std::vector> *inputs = nullptr, const std::vector> *outputs = nullptr, flatbuffers::Offset unl_changeset = 0) { + auto version__ = version ? _fbb.CreateString(version) : 0; auto lcl__ = lcl ? _fbb.CreateVector(*lcl) : 0; auto state__ = state ? _fbb.CreateVector(*state) : 0; auto unl__ = unl ? _fbb.CreateVector(*unl) : 0; @@ -195,6 +211,7 @@ inline flatbuffers::Offset CreateLedgerBlockDirect( auto outputs__ = outputs ? _fbb.CreateVector>(*outputs) : 0; return msg::fbuf::ledger::CreateLedgerBlock( _fbb, + version__, seq_no, time, lcl__,