//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public org.neo4j.causalclustering.core.consensus.outcome.Outcome handle(org.neo4j.causalclustering.core.consensus.RaftMessages_Vote_Response res) throws java.io.IOException public override Outcome Handle(Org.Neo4j.causalclustering.core.consensus.RaftMessages_Vote_Response res) { if (res.Term() > Ctx.term()) { Outcome.NextTerm = res.Term(); Outcome.NextRole = FOLLOWER; Log.info("Moving to FOLLOWER state after receiving vote response from %s at term %d (I am at %d)", res.From(), res.Term(), Ctx.term()); return(Outcome); } else if (res.Term() < Ctx.term() || !res.VoteGranted()) { return(Outcome); } if (!res.From().Equals(Ctx.myself())) { Outcome.addVoteForMe(res.From()); } if (isQuorum(Ctx.votingMembers(), Outcome.VotesForMe)) { Outcome.Leader = Ctx.myself(); Appending.AppendNewEntry(Ctx, Outcome, new NewLeaderBarrier()); Leader.SendHeartbeats(Ctx, Outcome); Outcome.LastLogIndexBeforeWeBecameLeader = Ctx.entryLog().appendIndex(); Outcome.electedLeader(); Outcome.renewElectionTimeout(); Outcome.NextRole = LEADER; Log.info("Moving to LEADER state at term %d (I am %s), voted for by %s", Ctx.term(), Ctx.myself(), Outcome.VotesForMe); } return(Outcome); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public org.neo4j.causalclustering.core.consensus.outcome.Outcome handle(org.neo4j.causalclustering.core.consensus.RaftMessages_NewEntry_Request req) throws java.io.IOException public override Outcome Handle(Org.Neo4j.causalclustering.core.consensus.RaftMessages_NewEntry_Request req) { ReplicatedContent content = req.Content(); Appending.AppendNewEntry(Ctx, Outcome, content); return(Outcome); }