org.jgroups.protocols.pbcast

## Class ServerGmsImpl

- java.lang.Object
- - org.jgroups.protocols.pbcast.GmsImpl
  - - org.jgroups.protocols.pbcast.ServerGmsImpl

Direct Known Subclasses:
  CoordGmsImpl, ParticipantGmsImpl

    public abstract class ServerGmsImpl
    extends GmsImpl

Common super class for CoordGmsImpl and ParticipantGmsImpl

Author:
  Bela Ban

### Nested Class Summary

### Nested classes/interfaces inherited from class org.jgroups.protocols.pbcast.GmsImpl

`GmsImpl.Request`

### Field Summary

### Fields inherited from class org.jgroups.protocols.pbcast.GmsImpl

`gms, log, merger`

### Constructor Summary

Constructors
`protected` `ServerGmsImpl(GMS gms)`

### Method Summary

Methods
`void` `handleDigestResponse(Address sender, Digest digest)`
`void` `handleMergeRequest(Address sender, MergeId merge_id, java.util.Collection<? extends Address> mbrs)` Get the view and digest and send back both (MergeData) in the form of a MERGE_RSP to the sender.
`void` `handleMergeView(MergeData data, MergeId merge_id)` If merge_id is not equal to this.merge_id then discard.

### Methods inherited from class org.jgroups.protocols.pbcast.GmsImpl

`handleJoinResponse, handleLeaveResponse, handleMembershipChange, handleMergeCancelled, handleMergeResponse, handleViewChange, init, iWouldBeCoordinator, join, joinWithStateTransfer, leave, merge, sendMergeRejectedResponse, start, stop, suspect, unsuspect, wrongMethod`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ServerGmsImpl

    protected ServerGmsImpl(GMS gms)

### Method Detail

#### handleMergeRequest

    public void handleMergeRequest(Address sender,
                          MergeId merge_id,
                          java.util.Collection<? extends Address> mbrs)

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.

Overrides:
  `handleMergeRequest` in class `GmsImpl`
Parameters:
  `sender` - The address of the merge leader
  `merge_id` - The merge ID
  `mbrs` - The set of members from which we expect responses

#### handleMergeView

    public void handleMergeView(MergeData data,
                       MergeId 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.

Overrides:
  `handleMergeView` in class `GmsImpl`

#### handleDigestResponse

    public void handleDigestResponse(Address sender,
                            Digest digest)

Overrides:
  `handleDigestResponse` in class `GmsImpl`