public void notifyListeners (Object key, Object value) { Object[] listeners = null; synchronized (this) { if (sl == null) return; List l = (List) sl.entries.get (key); if (l != null) listeners = l.toArray(); } if (listeners != null) { for (Object listener : listeners) { Object o = listener; if (o instanceof Expirable) o = ((Expirable) o).getValue(); if (o instanceof SpaceListener) ((SpaceListener) o).notify(key, value); } } }
public void run() { Object[] listeners = null; synchronized (this) { if (sl == null) return; List l = (List) sl.entries.get (key); if (l != null) listeners = l.toArray(); } if (listeners != null) { for (int i=0; i<listeners.length; i++) { Object o = listeners[i]; if (o instanceof TSpace.Expirable) { o = ((TSpace.Expirable)o).getValue(); } if (o instanceof SpaceListener) { ((SpaceListener) o).notify(key, value); } } } } }.start();
private void notifyListeners (Object key, Object value) { Set<SpaceListener> listeners = new HashSet<SpaceListener>(); synchronized (this) { if (sl == null) return; SpaceListener s = null; while ((s = sl.inp(key)) != null) listeners.add(s); for (SpaceListener spl: listeners) sl.out(key, spl); } for (SpaceListener spl: listeners) spl.notify (key, value); }
public void out (Object key, Object value) { List listeners; synchronized (this) { Data data = (Data) map.get (key); if (data == null) map.put (key, data = new Data (key)); data.add (value); listeners = data.getListeners(); this.notifyAll (); } if (listeners != null) { Iterator iter = listeners.iterator(); while (iter.hasNext()) { ((SpaceListener)iter.next()).notify (key, value); } } } public void out (Object id, Object value, long timeout) {
public void out (Object key, Object value) { List listeners; synchronized (this) { Data data = (Data) map.get (key); if (data == null) map.put (key, data = new Data ()); data.add (value); this.notifyAll (); listeners = data.getListeners(); } if (listeners != null) { Iterator iter = listeners.iterator(); while (iter.hasNext()) { ((SpaceListener)iter.next()).notify (key, value); } } } public void out (Object id, Object value, long timeout) {