List of usage examples for com.google.common.util.concurrent SettableFuture create
public static <V> SettableFuture<V> create()
From source file:com.microsoft.services.orc.core.OrcMediaEntityFetcher.java
public ListenableFuture<InputStream> getStreamedContent() { Request request = getResolver().createRequest(); request.setVerb(HttpVerb.GET);// w w w. jav a2 s . c o m request.addOption(Request.MUST_STREAM_RESPONSE_CONTENT, "true"); OrcURL url = request.getUrl(); url.appendPathComponent("$value"); ListenableFuture<OrcResponse> future = oDataExecute(request); return Futures.transform(future, new AsyncFunction<OrcResponse, InputStream>() { @Override public ListenableFuture<InputStream> apply(OrcResponse response) throws Exception { SettableFuture<InputStream> result = SettableFuture.create(); result.set(new MediaEntityInputStream(response.openStreamedResponse(), response)); return result; } }); }
From source file:c5db.SimpleModuleInformationProvider.java
@Override public ListenableFuture<ImmutableMap<ModuleType, Integer>> getOnlineModules() { final SettableFuture<ImmutableMap<ModuleType, Integer>> future = SettableFuture.create(); fiber.execute(() -> future.set(ImmutableMap.copyOf(onlineModuleToPortMap))); return future; }
From source file:io.crate.executor.transport.SnapshotRestoreDDLDispatcher.java
public ListenableFuture<Long> dispatch(final DropSnapshotAnalyzedStatement statement) { final SettableFuture<Long> future = SettableFuture.create(); final String repositoryName = statement.repository(); final String snapshotName = statement.snapshot(); transportActionProvider.transportDeleteSnapshotAction().execute( new DeleteSnapshotRequest(repositoryName, snapshotName), new ActionListener<DeleteSnapshotResponse>() { @Override/* w w w .ja v a2 s.c o m*/ public void onResponse(DeleteSnapshotResponse response) { if (!response.isAcknowledged()) { LOGGER.info("delete snapshot '{}.{}' not acknowledged", repositoryName, snapshotName); } future.set(1L); } @Override public void onFailure(Throwable e) { future.setException(e); } }); return future; }
From source file:es.udc.pfc.gameroom.GameComponent.java
public final ListenableFuture<Room> newRoom(final String type) { final SettableFuture<Room> future = SettableFuture.create(); Futures.addCallback(getUniqueRoomName(), new FutureCallback<String>() { @Override/*from w ww.jav a2 s.c o m*/ public void onSuccess(String roomID) { if (roomID == null) { log.severe("Error requesting unique room name"); future.setException(new Exception("Error requesting unique room name")); return; } final Room newRoom; if (type.equals("minichess")) { newRoom = new MiniChessRoom(GameComponent.this, JID.jid(getMUCServiceName(), roomID, null)); } else { log.severe("Unknown game type " + type); future.setException(new Exception("Unknown game type " + type)); return; } rooms.put(roomID, newRoom); newRoom.joinRoom(); newRoom.configureRoom(); future.set(newRoom); } @Override public void onFailure(Throwable t) { future.setException(t); } }); return future; }
From source file:c5db.log.LogService.java
@Override public ListenableFuture<ReplicatorLog> getReplicatorLog(String quorumId) { SettableFuture<ReplicatorLog> logFuture = SettableFuture.create(); fiber.execute(() -> {/*from w w w. j a v a2s . co m*/ if (moorings.containsKey(quorumId)) { logFuture.set(moorings.get(quorumId)); return; } try { // TODO this blocks on a fiber, and should be changed to use a callback. Mooring mooring = new Mooring(oLog, quorumId); moorings.put(quorumId, mooring); logFuture.set(mooring); } catch (IOException e) { logFuture.setException(e); } }); return logFuture; }
From source file:com.facebook.presto.operator.ParallelHashBuilder.java
public ParallelHashBuilder(List<Type> types, List<Integer> hashChannels, Optional<Integer> hashChannel, int expectedPositions, int partitionCount) { this.types = ImmutableList.copyOf(requireNonNull(types, "types is null")); this.hashChannels = ImmutableList.copyOf(requireNonNull(hashChannels, "hashChannels is null")); this.hashChannel = requireNonNull(hashChannel, "hashChannel is null"); checkArgument(expectedPositions >= 0, "expectedPositions is negative"); this.expectedPositions = expectedPositions; checkArgument(Integer.bitCount(partitionCount) == 1, "partitionCount must be a power of 2"); ImmutableList.Builder<SettableFuture<PagesIndex>> pagesIndexFutures = ImmutableList.builder(); ImmutableList.Builder<SettableFuture<SharedLookupSource>> lookupSourceFutures = ImmutableList.builder(); for (int i = 0; i < partitionCount; i++) { pagesIndexFutures.add(SettableFuture.create()); lookupSourceFutures.add(SettableFuture.create()); }//from w w w . j a v a 2s . c o m this.pagesIndexFutures = pagesIndexFutures.build(); this.lookupSourceFutures = lookupSourceFutures.build(); lookupSourceSupplier = new ParallelLookupSourceSupplier(types, hashChannels, this.lookupSourceFutures); }
From source file:com.addthis.hydra.data.query.engine.EngineLoader.java
@Override public ListenableFuture<QueryEngine> reload(final String dir, final QueryEngine oldValue) throws Exception { //test for new data if (((QueryEngineDirectory) oldValue).isOlder(dir)) { ListenableFutureTask<QueryEngine> task = ListenableFutureTask .create(new RefreshEngineCall(dir, oldValue, this)); engineRefresherPool.submit(task); return task; } else {/*from ww w .j av a 2s .co m*/ SettableFuture<QueryEngine> task = SettableFuture.create(); task.set(oldValue); return task; } }
From source file:co.cask.cdap.internal.app.runtime.AbstractProgramController.java
@Override public final ListenableFuture<ProgramController> suspend() { if (!state.compareAndSet(State.ALIVE, State.SUSPENDING)) { return Futures .immediateFailedFuture(new IllegalStateException("Suspension not allowed").fillInStackTrace()); }//w ww.j ava 2s .co m final SettableFuture<ProgramController> result = SettableFuture.create(); executor(State.SUSPENDING).execute(new Runnable() { @Override public void run() { try { caller.suspending(); doSuspend(); state.set(State.SUSPENDED); result.set(AbstractProgramController.this); caller.suspended(); } catch (Throwable t) { error(t, result); } } }); return result; }
From source file:org.n52.matlab.connector.client.RemoteMatlabClient.java
@Override public Future<MatlabResult> exec(MatlabRequest request) throws MatlabException, IOException { Preconditions.checkState(session != null && session.isOpen()); try {/*from www . ja v a2s .c o m*/ SettableFuture<MatlabResult> future = SettableFuture.create(); SettableFuture<MatlabResult> oldFuture = this.responses.putIfAbsent(request.getId(), future); if (oldFuture != null) { // we already executed that request... return oldFuture; } session.getBasicRemote().sendObject(request); return future; } catch (EncodeException ex) { throw new RuntimeException(ex); } }
From source file:net.swigg.talo.proxy.TaloCacheServlet.java
protected void service(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { // check if we should even try and serve from the cache Predicate<HttpServletRequest> serveFromCache = this.serveFromCachePredicate(); if (!serveFromCache.apply(request)) { super.service(request, response); return;/*from ww w. j ava2 s . c o m*/ } RequestIdentity requestIdentity = new RequestIdentity(request); SettableFuture<ResponseHolder> settableFuture = null; SettableFuture<ResponseHolder> responseHolderSettableFuture = SettableFuture.create(); // add a cache entry for this request if one doesn't already exists settableFuture = cache.putIfAbsent(requestIdentity, responseHolderSettableFuture); if (settableFuture != null) { this.writeCachedResponse(settableFuture, request, response); return; } // service the request request.setAttribute("requestIdentity", requestIdentity); super.service(request, response); }