/** * @return a copy in a new set */ public Set<T> getAll() { Set<T> all = new HashSet<T>(256); getReadLock(); try { for (KBucket<T> b : _buckets) { all.addAll(b.getEntries()); } } finally { releaseReadLock(); } return all; }
public boolean trim(KBucket<T> kbucket, T toAdd) { List<T> e = new ArrayList<T>(kbucket.getEntries()); int sz = e.size(); // concurrency if (sz < _max) return true; T toRemove = e.get(_ctx.random().nextInt(sz)); kbucket.remove(toRemove); return true; } }
public void getAll(SelectionCollector<T> collector) { getReadLock(); try { for (KBucket<T> b : _buckets) { b.getEntries(collector); } } finally { releaseReadLock(); } }
Set<T> entries = _buckets.get(i).getEntries();
Set<T> entries = _buckets.get(i).getEntries(); for (T e : entries) { if (!toIgnore.contains(e)) { Set<T> entries = _buckets.get(i).getEntries(); for (T e : entries) { if (!toIgnore.contains(e)) {
public boolean trim(KBucket<NID> kbucket, NID toAdd) { long now = _ctx.clock().now(); if (kbucket.getLastChanged() > now - MIN_BUCKET_AGE) return false; Set<NID> entries = kbucket.getEntries(); for (NID nid : entries) { if (nid.lastSeen() < now - MAX_NODE_AGE) { if (kbucket.remove(nid)) return true; } } return entries.size() < _max; } }
KBucket<T> b1 = createBucket(s1, e1); KBucket<T> b2 = createBucket(s2, e2); for (T key : b0.getEntries()) { if (getRange(key) < s2) b1.add(key);
/** @since 0.9.10 */ public void testAudit() { int errors = 0; for (KBucket<Hash> b : set.getBuckets()) { for (Hash sds : b.getEntries()) { int range = set.getRange(sds); if (range < b.getRangeBegin() || range > b.getRangeEnd()) { log.error("Hash " + sds + " with range " + range + " does not belong in " + b); errors++; } } } assertTrue(errors == 0); }