package com.limegroup.gnutella.util;
import java.util.HashSet;
import java.util.Set;
/**
* a Round Robin queue where elements are unique.
*/
public class RoundRobinSetQueue extends RoundRobinQueue {
private Set _uniqueness;
public RoundRobinSetQueue() {
super();
_uniqueness = new HashSet();
}
/* (non-Javadoc)
* @see com.limegroup.gnutella.util.RoundRobinQueue#enqueue(java.lang.Object)
*/
public synchronized void enqueue(Object value) {
if (_uniqueness.add(value))
super.enqueue(value);
}
/* (non-Javadoc)
* @see com.limegroup.gnutella.util.RoundRobinQueue#remove(java.lang.Object)
*/
public synchronized void remove(Object o) {
if (_uniqueness.contains(o)) {
_uniqueness.remove(o);
super.remove(o);
}
}
/* (non-Javadoc)
* @see com.limegroup.gnutella.util.RoundRobinQueue#removeAllOccurences(java.lang.Object)
*/
public synchronized void removeAllOccurences(Object o) {
remove(o);
}
}