org.jgroups.protocols.pbcast.ServerGmsImpl Maven / Gradle / Ivy
package org.jgroups.protocols.pbcast;
import org.jgroups.Address;
import org.jgroups.View;
import org.jgroups.util.MergeId;
import org.jgroups.util.Digest;
import java.util.Collection;
import java.util.Map;
/**
* Common super class for CoordGmsImpl and ParticipantGmsImpl
* @author Bela Ban
*/
public abstract class ServerGmsImpl extends GmsImpl {
protected ServerGmsImpl(GMS gms) {
super(gms);
}
/**
* Invoked upon receiving a MERGE event from the MERGE layer. Starts the merge protocol.
* See description of protocol in DESIGN.
* @param views A List of different views detected by the merge protocol
*/
public void merge(Map views) {
merger.merge(views);
}
/**
* Get the view and digest and send back both (MergeData) in the form of a MERGE_RSP to the sender.
* If a merge is already in progress, send back a MergeData with the merge_rejected field set to true.
* @param sender The address of the merge leader
* @param merge_id The merge ID
* @param mbrs The set of members from which we expect responses
*/
public void handleMergeRequest(Address sender, MergeId merge_id, Collection extends Address> mbrs) {
merger.handleMergeRequest(sender, merge_id, mbrs);
}
public void handleMergeResponse(MergeData data, MergeId merge_id) {
merger.handleMergeResponse(data, merge_id);
}
public void handleMergeCancelled(MergeId merge_id) {
merger.handleMergeCancelled(merge_id);
}
/**
* If merge_id is not equal to this.merge_id then discard.
* Else cast the view/digest to all members of this group.
*/
public void handleMergeView(final MergeData data,final MergeId merge_id) {
merger.handleMergeView(data, merge_id);
}
public void handleDigestResponse(Address sender, Digest digest) {
merger.handleDigestResponse(sender, digest);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy