/** * see IPromise (inheriting Callback) interface */ public void timedOut( Timeout to ) { if (!hadResult ) { complete(null, to); } }
/** * see IPromise (inheriting Callback) interface */ public void timedOut( Timeout to ) { if (!hadResult ) { complete(null, to); } }
@Override public void complete(T result, Object error) { if ( Actor.isError(error) ) { res.complete(null, error); } else { function.accept(result); res.resolve(); } } });
@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.accept(error); res.resolve(); } } });
@Override public void complete(T result, Object error) { if ( Actor.isError(error) ) { res.complete(null, error); } else { function.accept(result); res.resolve(); } } });
@Override public void complete(T result, Object error) { if ( ! Actor.isError(error) ) { res.complete(null, error); } else { function.accept(error); res.resolve(); } } });
@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); } } });
/** * similar to es6 Promise.race method, however non-IPromise objects are not allowed * * returns a future which is settled once one of the futures provided gets settled * */ public static <T> IPromise<T> race( Collection<IPromise<T>> futures ) { Promise p = new Promise(); AtomicBoolean fin = new AtomicBoolean(false); for (Iterator<IPromise<T>> iterator = futures.iterator(); iterator.hasNext(); ) { iterator.next().then((r, e) -> { if (fin.compareAndSet(false, true)) { p.complete(r, e); } }); } return p; }
@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); } } });
/** * similar to es6 Promise.race method, however non-IPromise objects are not allowed * * returns a future which is settled once one of the futures provided gets settled * */ public static <T> IPromise<T> race( Collection<IPromise<T>> futures ) { Promise p = new Promise(); AtomicBoolean fin = new AtomicBoolean(false); for (Iterator<IPromise<T>> iterator = futures.iterator(); iterator.hasNext(); ) { iterator.next().then((r, e) -> { if (fin.compareAndSet(false, true)) { p.complete(r, e); } }); } return p; }
@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); } } });
/** * similar to es6 Promise.race method, however non-IPromise objects are not allowed * * returns a future which is settled once one of the futures provided gets settled * */ public static <T> IPromise<T> race( IPromise<T>... futures ) { Promise p = new Promise(); AtomicBoolean fin = new AtomicBoolean(false); for (int i = 0; i < futures.length; i++) { futures[i].then( (r,e) -> { if ( fin.compareAndSet(false,true) ) { p.complete(r, e); } }); } return p; }
/** * similar to es6 Promise.race method, however non-IPromise objects are not allowed * * returns a future which is settled once one of the futures provided gets settled * */ public static <T> IPromise<T> race( IPromise<T>... futures ) { Promise p = new Promise(); AtomicBoolean fin = new AtomicBoolean(false); for (int i = 0; i < futures.length; i++) { futures[i].then( (r,e) -> { if ( fin.compareAndSet(false,true) ) { p.complete(r, e); } }); } return p; }
/** * similar all but map promises to their content * * returns a future which is settled once all promises provided are settled * */ public static <T> IPromise<List<T>> allMapped(List<IPromise<T>> futures) { Promise returned = new Promise(); Promise res = new Promise(); awaitSettle(futures, res); res.then( (r, e) -> { if (r!=null) { returned.resolve(((List<Promise>)r).stream().map(p -> p.get()).collect(Collectors.toList())); } else { returned.complete(null,e); } }); return returned; }
public static IPromise<Object> connectClient(ConnectableActor connectable, Consumer<Actor> disconnectCallback) { Promise p = promise(); connectable.connect(null, disconnectCallback ).then( (r,e) -> { if ( r != null ) { getPinger().cyclic(CLIENT_PING_INTERVAL_MS, () -> { long[] paids = null; if ( r.__clientConnection != null ) paids = r.__clientConnection.getRemotedActorIds(); // System.out.println("remoted ids:"+ Arrays.toString(paids)); // System.out.println("published ids:"+ Arrays.toString(r.__clientConnection.getPublishedActorIds())); r.router$clientPing(System.currentTimeMillis(),paids); return true; }); } p.complete(r,e); }); return p; }
public static IPromise<Object> connectClient(ConnectableActor connectable, Consumer<Actor> disconnectCallback) { Promise p = promise(); connectable.connect(null, disconnectCallback ).then( (r,e) -> { if ( r != null ) { getPinger().cyclic(CLIENT_PING_INTERVAL_MS, () -> { long[] paids = null; if ( r.__clientConnection != null ) paids = r.__clientConnection.getRemotedActorIds(); // System.out.println("remoted ids:"+ Arrays.toString(paids)); // System.out.println("published ids:"+ Arrays.toString(r.__clientConnection.getPublishedActorIds())); r.router$clientPing(System.currentTimeMillis(),paids); return true; }); } p.complete(r,e); }); return p; }
public static IPromise<InstallResult> Install(String module, String versionSpec, File modulesDir, JNPMConfig config) { Promise p = new Promise(); synchronized ( JNPM.class ) { if ( singleton == null || singleton.isStopped() ) { singleton = AsActor(JNPM.class, AsyncHttpActor.getSingleton().getScheduler()); singleton.init(modulesDir, config); } } singleton.npmInstall(module, versionSpec, modulesDir).then((r, e) -> { // Log.Info(JNPM.class,"DONE "+r+" "+e); // unpkgCrawler.stop(); p.complete(r, e); }); return p; }