net.tomp2p.futures
Class FutureDHT

java.lang.Object
  extended by net.tomp2p.futures.BaseFutureImpl
      extended by net.tomp2p.futures.FutureDHT
All Implemented Interfaces:
BaseFuture, Cancellable

public class FutureDHT
extends BaseFutureImpl


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
FutureDHT()
           
FutureDHT(int min, EvaluatingSchemeDHT evaluationScheme, FutureCreate<FutureDHT> futureCreate, FutureRouting futureRouting)
           
 
Method Summary
 void addPending(FutureResponse futureResponse)
           
 void cancel()
           
 void created(FutureDHT futureDHT)
           
 Object getChannelBuffer()
           
 Map<Number160,Data> getData()
           
 FutureCreate<FutureDHT> getFutureCreate()
           
 FutureRouting getFutureRouting()
          Returns the future object that was used for the routing.
 Collection<Number160> getKeys()
           
 Object getObject()
           
 Map<PeerAddress,Map<Number160,Data>> getRawData()
           
 Map<PeerAddress,org.jboss.netty.buffer.ChannelBuffer> getRawDirectData1()
           
 Map<PeerAddress,Object> getRawDirectData2()
           
 Map<PeerAddress,Collection<Number160>> getRawKeys()
           
 FutureForkJoin<FutureResponse> getRunningFutures()
          Returns back those futures that are still running.
 boolean isMinReached()
           
 void setData(Map<PeerAddress,Map<Number160,Data>> rawData)
           
 void setDirectData1(Map<PeerAddress,org.jboss.netty.buffer.ChannelBuffer> rawChannels)
           
 void setDirectData2(Map<PeerAddress,Object> rawObjects)
           
 void setRemovedKeys(Map<PeerAddress,Collection<Number160>> rawKeys)
           
 void setScheduledFuture(ScheduledFuture<?> scheduledFuture, List<ScheduledFuture<?>> scheduledFutures)
           
 void setStoredKeys(Map<PeerAddress,Collection<Number160>> rawKeys, boolean ifAbsent)
           
 
Methods inherited from class net.tomp2p.futures.BaseFutureImpl
addCancellation, addListener, await, await, awaitUninterruptibly, awaitUninterruptibly, getFailedReason, getType, isCompleted, isFailed, isSuccess, notifyListerenrs, removeCancellation, removeListener, setCompletedAndNotify, setFailed
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FutureDHT

public FutureDHT()

FutureDHT

public FutureDHT(int min,
                 EvaluatingSchemeDHT evaluationScheme,
                 FutureCreate<FutureDHT> futureCreate,
                 FutureRouting futureRouting)
Method Detail

created

public void created(FutureDHT futureDHT)

setRemovedKeys

public void setRemovedKeys(Map<PeerAddress,Collection<Number160>> rawKeys)

setStoredKeys

public void setStoredKeys(Map<PeerAddress,Collection<Number160>> rawKeys,
                          boolean ifAbsent)

setData

public void setData(Map<PeerAddress,Map<Number160,Data>> rawData)

getRawKeys

public Map<PeerAddress,Collection<Number160>> getRawKeys()

getKeys

public Collection<Number160> getKeys()

getRawData

public Map<PeerAddress,Map<Number160,Data>> getRawData()

getData

public Map<Number160,Data> getData()

isMinReached

public boolean isMinReached()

setDirectData1

public void setDirectData1(Map<PeerAddress,org.jboss.netty.buffer.ChannelBuffer> rawChannels)

getRawDirectData1

public Map<PeerAddress,org.jboss.netty.buffer.ChannelBuffer> getRawDirectData1()

setDirectData2

public void setDirectData2(Map<PeerAddress,Object> rawObjects)

getRawDirectData2

public Map<PeerAddress,Object> getRawDirectData2()

getFutureCreate

public FutureCreate<FutureDHT> getFutureCreate()

getFutureRouting

public FutureRouting getFutureRouting()
Returns the future object that was used for the routing. Before the FutureDHT is used, FutureRouting has to be completed successfully.

Returns:
The future object during the previous routing, or null if routing failed completely.

setScheduledFuture

public void setScheduledFuture(ScheduledFuture<?> scheduledFuture,
                               List<ScheduledFuture<?>> scheduledFutures)

cancel

public void cancel()
Specified by:
cancel in interface Cancellable
Overrides:
cancel in class BaseFutureImpl

getObject

public Object getObject()

getChannelBuffer

public Object getChannelBuffer()

addPending

public void addPending(FutureResponse futureResponse)

getRunningFutures

public FutureForkJoin<FutureResponse> getRunningFutures()
Returns back those futures that are still running. If 6 storage futures are started at the same time and 5 of them finish, and we specified that we are fine if 5 finishes, then futureDHT returns success. However, the future that may still be running is the one that stores the content to the closest peer. For testing this is not acceptable, thus after waiting for futureDHT, one needs to wait for the running futures as well.

Returns:
A future that finishes if all running futures are finished.


Copyright © 2011. All Rights Reserved.