28 std::vector<uint8_t>&& data)>;
30 static constexpr size_t starting_view_change = 2;
40 virtual std::unique_ptr<ccf::kv::AbstractExecutionWrapper>
deserialize(
41 const std::vector<uint8_t> data,
42 bool public_only =
false,
43 const std::optional<ccf::kv::TxID>& expected_txid = std::nullopt) = 0;
70 p->rollback(tx_id, term_of_next_version);
79 p->initialise_term(t);
83 std::unique_ptr<ccf::kv::AbstractExecutionWrapper>
deserialize(
84 const std::vector<uint8_t> data,
85 bool public_only =
false,
86 const std::optional<ccf::kv::TxID>& expected_txid = std::nullopt)
override
91 return p->deserialize(data, public_only, expected_txid);
111 "raft_append_entries_response"},
113 "raft_append_entries_signed_response"},
120 template <RaftMsgType M>
141 bool contains_new_view =
false;
196 RequestVote, term, last_committable_idx, term_of_last_committable_idx);
Definition raft_types.h:48
Adaptor(std::shared_ptr< T > x)
Definition raft_types.h:53
void rollback(const ccf::kv::TxID &tx_id, Term term_of_next_version) override
Definition raft_types.h:64
std::unique_ptr< ccf::kv::AbstractExecutionWrapper > deserialize(const std::vector< uint8_t > data, bool public_only=false, const std::optional< ccf::kv::TxID > &expected_txid=std::nullopt) override
Definition raft_types.h:83
void initialise_term(Term t) override
Definition raft_types.h:74
void compact(Index v) override
Definition raft_types.h:55
Definition raft_types.h:33
virtual void rollback(const ccf::kv::TxID &tx_id, Term term_of_next_version)=0
virtual void compact(Index v)=0
virtual ~Store()
Definition raft_types.h:35
virtual std::unique_ptr< ccf::kv::AbstractExecutionWrapper > deserialize(const std::vector< uint8_t > data, bool public_only=false, const std::optional< ccf::kv::TxID > &expected_txid=std::nullopt)=0
virtual void initialise_term(Term t)=0
Definition sha256_hash.h:16
std::tuple< size_t, size_t > RequestID
Definition kv_types.h:372
#define DECLARE_JSON_TYPE_WITH_BASE(TYPE, BASE)
Definition json.h:665
#define DECLARE_JSON_TYPE_WITH_2BASES(TYPE, BASE1, BASE2)
Definition json.h:676
#define DECLARE_JSON_REQUIRED_FIELDS(TYPE,...)
Definition json.h:714
#define DECLARE_JSON_TYPE(TYPE)
Definition json.h:663
#define DECLARE_JSON_ENUM(TYPE,...)
Definition json.h:837
AppendEntriesResponseType
Definition raft_types.h:156
std::function< bool(void *owner, ccf::kv::TxHistory::RequestID caller_rid, int status, std::vector< uint8_t > &&data)> ReplyCallback
Definition raft_types.h:28
uint64_t Node2NodeMsg
Definition raft_types.h:21
uint64_t Term
Definition raft_types.h:20
RaftMsgType
Definition raft_types.h:98
@ raft_append_entries_response
Definition raft_types.h:100
@ raft_request_vote
Definition raft_types.h:102
@ raft_request_vote_response
Definition raft_types.h:103
@ raft_append_entries
Definition raft_types.h:99
@ raft_propose_request_vote
Definition raft_types.h:104
@ raft_append_entries_signed_response
Definition raft_types.h:101
uint64_t Index
Definition raft_types.h:19
Definition consensus_types.h:23
Definition raft_types.h:168
Term term
Definition raft_types.h:177
AppendEntriesResponseType success
Definition raft_types.h:179
Index last_log_idx
Definition raft_types.h:178
Definition raft_types.h:130
Index leader_commit_idx
Definition raft_types.h:133
Term prev_term
Definition raft_types.h:132
Term term
Definition raft_types.h:131
Term term_of_idx
Definition raft_types.h:138
Definition raft_types.h:212
Term term
Definition raft_types.h:215
Definition raft_types.h:201
Term term
Definition raft_types.h:202
bool vote_granted
Definition raft_types.h:203
Definition raft_types.h:189
Index last_committable_idx
Definition raft_types.h:191
Term term
Definition raft_types.h:190
Term term_of_last_committable_idx
Definition raft_types.h:192
Definition consensus_types.h:35