PipePubImpl(Function<Pipe<T>,OnAvailable> onOk) { super(Result.ignore()); Objects.requireNonNull(onOk); _onOk = onOk; }
/** * Completes the Result with its value. Services call complete to finish * the response. * * Service: * <pre><code> * void hello(Result<String> result) * { * result.ok("Hello, world"); * } * </code></pre> * * Client: * <pre><code> * hello.hello((x,e)->System.out.println("Hello: " + x)); * </code></pre> * * @param result the result value */ @Override default void ok(T result) { try { handle(result, null); } catch (Exception e) { fail(e); } }
@Override protected void complete() { if (_result.isFuture()) { _result.completeFuture(this, null); } else { completeFuture(null); } }
public void fail(Throwable exn) { for (Result<TableKraken> result : _pendingList) { result.fail(exn); } } }
public void close(ShutdownModeAmp mode, Result<Void> result) { if (! _lifecycle.toDestroy()) { result.ok(null); return; } ArrayList<TableKelp> tables = new ArrayList<>(); for (TableKelp table : _db.getTables()) { tables.add(table); } Result<Void> resultJoin = Result.of(x->result.ok(closeImpl()), e->{ closeImpl(); result.fail(e); }); //Result<Void>[] tableFork = resultJoin.fork(tables.size(), x->null); Fork<Void,Void> fork = resultJoin.fork(); for (int i = 0; i < tables.size(); i++) { tables.get(i).close(mode, fork.branch()); // tableFork[i]); } fork.join(x->null); }
@Override public ServiceRef save(Result<Void> result) { result.ok(null); return this; }
@Override public void invoke(Result<V> result, Object []args) { driver().findOne(_sql, args, result.then(this::toProxy)); }
@Override public void onSave(Result<Void> result) { _isSaveRequested.compareAndSet(true, false); if (_modifiedList.size() == 0) { result.ok(null); return; } _modifiedWorkList.clear(); _modifiedWorkList.addAll(_modifiedList); _modifiedList.clear(); Result.Fork<Void,Void> fork = result.fork(); for (StubAmp stub : _modifiedWorkList) { stub.onSaveChild(fork.branch()); } fork.join(x->null); }
@Override protected void complete() { try { if (_fail != null) { _result.fail(_fail); return; } if (_result.isFuture()) { _result.completeFuture(this, null); } else { completeFuture(null); } } catch (Throwable e) { _result.fail(e); } }
default <U> Result<U> of(BiConsumer<U,ResultStream<T>> consumer) { return Result.of(x->consumer.accept(x,this), exn->fail(exn)); }
@Override public void accept(Cancel handle) { if (! _joinLifecycle.isActive()) { return; } try { if (isJoinRequired()) { _lastJoinTime = CurrentTime.currentTime(); _joinClient.start(x->updateRack(x), Result.of(count->onJoinComplete(count, Result.ignore()))); } } finally { _timer.runAfter(_joinTask, getJoinTimeout(), TimeUnit.MILLISECONDS, Result.ignore()); } } }
/** * The completion value. */ public final U getValue() { if (_chain != null) { Result<Object> chain = _chain; Object chainValue = _chainValue; _chain = null; _chainValue = null; chain.completeFuture(chainValue); } return _value; }
/** * Fails the Result with an exception. The exception will be passed to * the calling client. * * @param exn the exception */ @Override default void fail(Throwable exn) { try { handle(null, exn); } catch (Exception e) { throw new ServiceExceptionExecution(e); } }
@Override public void fail(Throwable exn) { _result.fail(exn); } }
public void waitForDeploy(String podName, String tag, Result<Boolean> result) { //_podsDeployService.waitForLoaderDeploy(podName, result); result.ok(true); }
@Override public void invoke(Result<List<V>> result, Object []args) { driver().findAll(_sql, args, result.then(this::listResult)); }