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

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

Introduction

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

Prototype

public static <V> ListenableFutureTask<V> create(Callable<V> callable) 

Source Link

Document

Creates a ListenableFutureTask that will upon running, execute the given Callable .

Usage

From source file:org.trinity.shellplugin.widget.impl.view.qt.StyledViewsPlugin.java

@Override
protected void startUp() throws Exception {
    final ListenableFutureTask<Void> futureTask = ListenableFutureTask.create(new Callable<Void>() {
        @Override//from   w  ww.ja  va 2s.  c  om
        public Void call() {
            try {
                loadStylelSheet();
            } catch (final IOException e) {
                Throwables.propagate(e);
            }
            return null;
        }
    });
    QApplication.invokeLater(futureTask);
}

From source file:org.robotninjas.util.command.CommandBuilder.java

public <V> AsyncCommand<V> build(final Callable<V> callable, final FutureFallback<V> fallback) {
    final Function<Callable<V>, Callable<V>> f = callableBuilder.build();
    return new AsyncCommand<V>() {
        @Override//from w  w  w. j ava  2s .co m
        public ListenableFuture<V> execute() {
            Callable<V> c = f.apply(callable);
            ListenableFutureTask<V> t = ListenableFutureTask.create(c);
            executor.execute(t);
            return withFallback(t, fallback);
        }
    };
}

From source file:kis.daggerSample.AsyncPiko.java

private <T> ListenableFuture<T> task(String name, Supplier<T> supplier, long millis) {
    ListenableFutureTask<T> task = ListenableFutureTask.create(() -> {
        System.out.println("start " + name);

        Brave brave = new Brave.Builder(name + " task").reporter(reporter).build();
        ServerTracer serverTracer = brave.serverTracer();
        serverTracer.setStateCurrentTrace(spanId, "ppap span");
        //serverTracer.setServerReceived();
        ClientTracer clientTracer = brave.clientTracer();
        clientTracer.startNewSpan(name);
        clientTracer.setClientSent();/*  w w  w . ja  v  a2  s .  c om*/
        try {
            Thread.sleep(millis);
        } catch (InterruptedException ignored) {
        }
        T result = supplier.get();
        clientTracer.setClientReceived();
        //serverTracer.setServerSend();
        System.out.println("finish " + name);

        return result;
    });
    task.run();
    return task;
}

From source file:org.trinity.foundation.render.qt.impl.binding.view.delegate.ChildViewDelegateImpl.java

@SuppressWarnings("unchecked")
@Override/*  w w  w .  j  av a2 s. c o m*/
public <T> ListenableFuture<T> newView(final Object parentView, final Class<T> childViewType,
        final int position) {
    checkArgument(parentView instanceof QWidget,
            format("Expected parent view should be of type %s", QWidget.class.getName()));
    checkArgument(QWidget.class.isAssignableFrom(childViewType),
            format("Expected child view should be of type %s", QWidget.class.getName()));

    final ListenableFutureTask<T> newViewTask = ListenableFutureTask.create(new Callable<T>() {
        @Override
        public T call() throws Exception {
            final QWidget parentViewInstance = (QWidget) parentView;

            final T childView = ChildViewDelegateImpl.this.injector.getInstance(childViewType);
            final QWidget childViewInstance = (QWidget) childView;
            childViewInstance.setParent(parentViewInstance);
            return (T) childViewInstance;
        }
    });

    QApplication.invokeLater(newViewTask);

    return newViewTask;
}

From source file:org.fcrepo.indexer.AsynchIndexer.java

@Override
public ListenableFuture<Result> remove(final URI identifier) throws IOException {
    LOGGER.debug("Received remove for identifier: {}", identifier);
    final ListenableFutureTask<Result> task = ListenableFutureTask.create(removeSynch(identifier));
    task.addListener(new Runnable() {
        @Override//w w w .  ja v a 2s.c  o  m
        public void run() {
            synchronized (this) {
                notifyAll();
            }
        }
    }, executorService());
    executorService().submit(task);
    return task;
}

From source file:com.afewmoreamps.util.PrefetchingInputStream.java

