X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FTopologicalBag.java;fp=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FTopologicalBag.java;h=38e3925a9e6af487db128cba2d639046394d151b;hp=cdbe976ae06e969ea54954940a2c4f7dbf717cf7;hb=014de68a21aa2d17fdfd0bac7e404a725997a246;hpb=c4431d19cc5ddaae29d22c8c56366b53b0bad352 diff --git a/src/edu/berkeley/sbp/util/TopologicalBag.java b/src/edu/berkeley/sbp/util/TopologicalBag.java index cdbe976..38e3925 100644 --- a/src/edu/berkeley/sbp/util/TopologicalBag.java +++ b/src/edu/berkeley/sbp/util/TopologicalBag.java @@ -82,7 +82,7 @@ public class TopologicalBag implements MapBag,V> { return true; } - public boolean contains(K k) { return get(k).iterator().hasNext(); } + public boolean contains(K k) { return has(k); } public boolean contains(K k, V v) { for(Topology t : h.keySet()) @@ -100,6 +100,14 @@ public class TopologicalBag implements MapBag,V> { private HashMap> cache = new HashMap>(); public Iterable getAll(Topology k) { return h.get(k); } + + public void invoke(K k, Invokable ivbc, B b, C c) { + for(Topology t : h.keySet()) + if (t.contains(k)) + for(V v : h.get(t)) + ivbc.invoke(v, b, c); + } + public Iterable get(K k) { Iterable c = cache.get(k); if (c != null) return c;