1 package org.jgroups.protocols.pbcast; 2 3 import org.jgroups.Address; 4 import org.jgroups.util.MergeId; 5 import org.jgroups.util.Digest; 6 7 import java.util.Collection; 8 9 /** 10 * Common super class for CoordGmsImpl and ParticipantGmsImpl 11 * @author Bela Ban 12 */ 13 public abstract class ServerGmsImpl extends GmsImpl { 14 ServerGmsImpl(GMS gms)15 protected ServerGmsImpl(GMS gms) { 16 super(gms); 17 } 18 19 20 /** 21 * Get the view and digest and send back both (MergeData) in the form of a MERGE_RSP to the sender. 22 * If a merge is already in progress, send back a MergeData with the merge_rejected field set to true. 23 * @param sender The address of the merge leader 24 * @param merge_id The merge ID 25 * @param mbrs The set of members from which we expect responses 26 */ handleMergeRequest(Address sender, MergeId merge_id, Collection<? extends Address> mbrs)27 public void handleMergeRequest(Address sender, MergeId merge_id, Collection<? extends Address> mbrs) { 28 merger.handleMergeRequest(sender, merge_id, mbrs); 29 } 30 31 /** 32 * If merge_id is not equal to this.merge_id then discard. 33 * Else cast the view/digest to all members of this group. 34 */ handleMergeView(final MergeData data,final MergeId merge_id)35 public void handleMergeView(final MergeData data,final MergeId merge_id) { 36 merger.handleMergeView(data, merge_id); 37 } 38 handleDigestResponse(Address sender, Digest digest)39 public void handleDigestResponse(Address sender, Digest digest) { 40 merger.handleDigestResponse(sender, digest); 41 } 42 } 43