public PrefetchingInputStream(final FileChannel channel, final int prefetchSize, final int prefetchCount)
        throws IOException {
    buffers = new ByteBuffer[prefetchCount];
    for (int ii = 0; ii < prefetchCount; ii++) {
        buffers[ii] = ByteBuffer.allocateDirect(prefetchSize);
        availableBuffers.offer(buffers[ii]);
    }// w  w  w  .  j a va2s  .c  o  m

    int currentReadPosition = (int) channel.position();
    final long channelSize = channel.size();
    while (currentReadPosition != channelSize) {
        final int readStartingAt = currentReadPosition;
        final int limit = (int) Math.min(currentReadPosition + prefetchSize, channelSize);
        currentReadPosition += limit;
        readTasks.add(ListenableFutureTask.create(new Callable<ByteBuffer>() {
            @Override
            public ByteBuffer call() throws Exception {
                final ByteBuffer buffer = availableBuffers.take();
                buffer.clear();
                buffer.limit(limit);
                while (buffer.hasRemaining()) {
                    int read = channel.read(buffer, readStartingAt);
                    if (read == -1) {
                        throw new EOFException();
                    }
                }
                buffer.flip();
                return buffer;
            }
        }));
    }
    es.execute(new Runnable() {
        @Override
        public void run() {
            for (ListenableFutureTask<?> task : readTasks) {
                task.run();
                try {
                    try {
                        task.get();
                    } catch (InterruptedException e) {
                        return;
                    }
                } catch (ExecutionException e) {
                    if (e.getCause() instanceof InterruptedException) {
                        return;
                    }
                }
            }
        }
    });
    m_taskIterator = readTasks.iterator();
}

From source file:org.robotninjas.util.command.CommandBuilder.java

public <V> AsyncCommand<V> build(final Callable<V> callable) {
    final Function<Callable<V>, Callable<V>> f = callableBuilder.build();
    return new AsyncCommand<V>() {
        @Override/*from   w w  w .j a va2 s.co  m*/
        public ListenableFuture<V> execute() throws Exception {
            Callable<V> c = f.apply(callable);
            ListenableFutureTask<V> t = ListenableFutureTask.create(c);
            executor.execute(t);
            return t;
        }
    };
}

From source file:org.apache.phoenix.query.PhoenixStatsCacheLoader.java

@Override
public ListenableFuture<GuidePostsInfo> reload(final GuidePostsKey key, GuidePostsInfo prevGuidepostInfo) {
    if (statsLoader.needsLoad()) {
        // schedule asynchronous task
        ListenableFutureTask<GuidePostsInfo> task = ListenableFutureTask.create(new Callable<GuidePostsInfo>() {
            public GuidePostsInfo call() {
                try {
                    return statsLoader.loadStats(key, prevGuidepostInfo);
                } catch (Exception e) {
                    logger.warn("Unable to load stats from table: " + key.toString(), e);
                    return prevGuidepostInfo;
                }// w ww  .j  a va2 s .  c  om
            }
        });
        executor.execute(task);
        return task;
    } else {
        return Futures.immediateFuture(prevGuidepostInfo);
    }
}

From source file:org.apache.usergrid.persistence.index.impl.EsIndexCacheImpl.java

@Inject
public EsIndexCacheImpl(final EsProvider provider, final IndexFig indexFig) {

    this.refreshExecutors = MoreExecutors
            .listeningDecorator(Executors.newScheduledThreadPool(indexFig.getIndexCacheMaxWorkers()));

    this.provider = provider;

    aliasIndexCache = CacheBuilder.newBuilder().maximumSize(1000).refreshAfterWrite(5, TimeUnit.MINUTES)
            .build(new CacheLoader<String, String[]>() {
                @Override/*w  w  w  .jav a  2 s.  c o  m*/
                public ListenableFuture<String[]> reload(final String key, String[] oldValue) throws Exception {
                    ListenableFutureTask<String[]> task = ListenableFutureTask.create(new Callable<String[]>() {
                        public String[] call() {
                            return load(key);
                        }
                    });
                    refreshExecutors.execute(task);
                    return task;
                }

                @Override
                public String[] load(final String aliasName) {
                    return getIndexesFromEs(aliasName);
                }
            });
}

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 {/*  w  ww.j a v a  2  s  .com*/
        SettableFuture<QueryEngine> task = SettableFuture.create();
        task.set(oldValue);
        return task;
    }
}