Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jgroups.util
Class MutableDigest

    java.lang.Object
      org.jgroups.util.Digest
          org.jgroups.util.MutableDigest

All Implemented Interfaces:
  java.io.Externalizable, java.io.Serializable, Streamable

    public class MutableDigest

extends Digest

A mutable version of Digest (which is immutable

Author:
  Bela Ban
See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class org.jgroups.util.Digest
`Digest.Entry`

Field Summary

Fields inherited from class org.jgroups.util.Digest
`EMPTY_DIGEST, log, senders`

Constructor Summary
`MutableDigest()` Used for externalization
`MutableDigest(Digest digest)`
`MutableDigest(int size)`
`MutableDigest(java.util.Map<Address,Digest.Entry> map)`

Method Summary
`void` | `add(Address sender, long low_seqno, long highest_delivered_seqno)`
`void` | `add(Address sender, long low_seqno, long highest_delivered_seqno, long highest_received_seqno)`
`void` | `add(Digest digest)`
`void` | `clear()`
`java.util.Map<Address,Digest.Entry>` | `getSenders()` Returns an unmodifiable map, so modifications will result in exceptions
`void` | `incrementHighestDeliveredSeqno(Address sender)` Increments the sender's highest delivered seqno by 1
`void` | `merge(Address sender, long low_seqno, long highest_delivered_seqno, long highest_received_seqno)` Similar to add(), but if the sender already exists, its seqnos will be modified (no new entry) as follows: this.low_seqno=min(this.low_seqno, low_seqno) this.highest_delivered_seqno=max(this.highest_delivered_seqno, highest_delivered_seqno) this.highest_received_seqno=max(this.highest_received_seqno, highest_received_seqno) If the sender doesn not exist, a new entry will be added (provided there is enough space)
`void` | `merge(Digest digest)` Adds a digest to this digest.
`void` | `replace(Digest d)`
`void` | `resetAt(Address sender)` Resets the seqnos for the sender at 'index' to 0.
`boolean` | `seal()` Seals the instance against modifications
`boolean` | `set(Address sender, long low_seqno, long highest_delivered_seqno, long highest_received_seqno)`
`void` | `setHighestDeliveredAndSeenSeqnos(Address sender, long low_seqno, long highest_delivered_seqno, long highest_received_seqno)`

Methods inherited from class org.jgroups.util.Digest
`contains, copy, difference, equals, get, highestDeliveredSeqnoAt, highestReceivedSeqnoAt, highestSequence, isGreaterThanOrEqual, lowSeqnoAt, printHighestDeliveredSeqnos, printHighestReceivedSeqnos, readExternal, readFrom, sameSenders, serializedSize, size, toString, toStringSorted, writeExternal, writeTo`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### MutableDigest

    public MutableDigest()

  Used for externalization

### MutableDigest

    public MutableDigest(int size)

### MutableDigest

    public MutableDigest(java.util.Map<Address,Digest.Entry> map)

### MutableDigest

    public MutableDigest(Digest digest)

Method Detail

### getSenders

    public java.util.Map<Address,Digest.Entry> getSenders()

  Description copied from class: `Digest`
  Returns an unmodifiable map, so modifications will result in exceptions

  Overrides:
    `getSenders` in class `Digest`

### add

    public void add(Address sender,
                    long low_seqno,
                    long highest_delivered_seqno)

### add

    public void add(Address sender,
                    long low_seqno,
                    long highest_delivered_seqno,
                    long highest_received_seqno)

### add

    public void add(Digest digest)

### replace

    public void replace(Digest d)

### set

    public boolean set(Address sender,
                       long low_seqno,
                       long highest_delivered_seqno,
                       long highest_received_seqno)

### merge

    public void merge(Digest digest)

  Adds a digest to this digest. This digest must have enough space to add the other digest; otherwise an error message will be written. For each sender in the other digest, the merge() method will be called.

### merge

    public void merge(Address sender,
                      long low_seqno,
                      long highest_delivered_seqno,
                      long highest_received_seqno)

  Similar to add(), but if the sender already exists, its seqnos will be modified (no new entry) as follows:
  1. this.low_seqno=min(this.low_seqno, low_seqno)
  2. this.highest_delivered_seqno=max(this.highest_delivered_seqno, highest_delivered_seqno)
  3. this.highest_received_seqno=max(this.highest_received_seqno, highest_received_seqno)
  If the sender doesn not exist, a new entry will be added (provided there is enough space)

### incrementHighestDeliveredSeqno

    public void incrementHighestDeliveredSeqno(Address sender)

  Increments the sender's highest delivered seqno by 1

### resetAt

    public void resetAt(Address sender)

  Resets the seqnos for the sender at 'index' to 0. This happens when a member has left the group, but it is still in the digest. Resetting its seqnos ensures that no-one will request a message retransmission from the dead member.

### clear

    public void clear()

### setHighestDeliveredAndSeenSeqnos

    public void setHighestDeliveredAndSeenSeqnos(Address sender,
                                                 long low_seqno,
                                                 long highest_delivered_seqno,
                                                 long highest_received_seqno)

### seal

    public boolean seal()

  Seals the instance against modifications

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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