List of usage examples for com.google.common.util.concurrent SettableFuture set
@Override public boolean set(@Nullable V value)
From source file:io.crate.blob.v2.BlobIndices.java
public ListenableFuture<Void> createBlobTable(String tableName, Settings indexSettings) { ImmutableSettings.Builder builder = ImmutableSettings.builder(); builder.put(indexSettings);/*w w w. ja v a2 s . c o m*/ builder.put(SETTING_INDEX_BLOBS_ENABLED, true); final SettableFuture<Void> result = SettableFuture.create(); transportCreateIndexActionProvider.get().execute( new CreateIndexRequest(fullIndexName(tableName), builder.build()), new ActionListener<CreateIndexResponse>() { @Override public void onResponse(CreateIndexResponse createIndexResponse) { assert createIndexResponse.isAcknowledged(); result.set(null); } @Override public void onFailure(Throwable e) { result.setException(e); } }); return result; }
From source file:com.google.devtools.build.lib.remote.AbstractRemoteActionCache.java
/** * Downloads a blob with content hash {@code digest} and stores its content in memory. * * @return a future that completes after the download completes (succeeds / fails). If successful, * the content is stored in the future's {@code byte[]}. *//* w w w . j a v a2s .c o m*/ public ListenableFuture<byte[]> downloadBlob(Digest digest) { if (digest.getSizeBytes() == 0) { return EMPTY_BYTES; } ByteArrayOutputStream bOut = new ByteArrayOutputStream((int) digest.getSizeBytes()); SettableFuture<byte[]> outerF = SettableFuture.create(); Futures.addCallback(downloadBlob(digest, bOut), new FutureCallback<Void>() { @Override public void onSuccess(Void aVoid) { outerF.set(bOut.toByteArray()); } @Override public void onFailure(Throwable t) { outerF.setException(t); } }, MoreExecutors.directExecutor()); return outerF; }
From source file:io.crate.blob.v2.BlobIndicesService.java
public ListenableFuture<Void> createBlobTable(String tableName, Settings indexSettings) { Settings.Builder builder = Settings.builder(); builder.put(indexSettings);// w ww . j a v a 2s . co m builder.put(SETTING_INDEX_BLOBS_ENABLED, true); final SettableFuture<Void> result = SettableFuture.create(); transportCreateIndexActionProvider.get().execute( new CreateIndexRequest(fullIndexName(tableName), builder.build()), new ActionListener<CreateIndexResponse>() { @Override public void onResponse(CreateIndexResponse createIndexResponse) { assert createIndexResponse.isAcknowledged(); result.set(null); } @Override public void onFailure(Throwable e) { result.setException(e); } }); return result; }
From source file:io.crate.executor.transport.RepositoryService.java
public ListenableFuture<Long> execute(DropRepositoryAnalyzedStatement analyzedStatement) { final SettableFuture<Long> future = SettableFuture.create(); final String repoName = analyzedStatement.repositoryName(); deleteRepositoryAction.execute(new DeleteRepositoryRequest(repoName), new ActionListener<DeleteRepositoryResponse>() { @Override/*from w w w. java 2 s. co m*/ public void onResponse(DeleteRepositoryResponse deleteRepositoryResponse) { if (!deleteRepositoryResponse.isAcknowledged()) { LOGGER.info("delete repository '{}' not acknowledged", repoName); } future.set(1L); } @Override public void onFailure(Throwable e) { future.setException(e); } }); return future; }
From source file:com.google.cloud.pubsub.spi.v1.MessageDispatcher.java
public void processReceivedMessages(List<com.google.pubsub.v1.ReceivedMessage> responseMessages) { int receivedMessagesCount = responseMessages.size(); if (receivedMessagesCount == 0) { return;/*from w w w. j av a 2 s. com*/ } Instant now = new Instant(clock.millis()); int totalByteCount = 0; final ArrayList<AckHandler> ackHandlers = new ArrayList<>(responseMessages.size()); for (ReceivedMessage pubsubMessage : responseMessages) { int messageSize = pubsubMessage.getMessage().getSerializedSize(); totalByteCount += messageSize; ackHandlers.add(new AckHandler(pubsubMessage.getAckId(), messageSize)); } Instant expiration = now.plus(messageDeadlineSeconds * 1000); logger.log(Level.INFO, "Received " + responseMessages.size() + " messages at " + now); messagesWaiter.incrementPendingMessages(responseMessages.size()); Iterator<AckHandler> acksIterator = ackHandlers.iterator(); for (ReceivedMessage userMessage : responseMessages) { final PubsubMessage message = userMessage.getMessage(); final AckHandler ackHandler = acksIterator.next(); final SettableFuture<AckReply> response = SettableFuture.create(); final AckReplyConsumer consumer = new AckReplyConsumer() { @Override public void accept(AckReply reply, Throwable t) { if (reply != null) { response.set(reply); } else { response.setException(t); } } }; Futures.addCallback(response, ackHandler); executor.submit(new Runnable() { @Override public void run() { receiver.receiveMessage(message, consumer); } }); } synchronized (outstandingAckHandlers) { outstandingAckHandlers .add(new ExtensionJob(expiration, INITIAL_ACK_DEADLINE_EXTENSION_SECONDS, ackHandlers)); } setupNextAckDeadlineExtensionAlarm(expiration); try { flowController.reserve(receivedMessagesCount, totalByteCount); } catch (FlowController.FlowControlException unexpectedException) { throw new IllegalStateException("Flow control unexpected exception", unexpectedException); } }
From source file:co.cask.tigon.internal.app.runtime.AbstractProgramController.java
@Override public final ListenableFuture<ProgramController> stop() { if (!state.compareAndSet(State.STARTING, State.STOPPING) && !state.compareAndSet(State.ALIVE, State.STOPPING) && !state.compareAndSet(State.SUSPENDED, State.STOPPING)) { return Futures .immediateFailedFuture(new IllegalStateException("Resumption not allowed").fillInStackTrace()); }// w w w.j a v a 2 s . co m final SettableFuture<ProgramController> result = SettableFuture.create(); executor(State.STOPPING).execute(new Runnable() { @Override public void run() { try { caller.stopping(); doStop(); state.set(State.STOPPED); result.set(AbstractProgramController.this); caller.stopped(); } catch (Throwable t) { error(t, result); } } }); return result; }
From source file:io.prestosql.operator.Driver.java
private Driver(DriverContext driverContext, List<Operator> operators) { this.driverContext = requireNonNull(driverContext, "driverContext is null"); this.allOperators = ImmutableList.copyOf(requireNonNull(operators, "operators is null")); checkArgument(allOperators.size() > 1, "At least two operators are required"); this.activeOperators = new ArrayList<>(operators); checkArgument(!operators.isEmpty(), "There must be at least one operator"); Optional<SourceOperator> sourceOperator = Optional.empty(); Optional<DeleteOperator> deleteOperator = Optional.empty(); for (Operator operator : operators) { if (operator instanceof SourceOperator) { checkArgument(!sourceOperator.isPresent(), "There must be at most one SourceOperator"); sourceOperator = Optional.of((SourceOperator) operator); } else if (operator instanceof DeleteOperator) { checkArgument(!deleteOperator.isPresent(), "There must be at most one DeleteOperator"); deleteOperator = Optional.of((DeleteOperator) operator); }//from www . j a v a 2s .com } this.sourceOperator = sourceOperator; this.deleteOperator = deleteOperator; currentTaskSource = sourceOperator .map(operator -> new TaskSource(operator.getSourceId(), ImmutableSet.of(), false)).orElse(null); // initially the driverBlockedFuture is not blocked (it is completed) SettableFuture<?> future = SettableFuture.create(); future.set(null); driverBlockedFuture.set(future); }
From source file:com.github.sparkfy.network.client.TransportClient.java
/** * Synchronously sends an opaque message to the RpcHandler on the server-side, waiting for up to * a specified timeout for a response./*from ww w.ja v a 2 s . c o m*/ */ public ByteBuffer sendRpcSync(ByteBuffer message, long timeoutMs) { final SettableFuture<ByteBuffer> result = SettableFuture.create(); sendRpc(message, new RpcResponseCallback() { @Override public void onSuccess(ByteBuffer response) { ByteBuffer copy = ByteBuffer.allocate(response.remaining()); copy.put(response); // flip "copy" to make it readable copy.flip(); result.set(copy); } @Override public void onFailure(Throwable e) { result.setException(e); } }); try { return result.get(timeoutMs, TimeUnit.MILLISECONDS); } catch (ExecutionException e) { throw Throwables.propagate(e.getCause()); } catch (Exception e) { throw Throwables.propagate(e); } }
From source file:com.microsoft.windowsazure.mobileservices.table.sync.MobileServiceSyncTable.java
private void insertInternal(JsonObject json, final SettableFuture<E> finalFuture) { ListenableFuture<JsonObject> internalFuture = mInternalTable.insert(json); Futures.addCallback(internalFuture, new FutureCallback<JsonObject>() { @Override//from w ww. ja v a 2 s. c om public void onFailure(Throwable throwable) { finalFuture.setException(throwable); } @Override public void onSuccess(JsonObject result) { finalFuture.set(parseResults(result).get(0)); } }); }
From source file:io.crate.action.sql.DDLAnalysisDispatcher.java
@Override public ListenableFuture<Long> visitRefreshTableAnalysis(RefreshTableAnalysis analysis, Void context) { String[] indexNames = getIndexNames(analysis.table(), analysis.partitionName()); if (analysis.schema().systemSchema() || indexNames.length == 0) { // shortcut when refreshing on system tables // or empty partitioned tables return Futures.immediateFuture(null); } else {/*from w ww .ja va 2s .com*/ final SettableFuture<Long> future = SettableFuture.create(); RefreshRequest request = new RefreshRequest(indexNames); transportRefreshAction.execute(request, new ActionListener<RefreshResponse>() { @Override public void onResponse(RefreshResponse refreshResponse) { future.set(null); // no row count } @Override public void onFailure(Throwable e) { future.setException(e); } }); return future; } }