Package net.tomp2p.futures

Examples of net.tomp2p.futures.FutureTracker


            Number160 trackerID = new Number160(rnd);
            System.err.println("about to store " + trackerID);
            // FutureTracker ft = nodes[300].addToTracker(trackerID, "test",
            // null, rc, tc);
            PeerTracker closest = findClosest(nodes, trackerID);
            FutureTracker ft = nodes[300].addTracker(trackerID).domainKey(Number160.createHash("test"))
                    .routingConfiguration(rc).trackerConfiguration(tc).start();
            ft.awaitUninterruptibly();
            Assert.assertEquals(true, ft.isSuccess());
            Thread.sleep(2000);
            tc = new TrackerConfiguration(1, 1, 0, 1);
            ft = nodes[301].getTracker(trackerID).domainKey(Number160.createHash("test"))
                    .routingConfiguration(rc).trackerConfiguration(tc)
                    .evaluatingScheme(new VotingSchemeTracker()).start();
            ft.awaitUninterruptibly();
            System.err.println(ft.failedReason());
            Assert.assertEquals(true, ft.isSuccess());
            Assert.assertEquals(1, ft.rawPeersOnTracker().size());
        } finally {
            if (master != null) {
                master.peer().shutdown().await();
            }
        }
View Full Code Here


            }
            RoutingConfiguration rc = new RoutingConfiguration(1, 1, 1);
            TrackerConfiguration tc = new TrackerConfiguration(1, 1, 2, 0, 1000, 2);
            Number160 trackerID = new Number160(rnd);
            System.err.println("about to store " + trackerID);
            FutureTracker ft = nodes[300].addTracker(trackerID).domainKey(Number160.createHash("test"))
                    .routingConfiguration(rc).trackerConfiguration(tc).start();
            ft.awaitUninterruptibly();
            Assert.assertEquals(true, ft.isSuccess());
            //myself and an other
            Assert.assertEquals(2, ft.directTrackers().size());
            tc = new TrackerConfiguration(1, 1, 1, 3, 1000, 2);
            ft = nodes[301].getTracker(trackerID).domainKey(Number160.createHash("test"))
                    .routingConfiguration(rc).trackerConfiguration(tc)
                    .evaluatingScheme(new VotingSchemeTracker()).start();
            ft.awaitUninterruptibly();
            System.err.println(ft.failedReason());
            Assert.assertEquals(true, ft.isSuccess());
            Assert.assertEquals(1, ft.rawPeersOnTracker().size());
            Assert.assertEquals(1, ft.directTrackers().size());
            Assert.assertEquals(2, ft.potentialTrackers().size());

        } finally {
            if (master != null) {
                master.peer().shutdown().await();
            }
View Full Code Here

            }
            RoutingConfiguration rc = new RoutingConfiguration(1, 1, 1);
            TrackerConfiguration tc = new TrackerConfiguration(1, 1, 2, 0, 1000, 2);
            Number160 trackerID = new Number160(rnd);
            System.err.println("about to store " + trackerID);
            FutureTracker ft = nodes[300].addTracker(trackerID).domainKey(Number160.createHash("test"))
                    .routingConfiguration(rc).trackerConfiguration(tc).start();
            ft.awaitUninterruptibly();
            Assert.assertEquals(true, ft.isSuccess());
            Assert.assertEquals(2, ft.directTrackers().size());
            tc = new TrackerConfiguration(1, 1, 2, 3, 1000, 2);
            ft = nodes[301].getTracker(trackerID).domainKey(Number160.createHash("test"))
                    .routingConfiguration(rc).trackerConfiguration(tc)
                    .evaluatingScheme(new VotingSchemeTracker()).start();
            ft.awaitUninterruptibly();
            Assert.assertEquals(true, ft.isSuccess());
            Assert.assertEquals(2, ft.rawPeersOnTracker().size());
            Assert.assertEquals(1, ft.potentialTrackers().size());
            Assert.assertEquals(2, ft.directTrackers().size());

        } finally {
            if (master != null) {
                master.peer().shutdown().await();
            }
View Full Code Here

            }
            RoutingConfiguration rc = new RoutingConfiguration(1, 1, 1);
            TrackerConfiguration tc = new TrackerConfiguration(1, 1, 2, 0);
            Number160 trackerID = new Number160(rnd);
            System.err.println("about to store " + trackerID);
            FutureTracker ft = nodes[300].addTracker(trackerID).domainKey(Number160.createHash("test"))
                    .routingConfiguration(rc).trackerConfiguration(tc).start();
            System.err.println("add the peer to the tracker: " + nodes[300].peerAddress());
            ft.awaitUninterruptibly();
            ft = nodes[301].addTracker(trackerID).domainKey(Number160.createHash("test"))
                    .routingConfiguration(rc).trackerConfiguration(tc).start();
            System.err.println("add the peer to the tracker: " + nodes[301].peerAddress());
            ft.awaitUninterruptibly();
            ft = nodes[302].addTracker(trackerID).domainKey(Number160.createHash("test"))
                    .routingConfiguration(rc).trackerConfiguration(tc).start();
            System.err.println("add the peer to the tracker: " + nodes[302].peerAddress());
            ft.awaitUninterruptibly();
            Assert.assertEquals(true, ft.isSuccess());
            Assert.assertEquals(2, ft.directTrackers().size());
            tc = new TrackerConfiguration(1, 1, 2, 2);
            ft = nodes[299].getTracker(trackerID).domainKey(Number160.createHash("test"))
                    .routingConfiguration(rc).trackerConfiguration(tc)
                    .evaluatingScheme(new VotingSchemeTracker()).start();
            ft.awaitUninterruptibly();
            Assert.assertEquals(true, ft.isSuccess());
            // we return there 2 because we use bloomfilters to not return
            // already known peers
            Assert.assertEquals(2, ft.rawPeersOnTracker().size());
            // but here we expect 3 peers, since 3 peers are on the tracker
            Assert.assertEquals(3, ft.rawPeersOnTracker().values().iterator().next().size());
        } finally {
            if (master != null) {
                master.peer().shutdown().await();
            }
        }
