Class TCPTransportHelper
- java.lang.Object
-
- com.biglybt.core.networkmanager.impl.tcp.TCPTransportHelper
-
- All Implemented Interfaces:
TransportHelper
public class TCPTransportHelper extends java.lang.Object implements TransportHelper
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.biglybt.core.networkmanager.impl.TransportHelper
TransportHelper.selectListener
-
-
Field Summary
Fields Modifier and Type Field Description private java.nio.channels.SocketChannel
channel
private boolean
closed
static int
CONNECT_TIMEOUT
private java.nio.ByteBuffer
delayed_write
static int
MAX_PARTIAL_WRITE_RETAIN
private static AEProxyAddressMapper
proxy_address_mapper
static int
READ_TIMEOUT
private long
remainingBytesToScatter
private static java.util.Random
rnd
private java.net.InetSocketAddress
tcp_address
(package private) boolean
trace
private java.util.Map
user_data
-
Constructor Summary
Constructors Constructor Description TCPTransportHelper(java.nio.channels.SocketChannel _channel)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cancelReadSelects()
void
cancelWriteSelects()
private int
channelWrite(java.nio.ByteBuffer buf)
void
close(java.lang.String reason)
boolean
delayWrite(java.nio.ByteBuffer buffer)
void
failed(java.lang.Throwable reason)
java.net.InetSocketAddress
getAddress()
int
getConnectTimeout()
java.lang.String
getName(boolean verbose)
int
getReadTimeout()
java.nio.channels.SocketChannel
getSocketChannel()
java.lang.Object
getUserData(java.lang.Object key)
boolean
hasDelayedWrite()
boolean
isClosed()
boolean
minimiseOverheads()
void
pauseReadSelects()
void
pauseWriteSelects()
int
read(java.nio.ByteBuffer buffer)
long
read(java.nio.ByteBuffer[] buffers, int array_offset, int length)
void
registerForReadSelects(TransportHelper.selectListener listener, java.lang.Object attachment)
void
registerForWriteSelects(TransportHelper.selectListener listener, java.lang.Object attachment)
void
resumeReadSelects()
void
resumeWriteSelects()
void
setScatteringMode(long forBytes)
void
setTrace(boolean on)
void
setUserData(java.lang.Object key, java.lang.Object data)
long
write(java.nio.ByteBuffer[] buffers, int array_offset, int length)
int
write(java.nio.ByteBuffer buffer, boolean partial_write)
-
-
-
Field Detail
-
READ_TIMEOUT
public static final int READ_TIMEOUT
- See Also:
- Constant Field Values
-
CONNECT_TIMEOUT
public static final int CONNECT_TIMEOUT
- See Also:
- Constant Field Values
-
proxy_address_mapper
private static final AEProxyAddressMapper proxy_address_mapper
-
MAX_PARTIAL_WRITE_RETAIN
public static final int MAX_PARTIAL_WRITE_RETAIN
- See Also:
- Constant Field Values
-
remainingBytesToScatter
private long remainingBytesToScatter
-
channel
private final java.nio.channels.SocketChannel channel
-
delayed_write
private java.nio.ByteBuffer delayed_write
-
user_data
private java.util.Map user_data
-
trace
boolean trace
-
tcp_address
private volatile java.net.InetSocketAddress tcp_address
-
closed
private volatile boolean closed
-
rnd
private static final java.util.Random rnd
-
-
Method Detail
-
getAddress
public java.net.InetSocketAddress getAddress()
- Specified by:
getAddress
in interfaceTransportHelper
-
getName
public java.lang.String getName(boolean verbose)
- Specified by:
getName
in interfaceTransportHelper
-
minimiseOverheads
public boolean minimiseOverheads()
- Specified by:
minimiseOverheads
in interfaceTransportHelper
-
getConnectTimeout
public int getConnectTimeout()
- Specified by:
getConnectTimeout
in interfaceTransportHelper
-
getReadTimeout
public int getReadTimeout()
- Specified by:
getReadTimeout
in interfaceTransportHelper
-
delayWrite
public boolean delayWrite(java.nio.ByteBuffer buffer)
- Specified by:
delayWrite
in interfaceTransportHelper
-
hasDelayedWrite
public boolean hasDelayedWrite()
- Specified by:
hasDelayedWrite
in interfaceTransportHelper
-
write
public int write(java.nio.ByteBuffer buffer, boolean partial_write) throws java.io.IOException
- Specified by:
write
in interfaceTransportHelper
- Throws:
java.io.IOException
-
write
public long write(java.nio.ByteBuffer[] buffers, int array_offset, int length) throws java.io.IOException
- Specified by:
write
in interfaceTransportHelper
- Throws:
java.io.IOException
-
channelWrite
private int channelWrite(java.nio.ByteBuffer buf) throws java.io.IOException
- Throws:
java.io.IOException
-
read
public int read(java.nio.ByteBuffer buffer) throws java.io.IOException
- Specified by:
read
in interfaceTransportHelper
- Throws:
java.io.IOException
-
read
public long read(java.nio.ByteBuffer[] buffers, int array_offset, int length) throws java.io.IOException
- Specified by:
read
in interfaceTransportHelper
- Throws:
java.io.IOException
-
registerForReadSelects
public void registerForReadSelects(TransportHelper.selectListener listener, java.lang.Object attachment)
- Specified by:
registerForReadSelects
in interfaceTransportHelper
-
registerForWriteSelects
public void registerForWriteSelects(TransportHelper.selectListener listener, java.lang.Object attachment)
- Specified by:
registerForWriteSelects
in interfaceTransportHelper
-
cancelReadSelects
public void cancelReadSelects()
- Specified by:
cancelReadSelects
in interfaceTransportHelper
-
cancelWriteSelects
public void cancelWriteSelects()
- Specified by:
cancelWriteSelects
in interfaceTransportHelper
-
resumeReadSelects
public void resumeReadSelects()
- Specified by:
resumeReadSelects
in interfaceTransportHelper
-
resumeWriteSelects
public void resumeWriteSelects()
- Specified by:
resumeWriteSelects
in interfaceTransportHelper
-
pauseReadSelects
public void pauseReadSelects()
- Specified by:
pauseReadSelects
in interfaceTransportHelper
-
pauseWriteSelects
public void pauseWriteSelects()
- Specified by:
pauseWriteSelects
in interfaceTransportHelper
-
isClosed
public boolean isClosed()
- Specified by:
isClosed
in interfaceTransportHelper
-
close
public void close(java.lang.String reason)
- Specified by:
close
in interfaceTransportHelper
-
failed
public void failed(java.lang.Throwable reason)
- Specified by:
failed
in interfaceTransportHelper
-
getSocketChannel
public java.nio.channels.SocketChannel getSocketChannel()
-
setUserData
public void setUserData(java.lang.Object key, java.lang.Object data)
- Specified by:
setUserData
in interfaceTransportHelper
-
getUserData
public java.lang.Object getUserData(java.lang.Object key)
- Specified by:
getUserData
in interfaceTransportHelper
-
setTrace
public void setTrace(boolean on)
- Specified by:
setTrace
in interfaceTransportHelper
-
setScatteringMode
public void setScatteringMode(long forBytes)
- Specified by:
setScatteringMode
in interfaceTransportHelper
-
-