public Promise<Integer> createSubsId() { int id = (int) (Math.random()*Integer.MAX_VALUE); if ( getSubsMap().containsKey(id) ) return createSubsId(); getSubsMap().put(id,new DummyCB()); return new Promise<>(id); }
public Promise<Boolean> subscribe(int id, Callback cb) { if (getSubsMap().get(id) instanceof DummyCB == false ) return new Promise(false); getSubsMap().put(id,cb); return new Promise(true); }
public void cleanUp() { Iterator<Map.Entry<Integer, Callback>> it = getSubsMap().entrySet().iterator(); while( it.hasNext() ) { Map.Entry<Integer, Callback> next = it.next(); if ( next.getValue().isTerminated() ) it.remove(); } }
public Promise<Integer> createSubsId() { int id = (int) (Math.random()*Integer.MAX_VALUE); if ( getSubsMap().containsKey(id) ) return createSubsId(); getSubsMap().put(id,new DummyCB()); return new Promise<>(id); }
public Promise<Boolean> subscribe(int id, Callback cb) { if (getSubsMap().get(id) instanceof DummyCB == false ) return new Promise(false); getSubsMap().put(id,cb); return new Promise(true); }
public void cleanUp() { Iterator<Map.Entry<Integer, Callback>> it = getSubsMap().entrySet().iterator(); while( it.hasNext() ) { Map.Entry<Integer, Callback> next = it.next(); if ( next.getValue().isTerminated() ) it.remove(); } }
public Promise<Boolean> unSubscribe(int id, Callback cb) { Callback removed = getSubsMap().remove(id); if ( removed != null ) // ensure remote mapping is cleaned up removed.finish(); return new Promise( removed != null ); }
public Promise<Boolean> unSubscribe(int id, Callback cb) { Callback removed = getSubsMap().remove(id); if ( removed != null ) // ensure remote mapping is cleaned up removed.finish(); return new Promise( removed != null ); }