📄 trackerwchelper.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: TrackerWCHelper.java
package org.gudy.azureus2.pluginsimpl.local.tracker;
import java.io.*;
import java.net.InetSocketAddress;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.gudy.azureus2.core3.tracker.host.TRHostAuthenticationListener;
import org.gudy.azureus2.core3.tracker.server.TRTrackerServerAuthenticationListener;
import org.gudy.azureus2.core3.util.AEMonitor;
import org.gudy.azureus2.core3.util.AsyncController;
import org.gudy.azureus2.plugins.PluginInterface;
import org.gudy.azureus2.plugins.tracker.Tracker;
import org.gudy.azureus2.plugins.tracker.web.TrackerWebContext;
import org.gudy.azureus2.plugins.tracker.web.TrackerWebPageGenerator;
import org.gudy.azureus2.pluginsimpl.local.utils.UtilitiesImpl;
// Referenced classes of package org.gudy.azureus2.pluginsimpl.local.tracker:
// TrackerWebPageRequestImpl, TrackerWebPageResponseImpl
public abstract class TrackerWCHelper
implements TrackerWebContext, TRHostAuthenticationListener, TRTrackerServerAuthenticationListener
{
private PluginInterface plugin_interface;
private Tracker tracker;
private List generators;
protected AEMonitor this_mon;
protected TrackerWCHelper()
{
generators = new ArrayList();
this_mon = new AEMonitor("TrackerWCHelper");
plugin_interface = UtilitiesImpl.getPluginThreadContext();
}
protected void setTracker(Tracker _tracker)
{
tracker = _tracker;
}
public boolean handleExternalRequest(final InetSocketAddress _client_address, final String _user, final String _url, final URL _absolute_url, final String _header, final InputStream _is, final OutputStream _os,
final AsyncController _async)
throws IOException
{
return ((Boolean)UtilitiesImpl.callWithPluginThreadContext(plugin_interface, new org.gudy.azureus2.pluginsimpl.local.utils.UtilitiesImpl.runnableWithReturnAndException() {
final InetSocketAddress val$_client_address;
final String val$_user;
final String val$_url;
final URL val$_absolute_url;
final String val$_header;
final InputStream val$_is;
final OutputStream val$_os;
final AsyncController val$_async;
final TrackerWCHelper this$0;
public Boolean run()
throws IOException
{
TrackerWebPageRequestImpl request;
TrackerWebPageResponseImpl reply;
int i;
request = new TrackerWebPageRequestImpl(tracker, TrackerWCHelper.this, _client_address, _user, _url, _absolute_url, _header, _is);
reply = new TrackerWebPageResponseImpl(_os, request, _async);
i = 0;
_L2:
if (i >= generators.size())
break; /* Loop/switch isn't completed */
this_mon.enter();
if (i >= generators.size())
{
this_mon.exit();
break; /* Loop/switch isn't completed */
}
TrackerWebPageGenerator generator = (TrackerWebPageGenerator)generators.get(i);
this_mon.exit();
break MISSING_BLOCK_LABEL_163;
Exception exception;
exception;
this_mon.exit();
throw exception;
if (generator.generate(request, reply))
{
reply.complete();
return Boolean.valueOf(true);
}
i++;
if (true) goto _L2; else goto _L1
_L1:
return Boolean.valueOf(false);
}
public volatile Object run()
throws Exception
{
return run();
}
{
this$0 = TrackerWCHelper.this;
_client_address = inetsocketaddress;
_user = s;
_url = s1;
_absolute_url = url;
_header = s2;
_is = inputstream;
_os = outputstream;
_async = asynccontroller;
super();
}
})).booleanValue();
}
public TrackerWebPageGenerator[] getPageGenerators()
{
TrackerWebPageGenerator res[] = new TrackerWebPageGenerator[generators.size()];
generators.toArray(res);
return res;
}
public void addPageGenerator(TrackerWebPageGenerator generator)
{
this_mon.enter();
generators.add(generator);
this_mon.exit();
break MISSING_BLOCK_LABEL_38;
Exception exception;
exception;
this_mon.exit();
throw exception;
}
public void removePageGenerator(TrackerWebPageGenerator generator)
{
this_mon.enter();
generators.remove(generator);
this_mon.exit();
break MISSING_BLOCK_LABEL_38;
Exception exception;
exception;
this_mon.exit();
throw exception;
}
public void destroy()
{
generators.clear();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -