package spimedb.util.bag;
import jcog.event.ListTopic;
import jcog.event.Topic;
import java.util.Map;
/**
* Created by me on 1/16/17.
*/
public class ObservablePriBag<X> extends PriBag<X> {
public final Topic<X> ADD = new ListTopic<>();
public final Topic<X> REMOVE = new ListTopic<>();
//TODO: public final Topic<ObjectFloatPair<X>> CHANGE = new ArrayTopic<>(); //object and its new value
public ObservablePriBag(int cap, BudgetMerge mergeFunction, /*@NotNull*/ Map map) {
super(cap, mergeFunction, map);
}
// @Override
// public void clear() {
//
// super.clear();
// }
@Override
protected void onAdded(Budget<X> w) {
ADD.emit(w.id);
}
@Override
protected void onRemoved(Budget<X> w) {
REMOVE.emit(w.id);
}
}