Class TwoPhaseVotingAdapter

java.lang.Object
org.jgroups.blocks.TwoPhaseVotingAdapter

public class TwoPhaseVotingAdapter extends Object
This adapter introduces simple two-phase voting on a specified decree. All nodes in the group receive a decree in "prepare" phase where they expres their opinion on the decree. If all nodes voted positively on decree, next phase "commit" fixes changes that were made in "prepare" phase, otherwise changes are canceled in "abort" phase.
Version:
$Id: TwoPhaseVotingAdapter.java,v 1.4 2005/06/08 15:56:54 publicnmi Exp $
Author:
Roman Rokytskyy (rrokytskyy@acm.org), Robert Schaffar-Taurok (robert@fusion.at)
  • Constructor Details

    • TwoPhaseVotingAdapter

      public TwoPhaseVotingAdapter(VotingAdapter voteChannel)
      Creats an instance of the class.
      Parameters:
      voteChannel - the channel that will be used for voting.
  • Method Details

    • addListener

      public void addListener(TwoPhaseVotingListener listener)
      Wraps actual listener with the VoteChannelListener and adds to the voteChannel
    • removeListener

      public void removeListener(TwoPhaseVotingListener listener)
      Removes the listener from the voteChannel
    • vote

      public boolean vote(Object decree, long timeout) throws ChannelException
      Performs the two-phase voting on the decree. After the voting each group member remains in the same state as others.
      Throws:
      ChannelException
    • vote

      public boolean vote(Object decree, long timeout, VoteResponseProcessor voteResponseProcessor) throws ChannelException
      Performs the two-phase voting on the decree. After the voting each group member remains in the same state as others.
      Throws:
      ChannelException
    • getVoteChannel

      public VotingAdapter getVoteChannel()
      Returns:
      Returns the voteChannel.