Class TCPConnectionManager
- java.lang.Object
-
- com.biglybt.core.networkmanager.impl.tcp.TCPConnectionManager
-
public class TCPConnectionManager extends java.lang.Object
Manages new connection establishment and ended connection termination.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
TCPConnectionManager.ConnectionRequest
static interface
TCPConnectionManager.ConnectListener
Listener for notification of connection establishment.
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.List<TCPConnectionManager.ConnectListener>
canceled_requests
private static int
CONNECT_ATTEMPT_STALL_TIME
private static int
CONNECT_ATTEMPT_TIMEOUT
(package private) static int
CONNECT_SELECT_LOOP_MIN_TIME
(package private) static int
CONNECT_SELECT_LOOP_TIME
private VirtualChannelSelector
connect_selector
private long
connection_request_id_next
private java.util.Map<java.nio.channels.SocketChannel,java.lang.Long>
delayed_closes
(package private) boolean
ignore_bind_for_lan_addresses
(package private) java.lang.String
ip_tos
(package private) int
local_bind_port
private static LogIDs
LOGID
private boolean
max_conn_exceeded_logged
(package private) static int
max_outbound_connections
static int
MAX_SIMULTANIOUS_CONNECT_ATTEMPTS
(package private) static int
MIN_SIMULTANIOUS_CONNECT_ATTEMPTS
(package private) AEMonitor
new_canceled_mon
(package private) java.util.Set<TCPConnectionManager.ConnectionRequest>
new_requests
(package private) java.util.Map<TCPConnectionManager.ConnectionRequest,java.lang.Object>
pending_attempts
(package private) java.util.LinkedList<java.nio.channels.SocketChannel>
pending_closes
private AEMonitor
pending_closes_mon
(package private) java.util.Map<TCPConnectionManager.ConnectionRequest,java.lang.Object>
pending_pp_attempts
(package private) int
rcv_size
private static boolean
SHOW_CONNECT_STATS
(package private) int
snd_size
-
Constructor Summary
Constructors Constructor Description TCPConnectionManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
addNewOutboundRequests()
private void
addNewRequest(TCPConnectionManager.ConnectionRequest request)
void
cancelRequest(TCPConnectionManager.ConnectListener listener_key)
Cancel a pending new connection request.void
closeConnection(java.nio.channels.SocketChannel channel)
Close the given connection.void
closeConnection(java.nio.channels.SocketChannel channel, int delay)
(package private) void
doClosings()
(package private) void
finishConnect(TCPConnectionManager.ConnectionRequest request)
int
getMaxOutboundPermitted()
void
requestNewConnection(java.net.InetSocketAddress address, TCPConnectionManager.ConnectListener listener, int connect_timeout, int priority)
void
requestNewConnection(java.net.InetSocketAddress address, AEProxyFactory.PluginProxy plugin_proxy, TCPConnectionManager.ConnectListener listener, int priority)
Request that a new connection be made out to the given address.private void
requestNewConnection(java.net.InetSocketAddress address, AEProxyFactory.PluginProxy plugin_proxy, TCPConnectionManager.ConnectListener listener, int connect_timeout, int priority)
(package private) void
runSelect()
-
-
-
Field Detail
-
LOGID
private static final LogIDs LOGID
-
CONNECT_SELECT_LOOP_TIME
static int CONNECT_SELECT_LOOP_TIME
-
CONNECT_SELECT_LOOP_MIN_TIME
static int CONNECT_SELECT_LOOP_MIN_TIME
-
MIN_SIMULTANIOUS_CONNECT_ATTEMPTS
static int MIN_SIMULTANIOUS_CONNECT_ATTEMPTS
-
MAX_SIMULTANIOUS_CONNECT_ATTEMPTS
public static int MAX_SIMULTANIOUS_CONNECT_ATTEMPTS
-
max_outbound_connections
static int max_outbound_connections
-
rcv_size
int rcv_size
-
snd_size
int snd_size
-
ip_tos
java.lang.String ip_tos
-
local_bind_port
int local_bind_port
-
ignore_bind_for_lan_addresses
boolean ignore_bind_for_lan_addresses
-
CONNECT_ATTEMPT_TIMEOUT
private static final int CONNECT_ATTEMPT_TIMEOUT
- See Also:
- Constant Field Values
-
CONNECT_ATTEMPT_STALL_TIME
private static final int CONNECT_ATTEMPT_STALL_TIME
- See Also:
- Constant Field Values
-
SHOW_CONNECT_STATS
private static final boolean SHOW_CONNECT_STATS
- See Also:
- Constant Field Values
-
connect_selector
private final VirtualChannelSelector connect_selector
-
connection_request_id_next
private long connection_request_id_next
-
new_requests
final java.util.Set<TCPConnectionManager.ConnectionRequest> new_requests
-
canceled_requests
final java.util.List<TCPConnectionManager.ConnectListener> canceled_requests
-
new_canceled_mon
final AEMonitor new_canceled_mon
-
pending_attempts
final java.util.Map<TCPConnectionManager.ConnectionRequest,java.lang.Object> pending_attempts
-
pending_pp_attempts
final java.util.Map<TCPConnectionManager.ConnectionRequest,java.lang.Object> pending_pp_attempts
-
pending_closes
final java.util.LinkedList<java.nio.channels.SocketChannel> pending_closes
-
delayed_closes
private final java.util.Map<java.nio.channels.SocketChannel,java.lang.Long> delayed_closes
-
pending_closes_mon
private final AEMonitor pending_closes_mon
-
max_conn_exceeded_logged
private boolean max_conn_exceeded_logged
-
-
Method Detail
-
getMaxOutboundPermitted
public int getMaxOutboundPermitted()
-
addNewOutboundRequests
void addNewOutboundRequests()
-
addNewRequest
private void addNewRequest(TCPConnectionManager.ConnectionRequest request)
-
finishConnect
void finishConnect(TCPConnectionManager.ConnectionRequest request)
-
runSelect
void runSelect()
-
doClosings
void doClosings()
-
requestNewConnection
public void requestNewConnection(java.net.InetSocketAddress address, AEProxyFactory.PluginProxy plugin_proxy, TCPConnectionManager.ConnectListener listener, int priority)
Request that a new connection be made out to the given address.- Parameters:
address
- remote ip+port to connect tolistener
- to receive notification of connect attempt success/failure
-
requestNewConnection
public void requestNewConnection(java.net.InetSocketAddress address, TCPConnectionManager.ConnectListener listener, int connect_timeout, int priority)
-
requestNewConnection
private void requestNewConnection(java.net.InetSocketAddress address, AEProxyFactory.PluginProxy plugin_proxy, TCPConnectionManager.ConnectListener listener, int connect_timeout, int priority)
-
closeConnection
public void closeConnection(java.nio.channels.SocketChannel channel)
Close the given connection.- Parameters:
channel
- to close
-
closeConnection
public void closeConnection(java.nio.channels.SocketChannel channel, int delay)
-
cancelRequest
public void cancelRequest(TCPConnectionManager.ConnectListener listener_key)
Cancel a pending new connection request.- Parameters:
listener_key
- used in the initial connect request
-
-