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