package com.android.dvci.util; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class CallBack { private static final String TAG = "CallBack"; private List<ICallBack> callbacks = new ArrayList<ICallBack>(); synchronized public void register(ICallBack c) { callbacks.add(c); } synchronized public <O> void trigger(O o) { Iterator<ICallBack> iterator = callbacks.iterator(); while (iterator.hasNext()) { iterator.next().run(o); } } synchronized public void deregister(ICallBack c) { callbacks.remove(c); } }