Class TRTrackerAnnouncerImpl
- java.lang.Object
-
- com.biglybt.core.tracker.client.impl.TRTrackerAnnouncerImpl
-
- All Implemented Interfaces:
TRTrackerAnnouncer
- Direct Known Subclasses:
TRTrackerAnnouncerMuxer
public abstract class TRTrackerAnnouncerImpl extends java.lang.Object implements TRTrackerAnnouncer
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
TRTrackerAnnouncerImpl.Helper
-
Field Summary
Fields Modifier and Type Field Description private int
cache_peers_used
private static java.lang.String
chars
private static int
key_id_length
private static int
LDT_TRACKER_RESPONSE
private static int
LDT_URL_CHANGED
private static int
LDT_URL_REFRESH
protected ListenerManager<TRTrackerAnnouncerListener>
listeners
static LogIDs
LOGID
private byte[]
peer_id
private long
session_id
private static java.util.concurrent.atomic.AtomicLong
session_id_next
private TOTorrent
torrent
private java.lang.String
tracker_key
(package private) java.util.Map
tracker_peer_cache
private AEMonitor
tracker_peer_cache_mon
private int
udp_key
-
Fields inherited from interface com.biglybt.core.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
Constructors Modifier Constructor Description protected
TRTrackerAnnouncerImpl(TOTorrent _torrent)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addListener(TRTrackerAnnouncerListener l)
protected void
addToTrackerCache(TRTrackerAnnouncerResponsePeerImpl[] peers)
private static java.lang.String
createKeyID()
protected java.util.Map
exportTrackerCache()
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, TRTrackerAnnouncerRequest request, 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 presentvoid
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 com.biglybt.core.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
private static final int LDT_TRACKER_RESPONSE
- See Also:
- Constant Field Values
-
LDT_URL_CHANGED
private static final int LDT_URL_CHANGED
- See Also:
- Constant Field Values
-
LDT_URL_REFRESH
private static final int LDT_URL_REFRESH
- See Also:
- Constant Field Values
-
chars
private static final java.lang.String chars
- See Also:
- Constant Field Values
-
key_id_length
private static final int key_id_length
- See Also:
- Constant Field Values
-
session_id_next
private static java.util.concurrent.atomic.AtomicLong session_id_next
-
listeners
protected final ListenerManager<TRTrackerAnnouncerListener> listeners
-
tracker_peer_cache
final java.util.Map tracker_peer_cache
-
tracker_peer_cache_mon
private final AEMonitor tracker_peer_cache_mon
-
cache_peers_used
private int cache_peers_used
-
torrent
private final TOTorrent torrent
-
peer_id
private final byte[] peer_id
-
session_id
private final long session_id
-
tracker_key
private final java.lang.String tracker_key
-
udp_key
private final int udp_key
-
-
Constructor Detail
-
TRTrackerAnnouncerImpl
protected TRTrackerAnnouncerImpl(TOTorrent _torrent) throws TRTrackerAnnouncerException
- Throws:
TRTrackerAnnouncerException
-
-
Method Detail
-
createKeyID
private static java.lang.String createKeyID()
-
getTorrent
public TOTorrent getTorrent()
- Specified by:
getTorrent
in interfaceTRTrackerAnnouncer
-
getHelper
public TRTrackerAnnouncerImpl.Helper getHelper()
-
getPeerId
public byte[] getPeerId()
- Specified by:
getPeerId
in interfaceTRTrackerAnnouncer
-
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 interfaceTRTrackerAnnouncer
- 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 interfaceTRTrackerAnnouncer
-
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 interfaceTRTrackerAnnouncer
-
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 interfaceTRTrackerAnnouncer
-
informResponse
protected void informResponse(TRTrackerAnnouncerHelper helper, TRTrackerAnnouncerRequest request, TRTrackerAnnouncerResponse response)
-
informURLRefresh
protected void informURLRefresh()
-
addListener
public void addListener(TRTrackerAnnouncerListener l)
- Specified by:
addListener
in interfaceTRTrackerAnnouncer
-
removeListener
public void removeListener(TRTrackerAnnouncerListener l)
- Specified by:
removeListener
in interfaceTRTrackerAnnouncer
-
-