net.i2p.kademlia
Class RandomIfOldTrimmer<T extends SimpleDataStructure>

java.lang.Object
  extended by net.i2p.kademlia.RandomTrimmer<T>
      extended by net.i2p.kademlia.RandomIfOldTrimmer<T>
All Implemented Interfaces:
KBucketTrimmer<T>

public class RandomIfOldTrimmer<T extends SimpleDataStructure>
extends RandomTrimmer<T>

Removes a random element, but only if the bucket hasn't changed in 5 minutes.

Since:
0.9.2 in i2psnark, moved to core in 0.9.10

Field Summary
 
Fields inherited from class net.i2p.kademlia.RandomTrimmer
_ctx
 
Constructor Summary
RandomIfOldTrimmer(I2PAppContext ctx, int max)
           
 
Method Summary
 boolean trim(KBucket<T> kbucket, T toAdd)
          Called from add() just before adding the entry.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RandomIfOldTrimmer

public RandomIfOldTrimmer(I2PAppContext ctx,
                          int max)
Method Detail

trim

public boolean trim(KBucket<T> kbucket,
                    T toAdd)
Description copied from interface: KBucketTrimmer
Called from add() just before adding the entry. You may call getEntries() and/or remove() from here. Do NOT call add(). To always discard a newer entry, always return false.

Specified by:
trim in interface KBucketTrimmer<T extends SimpleDataStructure>
Overrides:
trim in class RandomTrimmer<T extends SimpleDataStructure>
Parameters:
kbucket - the kbucket that is now too big
Returns:
true to actually add the entry.