⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connectionmanagerimpl.java

📁 java 文件下载器。可自定义
💻 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:   ConnectionManagerImpl.java

package org.gudy.azureus2.pluginsimpl.local.network;

import com.aelitis.azureus.core.AzureusCore;
import com.aelitis.azureus.core.networkmanager.ConnectionEndpoint;
import com.aelitis.azureus.core.networkmanager.NetworkManager;
import com.aelitis.azureus.core.networkmanager.ProtocolEndpoint;
import com.aelitis.azureus.core.networkmanager.Transport;
import com.aelitis.azureus.core.networkmanager.TransportEndpoint;
import com.aelitis.azureus.core.networkmanager.impl.TransportCipher;
import com.aelitis.azureus.core.networkmanager.impl.TransportHelperFilter;
import com.aelitis.azureus.core.networkmanager.impl.TransportHelperFilterStreamCipher;
import com.aelitis.azureus.core.networkmanager.impl.tcp.ProtocolEndpointTCP;
import com.aelitis.azureus.core.networkmanager.impl.tcp.TCPTransportHelper;
import com.aelitis.azureus.core.networkmanager.impl.tcp.TCPTransportImpl;
import com.aelitis.azureus.core.networkmanager.impl.udp.UDPNetworkManager;
import com.aelitis.azureus.core.networkmanager.impl.udp.UDPTransport;
import com.aelitis.azureus.core.networkmanager.impl.udp.UDPTransportHelper;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.security.spec.AlgorithmParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import org.gudy.azureus2.core3.global.GlobalManager;
import org.gudy.azureus2.plugins.messaging.MessageStreamDecoder;
import org.gudy.azureus2.plugins.messaging.MessageStreamEncoder;
import org.gudy.azureus2.plugins.network.Connection;
import org.gudy.azureus2.plugins.network.ConnectionManager;
import org.gudy.azureus2.plugins.network.TransportException;
import org.gudy.azureus2.plugins.network.TransportFilter;
import org.gudy.azureus2.pluginsimpl.local.messaging.MessageStreamDecoderAdapter;
import org.gudy.azureus2.pluginsimpl.local.messaging.MessageStreamEncoderAdapter;

// Referenced classes of package org.gudy.azureus2.pluginsimpl.local.network:
//			ConnectionImpl, TransportCipherImpl, TransportFilterImpl, TransportImpl

public class ConnectionManagerImpl
	implements ConnectionManager
{

	private static ConnectionManagerImpl instance;
	private AzureusCore azureus_core;

	public static synchronized ConnectionManagerImpl getSingleton(AzureusCore core)
	{
		if (instance == null)
			instance = new ConnectionManagerImpl(core);
		return instance;
	}

	private ConnectionManagerImpl(AzureusCore _core)
	{
		azureus_core = _core;
	}

	public Connection createConnection(InetSocketAddress remote_address, MessageStreamEncoder encoder, MessageStreamDecoder decoder)
	{
		ConnectionEndpoint connection_endpoint = new ConnectionEndpoint(remote_address);
		connection_endpoint.addProtocol(new ProtocolEndpointTCP(remote_address));
		com.aelitis.azureus.core.networkmanager.NetworkConnection core_conn = NetworkManager.getSingleton().createConnection(connection_endpoint, new MessageStreamEncoderAdapter(encoder), new MessageStreamDecoderAdapter(decoder), false, false, (byte[][])null);
		return new ConnectionImpl(core_conn, false);
	}

	public int getNATStatus()
	{
		return azureus_core.getGlobalManager().getNATStatus();
	}

	public org.gudy.azureus2.plugins.network.TransportCipher createTransportCipher(String algorithm, int mode, SecretKeySpec key_spec, AlgorithmParameterSpec params)
		throws TransportException
	{
		TransportCipher cipher = new TransportCipher(algorithm, mode, key_spec, params);
		return new TransportCipherImpl(cipher);
		Exception e;
		e;
		throw new TransportException(e);
	}

	public TransportFilter createTransportFilter(Connection connection, org.gudy.azureus2.plugins.network.TransportCipher read_cipher, org.gudy.azureus2.plugins.network.TransportCipher write_cipher)
		throws TransportException
	{
		org.gudy.azureus2.plugins.network.Transport transport = connection.getTransport();
		Transport core_transport;
		try
		{
			core_transport = ((TransportImpl)transport).coreTransport();
		}
		catch (IOException e)
		{
			throw new TransportException(e);
		}
		com.aelitis.azureus.core.networkmanager.impl.TransportHelper helper;
		if (core_transport instanceof TCPTransportImpl)
		{
			TransportHelperFilter hfilter = ((TCPTransportImpl)core_transport).getFilter();
			if (hfilter != null)
				helper = hfilter.getHelper();
			else
				helper = new TCPTransportHelper(((TCPTransportImpl)(TCPTransportImpl)core_transport).getSocketChannel());
		} else
		if (core_transport instanceof UDPTransport)
		{
			TransportHelperFilter hfilter = ((UDPTransport)core_transport).getFilter();
			if (hfilter != null)
			{
				helper = hfilter.getHelper();
			} else
			{
				helper = ((UDPTransport)core_transport).getFilter().getHelper();
				InetSocketAddress addr = core_transport.getTransportEndpoint().getProtocolEndpoint().getConnectionEndpoint().getNotionalAddress();
				if (!connection.isIncoming())
					try
					{
						helper = new UDPTransportHelper(UDPNetworkManager.getSingleton().getConnectionManager(), addr, (UDPTransport)core_transport);
					}
					catch (IOException ioe)
					{
						throw new TransportException(ioe);
					}
				else
					throw new TransportException((new StringBuilder()).append("udp incoming transport type not supported - ").append(core_transport).toString());
			}
		} else
		{
			throw new TransportException((new StringBuilder()).append("transport type not supported - ").append(core_transport).toString());
		}
		TransportHelperFilterStreamCipher core_filter = new TransportHelperFilterStreamCipher(helper, ((TransportCipherImpl)read_cipher).cipher, ((TransportCipherImpl)write_cipher).cipher);
		return new TransportFilterImpl(core_filter);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -