@Override protected void queueWriteIO(AtmosphereResource r, Deliver deliver, AtomicInteger count) throws InterruptedException { executeBlockingWrite(r, deliver, count); } }
@Override public Future<Object> broadcast(Object msg, Set<AtmosphereResource> subset) { if (destroyed.get()) { logger.warn("This Broadcaster has been destroyed and cannot be used"); return futureDone(msg); } start(); Object newMsg = filter(msg); if (newMsg == null) return null; BroadcasterFuture<Object> f = new BroadcasterFuture<Object>(newMsg); push(new Deliver(newMsg, subset, f, msg)); return f; }
@Override protected void prepareInvokeOnStateChange(final AtmosphereResource r, final AtmosphereResourceEvent e) { if (writeTimeoutInSecond != -1) { logger.warn("{} not supported with this broadcaster.", ApplicationConfig.WRITE_TIMEOUT); } invokeOnStateChange(r, e); }
@Override protected BroadcasterConfig createBroadcasterConfig(AtmosphereConfig config) { BroadcasterConfig bc = (BroadcasterConfig) config.properties().get(BroadcasterConfig.class.getName()); if (bc == null) { bc = new BroadcasterConfig(config.framework().broadcasterFilters(), config, false, getID()) .init() .setScheduledExecutorService(ExecutorsFactory.getScheduler(config)); } return bc; }
@Override public Broadcaster initialize(String id, AtmosphereConfig config) { super.initialize(id, config); init(config); return this; }
@Override public void setID(String id) { super.setID(id); restartConsumer(); }
@Override public String getID() { String id = super.getID(); if (id.startsWith("/*")) { id = "atmosphere"; } return id; }
@Override public Broadcaster initialize(String name, java.net.URI uri, AtmosphereConfig config) { super.initialize(name, uri, config); init(config); return this; }
@Override public Future<Object> broadcast(Object msg) { if (destroyed.get()) { logger.warn("This Broadcaster has been destroyed and cannot be used"); return futureDone(msg); } start(); Object newMsg = filter(msg); if (newMsg == null) return null; BroadcasterFuture<Object> f = new BroadcasterFuture<Object>(newMsg); push(new Deliver(newMsg, f, msg)); return f; }
@Override public Future<Object> broadcast(Object msg, AtmosphereResource r) { if (destroyed.get()) { logger.warn("This Broadcaster has been destroyed and cannot be used"); return futureDone(msg); } start(); Object newMsg = filter(msg); if (newMsg == null) return null; BroadcasterFuture<Object> f = new BroadcasterFuture<Object>(newMsg); push(new Deliver(newMsg, r, f, msg)); return f; }