Package net.tomp2p.futures

Examples of net.tomp2p.futures.FutureTask


     */
    public FutureTask submit(final Number160 locationKey, final Map<Number160, Data> dataMap, final Worker worker,
            final RoutingConfiguration routingConfiguration, final RequestP2PConfiguration requestP2PConfiguration,
            final FutureChannelCreator futureChannelCreator, final boolean signMessage, final boolean isManualCleanup,
            final ConnectionReservation connectionReservation) {
        final FutureTask futureTask = new FutureTask();
        futureChannelCreator.addListener(new BaseFutureAdapter<FutureChannelCreator>() {
            @Override
            public void operationComplete(FutureChannelCreator future) throws Exception {
                if (future.isSuccess()) {
                    final ChannelCreator channelCreator = future.getChannelCreator();
                    // routing, find close peers
                    final FutureRouting futureRouting = createRouting(locationKey, null, null, routingConfiguration,
                            requestP2PConfiguration, Type.REQUEST_4, channelCreator);
                    futureRouting.addListener(new BaseFutureAdapter<FutureRouting>() {
                        @Override
                        public void operationComplete(FutureRouting future) throws Exception {
                            if (futureRouting.isSuccess()) {
                                // direct hits mean that there
                                // is a task scheduled
                                SortedMap<PeerAddress, DigestInfo> map = future.getDirectHitsDigest();
                                // potential hits means that no
                                // task is scheduled
                                NavigableSet<Pair> queue = findBest(map, future.getPotentialHits(), locationKey);
                                parallelRequests(futureTask, queue, requestP2PConfiguration, channelCreator,
                                        locationKey, dataMap, worker, requestP2PConfiguration.isForceUPD(), signMessage);
                            } else {
                                futureTask.setFailed(futureRouting);
                            }
                        }
                    });
                }
                if (!isManualCleanup) {
                    Utils.addReleaseListenerAll(futureTask, connectionReservation, future.getChannelCreator());
                } else {
                    futureTask.setFailed(future);
                }
            }
        });
        return futureTask;
    }
View Full Code Here


            Peer[] peers = Utils2.createNodes(200, rnd, 4001);
            master = peers[0];
            Utils2.perfectRouting(peers);
            // do testing
            Number160 locationKey = new Number160(rnd);
            FutureTask ft = peers[12].submit(locationKey, new Worker2())
                    .setRequestP2PConfiguration(new RequestP2PConfiguration(1, 0, 0)).start();
            ft.awaitUninterruptibly();
            Assert.assertEquals(true, ft.isSuccess());
            Assert.assertEquals(1, ft.getRawDataMap().size());
        } finally {
            System.out.println("done");
            master.halt();
        }
    }
View Full Code Here

            Peer[] peers = Utils2.createNodes(200, rnd, 4001);
            master = peers[0];
            Utils2.perfectRouting(peers);
            // do testing
            Number160 locationKey = new Number160(rnd);
            FutureTask ft = peers[12].submit(locationKey, new Worker2())
                    .setRequestP2PConfiguration(new RequestP2PConfiguration(2, 0, 0)).start();
            ft.awaitUninterruptibly();
            Assert.assertEquals(true, ft.isSuccess());
            Assert.assertEquals(2, ft.getRawDataMap().size());
        } finally {
            System.out.println("done");
            master.halt();
        }
    }
View Full Code Here

TOP

Related Classes of net.tomp2p.futures.FutureTask

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.