From ea40db0feabdc9070e6ebd53e64f64746955d0fe Mon Sep 17 00:00:00 2001 From: Julien Clement Date: Wed, 6 May 2020 00:28:58 +0200 Subject: [PATCH] Add receive success and Ledger::set_decree --- src/legislator/legislator.cc | 17 +++++++++++++++++ src/legislator/legislator.hh | 2 ++ 2 files changed, 19 insertions(+) diff --git a/src/legislator/legislator.cc b/src/legislator/legislator.cc index ba9a9e4..751f775 100644 --- a/src/legislator/legislator.cc +++ b/src/legislator/legislator.cc @@ -238,6 +238,21 @@ namespace paxos SendEW::send_message(message, legislator.second); } + void Legislator::receive_success(Message message) + { + std::string decree_str = *message.get_header("decree"); + Decree decree; + decree.decree = std::stoi(decree_str); + receive_success(decree); + } + + void Legislator::receive_success(Decree decree) + { + ledger.set_decree(decree); + std::string new_decree= std::to_string(ledger.get_decree().decree); + log("Received success, the new decree is now: " + new_decree, green); + } + void Legislator::handle_message(Message message) { std::string method = message.get_method(); @@ -249,5 +264,7 @@ namespace paxos receive_begin_ballot(message); else if (method == "Voted") receive_voted(message); + else if (method == "Success") + receive_success(message); } } diff --git a/src/legislator/legislator.hh b/src/legislator/legislator.hh index 7fa5ebe..f4c6dad 100644 --- a/src/legislator/legislator.hh +++ b/src/legislator/legislator.hh @@ -35,6 +35,8 @@ namespace paxos void receive_enough_voted(int ballot, Decree decree); void send_success(Decree decree); + void receive_success(Message message); + void receive_success(Decree decree); void handle_message(Message message);