org.jgroups.blocks

Class 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)

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
void
removeListener(TwoPhaseVotingListener listener)
Removes the listener from the voteChannel
boolean
vote(Object decree, long timeout)
Performs the two-phase voting on the decree.

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.


Copyright B) 2001,2002 www.jgroups.com . All Rights Reserved.