net.tomp2p.futures
Class FutureTracker

java.lang.Object
  extended by net.tomp2p.futures.BaseFutureImpl<FutureTracker>
      extended by net.tomp2p.futures.FutureTracker
All Implemented Interfaces:
BaseFuture, Cancellable, FutureCleanup

public class FutureTracker
extends BaseFutureImpl<FutureTracker>
implements FutureCleanup

This class holds the object for future results from the tracker get() and add(). FutureTracker can fail, if the search did not return any results.

Author:
Thomas Bocek

Nested Class Summary
 
Nested classes/interfaces inherited from interface net.tomp2p.futures.BaseFuture
BaseFuture.FutureType
 
Field Summary
 
Fields inherited from class net.tomp2p.futures.BaseFutureImpl
completed, lock, reason, type
 
Constructor Summary
FutureTracker()
           
FutureTracker(EvaluatingSchemeTracker evaluatingSchemeTracker, Set<Number160> knownPeers)
          Create a future object for retrieving.
FutureTracker(FutureCreate<BaseFuture> futureCreate)
          Create a future object for storing
 
Method Summary
 void addCleanup(Cancellable cancellable)
          Call to add cleanup classes for the future e.g.
 Set<PeerAddress> getDirectTrackers()
           
 Set<Number160> getKnownPeers()
           
 Set<PeerAddress> getPeersOnTracker()
           
 Set<PeerAddress> getPotentialTrackers()
           
 Map<PeerAddress,Collection<TrackerData>> getRawPeersOnTracker()
           
 Collection<TrackerData> getTrackers()
          Evaluates the data from the trackers.
 void repeated(BaseFuture future)
          Called if a future is created based on this future.
 void setTrackers(Set<PeerAddress> potentialTrackers, Set<PeerAddress> directTrackers, Map<PeerAddress,Collection<TrackerData>> peersOnTracker)
          Set the result of the tracker process.
 void shutdown()
           
 
Methods inherited from class net.tomp2p.futures.BaseFutureImpl
addCancellation, addListener, addListener, await, await, awaitListeners, awaitUninterruptibly, awaitUninterruptibly, cancel, getFailedReason, getType, isCompleted, isFailed, isSuccess, notifyListerenrs, removeListener, self, setCompletedAndNotify, setFailed, setFailed, setFailed, setFailed, setFailed
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FutureTracker

public FutureTracker()

FutureTracker

public FutureTracker(FutureCreate<BaseFuture> futureCreate)
Create a future object for storing

Parameters:
futureCreate - Keeps track of futures that are based on this future

FutureTracker

public FutureTracker(EvaluatingSchemeTracker evaluatingSchemeTracker,
                     Set<Number160> knownPeers)
Create a future object for retrieving.

Parameters:
evaluatingSchemeTracker - Since we receive results from multiple peers, we need to summarize them
knownPeers - A set of know peers that we don't want in the result set.
Method Detail

repeated

public void repeated(BaseFuture future)
Called if a future is created based on this future.

Parameters:
future - The newly created future

setTrackers

public void setTrackers(Set<PeerAddress> potentialTrackers,
                        Set<PeerAddress> directTrackers,
                        Map<PeerAddress,Collection<TrackerData>> peersOnTracker)
Set the result of the tracker process.

Parameters:
potentialTrackers - The trackers that are close to the key, also containing the direct trackers.
directTrackers - Those peers that are close and reported to have the key.
peersOnTracker - The data from the trackers.

getPotentialTrackers

public Set<PeerAddress> getPotentialTrackers()
Returns:
The trackers that are close to the key, also containing the direct trackers.

getDirectTrackers

public Set<PeerAddress> getDirectTrackers()
Returns:
Those peers that are close and reported to have the key.

getRawPeersOnTracker

public Map<PeerAddress,Collection<TrackerData>> getRawPeersOnTracker()
Returns:
the raw data, which means all the data the trackers reported.

getPeersOnTracker

public Set<PeerAddress> getPeersOnTracker()
Returns:
The peer address that send back data.

getKnownPeers

public Set<Number160> getKnownPeers()
Returns:
The list of peers which we already have in our result set.

getTrackers

public Collection<TrackerData> getTrackers()
Evaluates the data from the trackers. Since we receive multiple results, we evaluate them before we give the data to the user. If the user wants to see the raw data, use getRawPeersOnTracker().

Returns:
The data from the trackers.

addCleanup

public void addCleanup(Cancellable cancellable)
Description copied from interface: FutureCleanup
Call to add cleanup classes for the future e.g. to stop creating more scheduled futures.

Specified by:
addCleanup in interface FutureCleanup
Parameters:
cancellable - The cleanup classes

shutdown

public void shutdown()


Copyright © 2013. All Rights Reserved.