📄 trtrackerscraperimpl.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: TRTrackerScraperImpl.java
package org.gudy.azureus2.core3.tracker.client.impl;
import java.net.URL;
import org.gudy.azureus2.core3.torrent.TOTorrent;
import org.gudy.azureus2.core3.tracker.client.*;
import org.gudy.azureus2.core3.tracker.client.impl.bt.TRTrackerBTScraperImpl;
import org.gudy.azureus2.core3.tracker.client.impl.dht.TRTrackerDHTScraperImpl;
import org.gudy.azureus2.core3.util.*;
import org.gudy.azureus2.plugins.download.DownloadScrapeResult;
public class TRTrackerScraperImpl
implements TRTrackerScraper
{
private static TRTrackerScraperImpl singleton;
private static AEMonitor class_mon = new AEMonitor("TRTrackerScraper");
private TRTrackerBTScraperImpl bt_scraper;
private TRTrackerDHTScraperImpl dht_scraper;
private TRTrackerScraperClientResolver client_resolver;
private static final int LDT_SCRAPE_RECEIVED = 1;
private ListenerManager listeners;
public static TRTrackerScraperImpl create()
{
TRTrackerScraperImpl trtrackerscraperimpl;
class_mon.enter();
if (singleton == null)
singleton = new TRTrackerScraperImpl();
trtrackerscraperimpl = singleton;
class_mon.exit();
return trtrackerscraperimpl;
Exception exception;
exception;
class_mon.exit();
throw exception;
}
protected TRTrackerScraperImpl()
{
listeners = ListenerManager.createManager("TrackerScraper:ListenDispatcher", new ListenerManagerDispatcher() {
final TRTrackerScraperImpl this$0;
public void dispatch(Object _listener, int type, Object value)
{
TRTrackerScraperListener listener = (TRTrackerScraperListener)_listener;
listener.scrapeReceived((TRTrackerScraperResponse)value);
}
{
this$0 = TRTrackerScraperImpl.this;
super();
}
});
bt_scraper = TRTrackerBTScraperImpl.create(this);
dht_scraper = TRTrackerDHTScraperImpl.create(this);
}
public TRTrackerScraperResponse scrape(TOTorrent torrent)
{
return scrape(torrent, false);
}
public TRTrackerScraperResponse scrape(TOTorrent torrent, URL target_url)
{
return scrape(torrent, target_url, false);
}
public TRTrackerScraperResponse scrape(TOTorrent torrent, boolean force)
{
return scrape(torrent, null, force);
}
public void setScrape(TOTorrent torrent, URL url, DownloadScrapeResult result)
{
if (torrent != null)
if (TorrentUtils.isDecentralised(torrent))
dht_scraper.setScrape(torrent, url, result);
else
bt_scraper.setScrape(torrent, url, result);
}
public TRTrackerScraperResponse scrape(TOTorrent torrent, URL target_url, boolean force)
{
if (torrent == null)
return null;
if (TorrentUtils.isDecentralised(torrent))
return dht_scraper.scrape(torrent, target_url, force);
else
return bt_scraper.scrape(torrent, target_url, force);
}
public TRTrackerScraperResponse scrape(TRTrackerAnnouncer tracker_client)
{
TOTorrent torrent = tracker_client.getTorrent();
if (TorrentUtils.isDecentralised(torrent))
return dht_scraper.scrape(tracker_client);
else
return bt_scraper.scrape(tracker_client);
}
public void remove(TOTorrent torrent)
{
if (TorrentUtils.isDecentralised(torrent))
dht_scraper.remove(torrent);
else
bt_scraper.remove(torrent);
}
public void scrapeReceived(TRTrackerScraperResponse response)
{
listeners.dispatch(1, response);
}
public void setClientResolver(TRTrackerScraperClientResolver resolver)
{
client_resolver = resolver;
}
public boolean isTorrentDownloading(HashWrapper hash)
{
if (client_resolver == null)
{
return false;
} else
{
int state = client_resolver.getStatus(hash);
return state == 2;
}
}
public boolean isTorrentRunning(HashWrapper hash)
{
if (client_resolver == null)
{
return false;
} else
{
int state = client_resolver.getStatus(hash);
return state == 2 || state == 3;
}
}
public boolean isNetworkEnabled(HashWrapper hash, URL url)
{
if (client_resolver == null)
return false;
else
return client_resolver.isNetworkEnabled(hash, url);
}
public Object[] getExtensions(HashWrapper hash)
{
if (client_resolver == null)
return null;
else
return client_resolver.getExtensions(hash);
}
public boolean redirectTrackerUrl(HashWrapper hash, URL old_url, URL new_url)
{
return client_resolver.redirectTrackerUrl(hash, old_url, new_url);
}
public void addListener(TRTrackerScraperListener l)
{
listeners.addListener(l);
}
public void removeListener(TRTrackerScraperListener l)
{
listeners.removeListener(l);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -