Example usage for com.google.common.util.concurrent SettableFuture create

List of usage examples for com.google.common.util.concurrent SettableFuture create

Introduction

In this page you can find the example usage for com.google.common.util.concurrent SettableFuture create.

Prototype

public static <V> SettableFuture<V> create() 

Source Link

Document

Creates a new SettableFuture that can be completed or cancelled by a later method call.

Usage

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);
}