View Full Code Here

            // 3 is good!
            TrackerConfiguration tc = new TrackerConfiguration(1, 1, 20, 0, 20, 2);
            Number160 trackerID = new Number160(rnd);
            Set<Number160> tmp = new HashSet<Number160>();
            for (int i = 0; i <= 300; i++) {
                FutureTracker ft = nodes[300 + i].addTracker(trackerID)
                        .domainKey(Number160.createHash("test")).routingConfiguration(rc)
                        .trackerConfiguration(tc).start();
                ft.awaitUninterruptibly();
                System.err.println("added " + nodes[300 + i].peerAddress().peerId() + " on "
                        + ft.directTrackers());
                tmp.add(nodes[300 + i].peerAddress().peerId());
                Assert.assertEquals(true, ft.isSuccess());
                // Assert.assertEquals(true, ft.getDirectTrackers().size() == 2
                // || ft.getDirectTrackers().size() == 3);
            }
            for (int i = 0; i <= 300; i++) {
                FutureTracker ft = nodes[600 - i].addTracker(trackerID)
                        .domainKey(Number160.createHash("test")).routingConfiguration(rc)
                        .trackerConfiguration(tc).start();
                ft.awaitUninterruptibly();
                System.err.println("added " + nodes[300 + i].peerAddress().peerId() + " on "
                        + ft.directTrackers());
                tmp.add(nodes[600 - i].peerAddress().peerId());
                Assert.assertEquals(true, ft.isSuccess());
                // Assert.assertEquals(true, ft.getDirectTrackers().size() == 2
                // || ft.getDirectTrackers().size() == 3);
            }
            tc = new TrackerConfiguration(1, 1, 30, 301, 0, 20);
            FutureTracker ft1 = nodes[299].getTracker(trackerID).domainKey(Number160.createHash("test"))
                    .routingConfiguration(rc).trackerConfiguration(tc)
                    .evaluatingScheme(new VotingSchemeTracker()).start();
            ft1.awaitUninterruptibly();
            Assert.assertEquals(true, ft1.isSuccess());
            for (TrackerData pa : ft1.trackers()) {
                for (PeerStatistic pas : pa.peerAddresses().keySet()) {
                    System.err.println("found on DHT1: " + pas.peerAddress().peerId());
                    tmp.remove(pas.peerAddress().peerId());
                }
            }
            // ctg.setUseSecondaryTrackers(true);
            FutureTracker ft2 = nodes[299].getTracker(trackerID).domainKey(Number160.createHash("test"))
                    .routingConfiguration(rc).trackerConfiguration(tc)
                    .evaluatingScheme(new VotingSchemeTracker()).knownPeers(ft1.knownPeers())
                    .start();
            ft2.awaitUninterruptibly();
            System.err.println("Reason: " + ft2.failedReason());
            Assert.assertEquals(true, ft2.isSuccess());
            for (TrackerData pa : ft2.trackers()) {
                for (PeerStatistic pas : pa.peerAddresses().keySet()) {
                    if (tmp.remove(pas.peerAddress().peerId()))
                        System.err.println("found on DHT2: " + pas.peerAddress().peerId());
                }
            }
