default <U> Result<U> of(BiConsumer<U,ResultStream<T>> consumer) { return Result.of(x->consumer.accept(x,this), exn->fail(exn)); }
@Override public void addWatch(byte []tableKey, byte []key, String serverId) { _tableManager.loadTable(tableKey, Result.of(table->addWatchImpl(table, tableKey, key, serverId))); }
/** * Updates the deployed list for bfs configuration of the pods. * * Any file in /config/pods named *.cf is a pod config file. */ private void updateBfsPath() { _bfsPath.list(Result.of(list->updateBfsPath(list))); }
private void updateDirList(String dirName, List<String> list) { openReadFile(dirName, Result.of(is->updateDirFile(dirName, list, is))); }
private void updateDir(String dirName) { listQueryImpl(dirName, Result.of(list->updateDirList(dirName, list))); }
public void findStream(ResultStream<Cursor> result, Object[] args) { findAll(Result.of(iter->fillStream(result, iter), e->result.fail(e)), args); }
@Override public void buildTable(String sql, TableBuilderKraken builderKraken, TableBuilderKelp builderKelp, Result<TableKraken> result) { String id = builderKraken.getId(); PendingTable pending = new PendingTable(id); if (_pendingTableMap.get(id) == null) { _pendingTableMap.put(id, pending); } builderKelp.build(Result.of(table->addTable(sql, builderKraken, table, result), exn->failTable(exn, id, result))); }
@InService(PageServiceImpl.class) void writeImpl(TableKelp db, PageServiceImpl tableServiceImpl, TableWriterService readWrite, SegmentStream sOut, long oldSequence, int saveLength, int tail) { Objects.requireNonNull(sOut); int sequenceWrite = nextWriteSequence(); readWrite.writePage(this, sOut, oldSequence, saveLength, tail, sequenceWrite, Result.of(x->{ afterDataFlush(tableServiceImpl, sequenceWrite); })); }
@Override public void onPut(byte[] key, TypePut type) { FileEntry file = _fileEntryMap.get(HashKey.create(key)); if (file != null) { file.onChange(); } _fileName.findOneDirect(Result.of(c->onFileChange(c)), getParentHash(key), getPathKey(key), getHash(key)); }
@Override public void onRemove(byte[] key, TypePut type) { FileEntry file = _fileEntryMap.get(HashKey.create(key)); if (file != null) { file.onChange(); } _fileName.findOneDirect(Result.of(c->onFileChange(c)), getParentHash(key), getPathKey(key), getHash(key)); } }
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 void accept(T value) { if (_isFirst) { _isFirst = false; _value = value; } else { _fun.apply(_value, value, Result.of(x->{ _value = x; subPending(); }, e->{ next().fail(e); subPending(); })); } }
@Override public void accept(T value) { addPending(); _fun.apply(_value, value, Result.of(x->{ _value = x; subPending(); }, e->{ next().fail(e); subPending(); })); }
@Override public void accept(V value) { addPending(); _consumer.accept(value, Result.of(x->{ subPending(); }, e->{ next().fail(e); subPending(); })); } }
void onActive(long id, StubAmpBean stub, String address, Object []args) { ServiceRefAmp serviceRef = stub.services().service(address); _method.query(HeadersNull.NULL, Result.of(x->onComplete(id), exn->onComplete(id )), serviceRef.stub(), args); }
private void resubscribe(long timeout) { NodePodAmp node = getEvents().getEventServer().getPodNode(); long nextTimeout = Math.min(60000, 2 * timeout); _podServer.subscribe(node.pod().getId(), node.nodeIndex(), getPath(), Result.of(x->{}, e->onSubscribeFail(e, nextTimeout))); }
@Override public JoinState onHubHeartbeat(HeartbeatImpl heartbeat) { PodLocalService podService = heartbeat._bartender.getPodService(); PodsManagerServiceLocal podClusterService = heartbeat._bartender.getPodsClusterService(); podService.onJoinStart(Result.of(x->{ heartbeat._bartender.getPodsClusterService().onJoinStart(); })); podService.start(); heartbeat.updateHeartbeats(); return HEARTBEAT_RECEIVED; } },
@Override public void accept(T value) { addPending(); _map.apply(value, Result.of(x->{ next().accept(x); subPending(); }, e->{ next().fail(e); subPending(); })); }
@Override public void subscribe() { boolean isConnect = _isConnect; _isConnect = true; if (! isConnect) { NodePodAmp node = getEvents().getEventServer().getPodNode(); _podServer.subscribe(node.pod().getId(), node.nodeIndex(), getPath(), Result.of(x->{}, e->onSubscribeFail(e, 1))); } }
/** * Maps results to a method callback. */ public void map(MethodRef method, String sql, Object []args) { QueryBuilderKraken builder = QueryParserKraken.parse(this, sql); if (builder.isTableLoaded()) { QueryKraken query = builder.build(); query.map(method, args); } else { String tableName = builder.getTableName(); _tableService.loadTable(tableName, Result.of(t->builder.build().map(method, args))); } }