org.jgroups.protocols.pbcast

## Class ParticipantGmsImpl

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

-     public class ParticipantGmsImpl
      extends ServerGmsImpl

  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
    Constructor and Description
    `ParticipantGmsImpl(GMS g)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `handleJoinResponse(JoinRsp join_rsp)` In case we get a different JOIN_RSP from a previous JOIN_REQ sent by us (as a client), we simply apply the new view if it is greater than ours
    `void` | `handleLeaveResponse()`
    `void` | `handleMembershipChange(java.util.Collection<GmsImpl.Request> requests)`
    `void` | `handleViewChange(View new_view, Digest digest)` If we are leaving, we have to wait for the view change (last msg in the current view) that excludes us before we can leave.
    `void` | `init()`
    `void` | `join(Address mbr, boolean useFlushIfPresent)`
    `void` | `joinWithStateTransfer(Address mbr, boolean useFlushIfPresent)`
    `void` | `leave(Address mbr)` Loop: determine coord.
    `void` | `suspect(Address mbr)`
    `void` | `unsuspect(Address mbr)` Removes previously suspected member from list of currently suspected members

    - ### Methods inherited from class org.jgroups.protocols.pbcast.ServerGmsImpl

      `handleDigestResponse, handleMergeRequest, handleMergeView`

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

      `handleMergeCancelled, handleMergeResponse, iWouldBeCoordinator, merge, sendMergeRejectedResponse, start, stop, wrongMethod`

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

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

- - ### Constructor Detail

    - #### ParticipantGmsImpl

          public ParticipantGmsImpl(GMS g)

  - ### Method Detail

    - #### init

          public void init()
                    throws java.lang.Exception

      Overrides:
        `init` in class `GmsImpl`
      Throws:
        `java.lang.Exception`

    - #### join

          public void join(Address mbr,
                  boolean useFlushIfPresent)

      Specified by:
        `join` in class `GmsImpl`

    - #### joinWithStateTransfer

          public void joinWithStateTransfer(Address mbr,
                                   boolean useFlushIfPresent)

      Specified by:
        `joinWithStateTransfer` in class `GmsImpl`

    - #### leave

          public void leave(Address mbr)

      Loop: determine coord. If coord is me --> handleLeave(). Else send handleLeave() to coord until success
      Specified by:
        `leave` in class `GmsImpl`

    - #### handleJoinResponse

          public void handleJoinResponse(JoinRsp join_rsp)

      In case we get a different JOIN_RSP from a previous JOIN_REQ sent by us (as a client), we simply apply the new view if it is greater than ours
      Overrides:
        `handleJoinResponse` in class `GmsImpl`
      Parameters:
        `join_rsp` -

    - #### handleLeaveResponse

          public void handleLeaveResponse()

      Overrides:
        `handleLeaveResponse` in class `GmsImpl`

    - #### suspect

          public void suspect(Address mbr)

      Overrides:
        `suspect` in class `GmsImpl`

    - #### unsuspect

          public void unsuspect(Address mbr)

      Removes previously suspected member from list of currently suspected members
      Overrides:
        `unsuspect` in class `GmsImpl`

    - #### handleMembershipChange

          public void handleMembershipChange(java.util.Collection<GmsImpl.Request> requests)

      Overrides:
        `handleMembershipChange` in class `GmsImpl`

    - #### handleViewChange

          public void handleViewChange(View new_view,
                              Digest digest)

      If we are leaving, we have to wait for the view change (last msg in the current view) that excludes us before we can leave.
      Overrides:
        `handleViewChange` in class `GmsImpl`
      Parameters:
        `new_view` - The view to be installed
        `digest` - If view is a MergeView, digest contains the seqno digest of all members and has to be set by GMS

Copyright © 1998-2009 Bela Ban / Red Hat. All Rights Reserved.