Class Digest

java.lang.Object
org.jgroups.util.Digest
All Implemented Interfaces:
Iterable<Digest.Entry>, Constructable<Digest>, SizeStreamable, Streamable
Direct Known Subclasses:
MutableDigest

public class Digest extends Object implements SizeStreamable, Iterable<Digest.Entry>, Constructable<Digest>
A message digest containing - for each member - the highest seqno delivered (hd) and the highest seqno received (hr). The seqnos are stored according to the order of the members in the associated membership, ie. seqnos[0] is the hd for member members[0], seqnos[1] is the hr for the same member, seqnos[2] is the hd for members[1] and so on.

Field 'members' may refer to the View.members, e.g. in a JoinRsp where we ship a view and a digest referring to the view's membership. This is done to conserve memory.

This class is immutable except for 2 cases:

  • The contents are read when unmarshalling (readFrom())
  • The membership is set with members(). This must only be done directly after unmarshalling
  • Field Details

    • members

      protected Address[] members
    • seqnos

      protected long[] seqnos
  • Constructor Details

    • Digest

      public Digest()
      Used for serialization
    • Digest

      public Digest(Address[] members, long[] seqnos)
    • Digest

      public Digest(Address[] members)
      Only used internally, don't use !
    • Digest

      public Digest(Digest digest)
      Only used for testing
    • Digest

      public Digest(Map<Address,long[]> map)
      Creates a new digest from an existing map by copying the keys and values from map
    • Digest

      public Digest(Address sender, long highest_delivered, long highest_received)
  • Method Details