View Full Code Here

        }
        // add myself to my local tracker, since we use a mesh we are part of
        // the tracker mesh as well.
        peer.trackerStorage().put(new Number320(locationKey, domainKey), peer.peerAddress(), keyPair() == null? null: keyPair().getPublic(),
                        attachement);
        final FutureTracker futureTracker = peer.distributedTracker().add(this);

        return futureTracker;
    }
View Full Code Here

    this.stableRandom = new Number160(rnd);
    this.trackerStorage = trackerStorage;
  }

  public FutureTracker get(final GetTrackerBuilder builder) {
    final FutureTracker futureTracker = new FutureTracker(builder.evaluatingScheme(), builder.knownPeers());
    builder.futureChannelCreator().addListener(new BaseFutureAdapter<FutureChannelCreator>() {
      @Override
      public void operationComplete(final FutureChannelCreator futureChannelCreator2) throws Exception {
        if (futureChannelCreator2.isSuccess()) {
             
          TrackerData peers = trackerStorage.peers(new Number320(builder.locationKey(), builder
                  .domainKey()));
          NavigableSet<PeerAddress> queue = new TreeSet<PeerAddress>(PeerMap.createComparator(stableRandom));
          if(peers != null && peers.peerAddresses()!=null) {
            for (PeerStatistic peerAddress : peers.peerAddresses().keySet()) {
              queue.add(peerAddress.peerAddress());
            }
          }

          if (queue.size() > MIN_TRACKER_PEERS) {
            startLoop(builder, futureTracker, queue, futureChannelCreator2.channelCreator());
          }

          else {
           
            final FutureRouting futureRouting = createRouting(builder, Type.REQUEST_3,
                    futureChannelCreator2.channelCreator());

            futureRouting.addListener(new BaseFutureAdapter<FutureRouting>() {
              @Override
              public void operationComplete(FutureRouting future) throws Exception {
                if (futureRouting.isSuccess()) {
                  LOG.debug("found direct hits for tracker get: {}", futureRouting.directHits());
                  startLoop(builder, futureTracker, futureRouting.directHits(),
                          futureChannelCreator2.channelCreator());
                } else {
                  futureTracker.failed(futureRouting);
                }
              }
            });
          }
          Utils.addReleaseListener(futureChannelCreator2.channelCreator(), futureTracker);
        } else {
          futureTracker.failed(futureChannelCreator2);
        }
      }
    });
    return futureTracker;
  }
View Full Code Here

            });
  }

  public FutureTracker add(final AddTrackerBuilder builder) {

    final FutureTracker futureTracker = new FutureTracker();
    builder.futureChannelCreator().addListener(new BaseFutureAdapter<FutureChannelCreator>() {
      @Override
      public void operationComplete(final FutureChannelCreator futureChannelCreator2) throws Exception {
        if (futureChannelCreator2.isSuccess()) {

          final FutureRouting futureRouting = createRouting(builder, Type.REQUEST_1,
                  futureChannelCreator2.channelCreator());

          futureRouting.addListener(new BaseFutureAdapter<FutureRouting>() {
            @Override
            public void operationComplete(FutureRouting future) throws Exception {
              if (futureRouting.isSuccess()) {
                LOG.debug("found potential hits for tracker add: {}", futureRouting.potentialHits());
                loop(builder.locationKey(), builder.domainKey(), futureRouting.potentialHits(),
                        builder.trackerConfiguration(), futureTracker, false,
                        builder.knownPeers(), new Operation() {
                          @Override
                          public FutureResponse create(PeerAddress remotePeer, boolean primary) {
                            LOG.debug("tracker add (me={}): {} location={}",
                                    peerBean.serverPeerAddress(), remotePeer,
                                    builder.locationKey());
                            return trackerRPC.addToTracker(remotePeer, builder,
                                    futureChannelCreator2.channelCreator());
                          }
                        });
              } else {
                futureTracker.failed(futureRouting);
              }
            }
          });
          Utils.addReleaseListener(futureChannelCreator2.channelCreator(), futureTracker);
        } else {
          futureTracker.failed(futureChannelCreator2);
        }

      }
    });
    return futureTracker;
View Full Code Here

TOP

Related Classes of net.tomp2p.futures.FutureTracker

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.