/** * Returns a message digest: for each member P the highest seqno received from P is added to the digest. */ private Digest getDigest() { Digest.Entry entry; Map<Address,Digest.Entry> map=new HashMap<Address,Digest.Entry>(members.size()); for(Address sender: members) { entry=getEntry(sender); if(entry == null) { if(log.isErrorEnabled()) { log.error("range is null"); } continue; } map.put(sender, entry); } return new Digest(map); }
/** * Returns a message digest: for each member P the highest seqno received from P <em>without a gap</em> is added to * the digest. E.g. if the seqnos received from P are [+3 +4 +5 -6 +7 +8], then 5 will be returned. Also, the * highest seqno <em>seen</em> is added. The max of all highest seqnos seen will be used (in STABLE) to determine * whether the last seqno from a sender was received (see "Last Message Dropped" topic in DESIGN). */ private Digest getDigestHighestDeliveredMsgs() { Digest.Entry entry; Map<Address,Digest.Entry> map=new HashMap<Address,Digest.Entry>(members.size()); for(Address sender: members) { entry=getEntry(sender); if(entry == null) { if(log.isErrorEnabled()) { log.error("range is null"); } continue; } map.put(sender, entry); } return new Digest(map); }