/** * called when a valid result of a future becomes available. * forwards to (new) "then" variant. * @return */ default public IPromise<T> onResult( Consumer<T> resultHandler ) { return then(resultHandler); }
/** * called when a valid result of a future becomes available. * forwards to (new) "then" variant. * @return */ default public IPromise<T> onResult( Consumer<T> resultHandler ) { return then(resultHandler); }
@Override public <OUT> IPromise<OUT> then(Consumer<T> function) { if (realCallback instanceof IPromise == false) throw new RuntimeException("this is an error."); else return ((IPromise)realCallback).then(function); }
@Override public <OUT> IPromise<OUT> then(Consumer<T> function) { if (realCallback instanceof IPromise == false) throw new RuntimeException("this is an error."); else return ((IPromise)realCallback).then(function); }
/** * Warning: this will not be called on error or timeout * * @param result * @return */ @Override public IPromise<T> then(Runnable result) { if (realCallback instanceof IPromise == false) throw new RuntimeException("this is an error."); else return ((IPromise)realCallback).then(result); }
/** * Warning: this will not be called on error or timeout * * @param result * @return */ @Override public IPromise<T> then(Runnable result) { if (realCallback instanceof IPromise == false) throw new RuntimeException("this is an error."); else return ((IPromise)realCallback).then(result); }
/** * Warning: this will not be called on error or timeout * * @param result * @return */ @Override public IPromise then(Callback<T> result) { if (realCallback instanceof IPromise == false) throw new RuntimeException("this is an error."); else return ((IPromise)realCallback).then(result); }
/** * Warning: this will not be called on error or timeout * * @param result * @return */ @Override public IPromise then(Callback<T> result) { if (realCallback instanceof IPromise == false) throw new RuntimeException("this is an error."); else return ((IPromise)realCallback).then(result); }
@Override public void complete(T result, Object error) { if ( ! Actor.isError(error) ) { res.complete(null, error); } else { function.apply(error).then(res); } } });
@Override public void complete(T result, Object error) { if ( ! Actor.isError(error) ) { res.complete(null, error); } else { function.apply(error).then(res); } } });
@Override public void complete(T result, Object error) { if ( Actor.isError(error) ) { res.complete(null, error); } else { function.apply(result).then(res); } } });
@Override public void complete(T result, Object error) { if ( Actor.isError(error) ) { res.complete(null, error); } else { function.apply(result).then(res); } } });
@Override public void complete(T result, Object error) { if ( Actor.isError(error) ) { res.complete(null, error); } else { IPromise<T> call = null; call = callable.get().then(res); } } });
@Override public void complete(T result, Object error) { if ( Actor.isError(error) ) { res.complete(null, error); } else { IPromise<T> call = null; call = callable.get().then(res); } } });
@Override public IPromise<Long> size() { Promise result = new Promise(); Actors.all(shards.stream().map( shard -> shard.size() ).collect(Collectors.toList())) .then( longPromisList -> { long sum = longPromisList.stream().mapToLong(prom -> prom.get()).sum(); result.resolve(sum); }); return result; }
private static <T> void awaitSettle(final IPromise<T> futures[], final IPromise result) { PromiseLatch latch = new PromiseLatch(futures.length); latch.getPromise().then( () -> result.complete(futures, null) ); for (int i = 0; i < futures.length; i++) { futures[i].then( () -> latch.countDown() ); } }
private static <T> void awaitSettle(final IPromise<T> futures[], final IPromise result) { PromiseLatch latch = new PromiseLatch(futures.length); latch.getPromise().then( () -> result.complete(futures, null) ); for (int i = 0; i < futures.length; i++) { futures[i].then( () -> latch.countDown() ); } }
@Override public <T extends Actor> IPromise<T> connect(Callback<ActorClientConnector> disconnectCallback, Consumer<Actor> actorDisconnecCB) { HttpClientConnector con = new HttpClientConnector(this); con.disconnectCallback = disconnectCallback; ActorClient actorClient = new ActorClient(con, actorClz, coding); Promise p = new Promise(); con.getRefPollActor().execute(() -> { Thread.currentThread().setName("Http Ref Polling"); actorClient.connect(inboundQueueSize, null).then(p); }); return p; }