@Override public void addDiagnostics(final Dispatcher.Diagnostics d) { this.diagnostics.add(d); }
@Override public void removeDiagnostics(Dispatcher.Diagnostics d) { this.diagnostics.remove(d); } }
public DAGDispatcher() { locked = false; queue = new BoundedQueue<>(BOUNDS_SIZE); callbacks = new HashMap<>(); diagnostics = new CompoundDiagnostics(); }
public int remainingCapacity() { return capacity - size(); }
@Override public void onNack(final Class<?> store, final Action action, final Throwable throwable) { for (DAGDispatcher.Diagnostics d : diagnostics) { d.onNack(store, action, throwable); } }
@Override public void ack() { ack(true); }
private void lock() { diagnostics.onLock(); locked = true; }
@Override public void onDispatch(final Action action) { for (DAGDispatcher.Diagnostics d : diagnostics) { d.onDispatch(action); } }
@Override public void onAck(final Class<?> store, final Action action) { for (DAGDispatcher.Diagnostics d : diagnostics) { d.onAck(store, action); } }
private void unlock() { diagnostics.onUnlock(); locked = false; }
@Override public void onExecute(final Class<?> store, final Action action) { for (DAGDispatcher.Diagnostics d : diagnostics) { d.onExecute(store, action); } }
@Override public void onUnlock() { for (DAGDispatcher.Diagnostics d : diagnostics) { d.onUnlock(); } }
@Override public void onLock() { for (DAGDispatcher.Diagnostics d : diagnostics) { d.onLock(); } }
@Override public void onNack(final Class<?> store, final Action action, final String reason) { onNack(store, action, new RuntimeException(reason)); }
@Override public boolean offer(T e) { boolean added = false; if (size() < capacity) { added = list.add(e); } return added; }
@Override public void onNack(Class<?> store, Action action, String reason) { for (DAGDispatcher.Diagnostics d : diagnostics) { d.onNack(store, action, reason); } }