org.gudy.azureus2.core3.tracker.client.impl
Class TRTrackerAnnouncerImpl

java.lang.Object
  extended by org.gudy.azureus2.core3.tracker.client.impl.TRTrackerAnnouncerImpl
All Implemented Interfaces:
TRTrackerAnnouncer
Direct Known Subclasses:
TRTrackerAnnouncerMuxer

public abstract class TRTrackerAnnouncerImpl
extends java.lang.Object
implements TRTrackerAnnouncer

Author:
parg

Nested Class Summary
static interface TRTrackerAnnouncerImpl.Helper
           
 
Field Summary
protected static int LDT_TRACKER_RESPONSE
           
protected static int LDT_URL_CHANGED
           
protected static int LDT_URL_REFRESH
           
protected  ListenerManager<TRTrackerAnnouncerListener> listeners
           
static LogIDs LOGID
           
 
Fields inherited from interface org.gudy.azureus2.core3.tracker.client.TRTrackerAnnouncer
AZ_TRACKER_VERSION_1, AZ_TRACKER_VERSION_2, AZ_TRACKER_VERSION_3, AZ_TRACKER_VERSION_CURRENT, DEFAULT_PEERS_TO_CACHE, REFRESH_MINIMUM_SECS, TS_COMPLETED, TS_DOWNLOADING, TS_INITIALISED, TS_STOPPED
 
Constructor Summary
protected TRTrackerAnnouncerImpl(TOTorrent _torrent)
           
 
Method Summary
 void addListener(TRTrackerAnnouncerListener l)
           
protected  void addToTrackerCache(TRTrackerAnnouncerResponsePeerImpl[] peers)
           
protected  java.util.Map exportTrackerCache()
           
static byte[] getAnonymousPeerId(java.lang.String my_ip, int my_port)
           
 TrackerPeerSource getCacheTrackerPeerSource()
           
 TRTrackerAnnouncerImpl.Helper getHelper()
           
protected abstract  int getPeerCacheLimit()
           
 byte[] getPeerId()
           
protected  TRTrackerAnnouncerResponsePeer[] getPeersFromCache(int num_want)
           
 TOTorrent getTorrent()
           
 java.util.Map getTrackerResponseCache()
          returns a Map containing "bencoded" entries representing a cache of tracker responses.
protected  int importTrackerCache(java.util.Map map)
           
protected  void informResponse(TRTrackerAnnouncerHelper helper, TRTrackerAnnouncerResponse response)
           
protected  void informURLRefresh()
           
static java.util.Map mergeResponseCache(java.util.Map map1, java.util.Map map2)
           
 void removeFromTrackerResponseCache(java.lang.String ip, int tcp_port)
          remove a specific entry from the cache if present
 void removeListener(TRTrackerAnnouncerListener l)
           
 void setTrackerResponseCache(java.util.Map map)
          sets the response cache.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.gudy.azureus2.core3.tracker.client.TRTrackerAnnouncer
clearIPOverride, complete, destroy, generateEvidence, getBestAnnouncer, getLastResponse, getLastUpdateTime, getStatus, getStatusString, getTimeUntilNextUpdate, getTrackerPeerSource, getTrackerURL, isManual, refreshListeners, resetTrackerUrl, setAnnounceDataProvider, setAnnounceResult, setIPOverride, setRefreshDelayOverrides, setTrackerURL, stop, update
 

Field Detail

LOGID

public static final LogIDs LOGID

LDT_TRACKER_RESPONSE

protected static final int LDT_TRACKER_RESPONSE
See Also:
Constant Field Values

LDT_URL_CHANGED

protected static final int LDT_URL_CHANGED
See Also:
Constant Field Values

LDT_URL_REFRESH

protected static final int LDT_URL_REFRESH
See Also:
Constant Field Values

listeners

protected final ListenerManager<TRTrackerAnnouncerListener> listeners
Constructor Detail

TRTrackerAnnouncerImpl

protected TRTrackerAnnouncerImpl(TOTorrent _torrent)
                          throws TRTrackerAnnouncerException
Throws:
TRTrackerAnnouncerException
Method Detail

getTorrent

public TOTorrent getTorrent()
Specified by:
getTorrent in interface TRTrackerAnnouncer

getHelper

public TRTrackerAnnouncerImpl.Helper getHelper()

getPeerId

public byte[] getPeerId()
Specified by:
getPeerId in interface TRTrackerAnnouncer

getAnonymousPeerId

public static byte[] getAnonymousPeerId(java.lang.String my_ip,
                                        int my_port)

getTrackerResponseCache

public java.util.Map getTrackerResponseCache()
Description copied from interface: TRTrackerAnnouncer
returns a Map containing "bencoded" entries representing a cache of tracker responses.

Specified by:
getTrackerResponseCache in interface TRTrackerAnnouncer
Returns:

setTrackerResponseCache

public void setTrackerResponseCache(java.util.Map map)
Description copied from interface: TRTrackerAnnouncer
sets the response cache. This may be used by the tracker client to return peer details when the tracker is offline

Specified by:
setTrackerResponseCache in interface TRTrackerAnnouncer

exportTrackerCache

protected java.util.Map exportTrackerCache()

importTrackerCache

protected int importTrackerCache(java.util.Map map)

addToTrackerCache

protected void addToTrackerCache(TRTrackerAnnouncerResponsePeerImpl[] peers)

removeFromTrackerResponseCache

public void removeFromTrackerResponseCache(java.lang.String ip,
                                           int tcp_port)
Description copied from interface: TRTrackerAnnouncer
remove a specific entry from the cache if present

Specified by:
removeFromTrackerResponseCache in interface TRTrackerAnnouncer

mergeResponseCache

public static java.util.Map mergeResponseCache(java.util.Map map1,
                                               java.util.Map map2)

getPeerCacheLimit

protected abstract int getPeerCacheLimit()

getPeersFromCache

protected TRTrackerAnnouncerResponsePeer[] getPeersFromCache(int num_want)

getCacheTrackerPeerSource

public TrackerPeerSource getCacheTrackerPeerSource()
Specified by:
getCacheTrackerPeerSource in interface TRTrackerAnnouncer

informResponse

protected void informResponse(TRTrackerAnnouncerHelper helper,
                              TRTrackerAnnouncerResponse response)

informURLRefresh

protected void informURLRefresh()

addListener

public void addListener(TRTrackerAnnouncerListener l)
Specified by:
addListener in interface TRTrackerAnnouncer

removeListener

public void removeListener(TRTrackerAnnouncerListener l)
Specified by:
removeListener in interface TRTrackerAnnouncer