public void send(Runnable code) { channel.publish(code); } }
public void start() { // subscribe to incoming channel inChannel.subscribe(fiber, callback); }
public Agent() { this.channel = new MemoryChannel<Runnable>(); this.fiber = Fibers.pooledFiber(); channel.subscribe(fiber, callback); }
public void sendMessage(T message) { outChannel.publish(message); }
public Downloader() { PoolFiberFactory f = new PoolFiberFactory(pool); //subscribe multiple fibers for parallel execution for (int i = 0, numThreads = 10; i < numThreads; i++) { Fiber fiber = f.create(); fiber.start(); fibers.add(fiber); channel.subscribe(fiber, new DownloadCallback()); } }
public void add(DownloadJob job) { if (job.getState() == State.PREPARING) { throw new IllegalArgumentException("Job already preparing"); } if (job.getState() == State.WORKING) { throw new IllegalArgumentException("Job already working"); } if (job.getState() == State.FINISHED) { throw new IllegalArgumentException("Job already finished"); } job.setState(State.NEW); jobs.add(job); channel.publish(job); }
public Disposable subscribe(DisposingExecutor executor, Callback<T> receive) { final Disposable[] all = new Disposable[channels.length]; Disposable d = new Disposable() { public void dispose() { for (Disposable disposable : all) { disposable.dispose(); } } }; for (int i = 0; i < channels.length; i++) { all[i] = channels[i].subscribe(executor, receive); } return d; }
public void publish(T msg) { for (Channel<T> channel : channels) { channel.publish(msg); } } }
public Disposable subscribe(Subscribable<T> sub) { final Disposable[] all = new Disposable[channels.length]; Disposable d = new Disposable() { public void dispose() { for (Disposable disposable : all) { disposable.dispose(); } } }; for (int i = 0; i < channels.length; i++) { all[i] = channels[i].subscribe(sub); } return d; }
public void publish(T msg) { for (Channel<T> channel : channels) { channel.publish(msg); } } }
public Disposable subscribe(DisposingExecutor executor, Callback<T> receive) { final Disposable[] all = new Disposable[channels.length]; Disposable d = new Disposable() { public void dispose() { for (Disposable disposable : all) { disposable.dispose(); } } }; for (int i = 0; i < channels.length; i++) { all[i] = channels[i].subscribe(executor, receive); } return d; }
public Disposable subscribe(Subscribable<T> sub) { final Disposable[] all = new Disposable[channels.length]; Disposable d = new Disposable() { public void dispose() { for (Disposable disposable : all) { disposable.dispose(); } } }; for (int i = 0; i < channels.length; i++) { all[i] = channels[i].subscribe(sub); } return d; }