From 01000023b61f0fbd1fde66ca7e9d843047059a2e Mon Sep 17 00:00:00 2001 From: Julien Clement Date: Tue, 5 May 2020 21:37:14 +0200 Subject: [PATCH] Send LastVote --- src/legislator/legislator.cc | 16 +++++++++++++++- src/legislator/legislator.hh | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/legislator/legislator.cc b/src/legislator/legislator.cc index 344e7ed..dd8dd3d 100644 --- a/src/legislator/legislator.cc +++ b/src/legislator/legislator.cc @@ -57,7 +57,21 @@ namespace paxos ledger.set_next_bal(ballot); int previous_vote = ledger.prev_vote(); previous_vote = previous_vote; - //XXX send a LastVote to sender + send_last_vote(ballot, previous_vote, sender); + } + + void Legislator::send_last_vote(int ballot, int previous_vote, + std::string sender) + { + std::string ballot_string = std::to_string(ballot); + std::string vote_string = std::to_string(previous_vote); + Message message; + message.set_method("LastVote"); + message.add_header("ballot", ballot_string); + message.add_header("vote", vote_string); + message.add_header("sender", self->config_.name); + SendEW::send_message(message, legislators[sender]); + } void Legislator::receive_last_vote(Message message) diff --git a/src/legislator/legislator.hh b/src/legislator/legislator.hh index f798cd4..d897b31 100644 --- a/src/legislator/legislator.hh +++ b/src/legislator/legislator.hh @@ -15,10 +15,10 @@ namespace paxos void initiate_ballot(); void send_next_ballot(int ballot); - void receive_next_ballot(Message message); void receive_next_ballot(int ballot, std::string sender); + void send_last_vote(int ballot, int previous_vote, std::string sender); void receive_last_vote(Message message); void receive_enough_last_vote (std::unordered_map quorum_last_votes);