org.jgroups.blocks
Class TwoPhaseVotingAdapter

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

public class TwoPhaseVotingAdapter
extends java.lang.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.

Author:
Roman Rokytskyy (rrokytskyy@acm.org), Robert Schaffar-Taurok (robert@fusion.at)

Nested Class Summary
static class TwoPhaseVotingAdapter.TwoPhaseVoteWrapper
           
static class TwoPhaseVotingAdapter.TwoPhaseWrapper
          Wrapper of the decree to voting decree.
 
Constructor Summary
TwoPhaseVotingAdapter(VotingAdapter voteChannel)
          Creats an instance of the class.
 
Method Summary
 void addListener(TwoPhaseVotingListener listener)
          Wraps actual listener with the VoteChannelListener and adds to the voteChannel
 VotingAdapter getVoteChannel()
           
 void removeListener(TwoPhaseVotingListener listener)
          Removes the listener from the voteChannel
 boolean vote(java.lang.Object decree, long timeout)
          Performs the two-phase voting on the decree.
 boolean vote(java.lang.Object decree, long timeout, VoteResponseProcessor voteResponseProcessor)
          Performs the two-phase voting on the decree.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TwoPhaseVotingAdapter

public TwoPhaseVotingAdapter(VotingAdapter voteChannel)
Creats an instance of the class.

Parameters:
voteChannel - the channel that will be used for voting.
Method Detail

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(java.lang.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(java.lang.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.


Copyright © 1998-2009 Bela Ban / Red Hat. All Rights Reserved.