internal void DemoteLeaderToFollower() { Leader leader = (CurrentNode as Leader); if (leader != null) { Follower follower = new Follower(leader.GetNodeId(), leader.GetIP()); follower.UpdateTerm(leader.GetPreviousTerm()); this.CurrentNode = follower; //leader.Dispose(); follower.StartHeartbeatTimouts(); Logger.Log(string.Format("INFO (LTF) :: {0} demoted to Follower {1} .", leader, follower)); } else { Logger.Log("WARNING ! WRONG CALL TO DEMOTE LEADER TO FOLLOWER. LEADER ALREADY DEMOTED."); } }
internal void DemoteCandidateToFollower() { Candidate candidate = (CurrentNode as Candidate); if (candidate != null) { Follower follower = new Follower(candidate.GetNodeId(), candidate.GetIP()); follower.UpdateTerm(candidate.GetPreviousTerm()); this.CurrentNode = follower; //candidate.Dispose(); follower.StartHeartbeatTimouts(); Logger.Log(string.Format("INFO (CTF) :: {0} demoted to Follower {1} .", candidate, follower)); } else { Logger.Log("WARNING ! WRONG CALL TO DEMOTE CANDIDATE TO FOLLOWER. CANDIDATE ALREADY DEMOTED."); } }