Class GenericMessageConnectionIndirect
- java.lang.Object
-
- com.biglybt.pifimpl.local.messaging.GenericMessageConnectionIndirect
-
- All Implemented Interfaces:
GenericMessageConnectionAdapter
public class GenericMessageConnectionIndirect extends java.lang.Object implements GenericMessageConnectionAdapter
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.biglybt.pifimpl.local.messaging.GenericMessageConnectionAdapter
GenericMessageConnectionAdapter.ConnectionListener
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
closed
private long
connection_id
private static long
connection_id_next
private GenericMessageEndpoint
endpoint
private boolean
incoming
private static int
KEEP_ALIVE_CHECK_PERIOD
private static int
KEEP_ALIVE_CHECK_TICKS
private boolean
keep_alive_in_progress
private static int
KEEP_ALIVE_MIN
private static ThreadPool
keep_alive_pool
private long
last_message_received
private long
last_message_sent
private static java.util.Map
local_connections
private static LogIDs
LOGID
static int
MAX_MESSAGE_SIZE
private static int
MAX_REMOTE_CONNECTIONS
private static int
MAX_REMOTE_CONNECTIONS_PER_IP
private MessageManagerImpl
message_manager
private static int
MESSAGE_TYPE_CONNECT
private static int
MESSAGE_TYPE_DATA
private static int
MESSAGE_TYPE_DISCONNECT
private static int
MESSAGE_TYPE_ERROR
private java.lang.String
msg_desc
private java.lang.String
msg_id
private NATTraverser
nat_traverser
private GenericMessageConnectionImpl
owner
private static java.util.Map
remote_connections
private java.net.InetSocketAddress
rendezvous
private java.util.LinkedList<byte[]>
send_queue
private AESemaphore
send_queue_sem
private static int
STATS_PERIOD
private static int
STATS_TICKS
private java.net.InetSocketAddress
target
private static int
TICK_PERIOD
private static boolean
TRACE
-
Constructor Summary
Constructors Modifier Constructor Description protected
GenericMessageConnectionIndirect(MessageManagerImpl _message_manager, java.lang.String _msg_id, java.lang.String _msg_desc, GenericMessageEndpoint _endpoint, long _connection_id)
protected
GenericMessageConnectionIndirect(MessageManagerImpl _message_manager, java.lang.String _msg_id, java.lang.String _msg_desc, GenericMessageEndpoint _endpoint, java.net.InetSocketAddress _rendezvous, java.net.InetSocketAddress _target)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accepted()
void
addInboundRateLimiter(RateLimiter limiter)
void
addOutboundRateLimiter(RateLimiter limiter)
void
close()
protected void
close(java.lang.Throwable close_cause)
void
connect(java.nio.ByteBuffer initial_data, GenericMessageConnectionAdapter.ConnectionListener listener)
Connection
getConnection()
protected static java.lang.String
getConnectionStatus(java.util.Map connections)
GenericMessageEndpoint
getEndpoint()
long
getLastMessageReceivedTime()
protected static java.lang.String
getLocalConnectionStatus()
int
getMaximumMessageSize()
protected static java.lang.String
getRemoteConnectionStatus()
GenericMessageStartpoint
getStartpoint()
int
getTransportType()
java.lang.String
getType()
protected boolean
isClosed()
protected void
keepAlive()
protected static void
log(java.lang.String str)
protected boolean
prepareForKeepAlive(boolean force)
protected static java.util.Map
receive(MessageManagerImpl message_manager, java.net.InetSocketAddress originator, java.util.Map message)
protected java.util.List<byte[]>
receive(java.util.List<byte[]> messages)
protected boolean
receiveIncomplete()
void
removeInboundRateLimiter(RateLimiter limiter)
void
removeOutboundRateLimiter(RateLimiter limiter)
void
send(PooledByteBuffer pbb)
protected void
send(java.util.List messages)
void
setOwner(GenericMessageConnectionImpl _owner)
protected void
trace(java.lang.String str)
-
-
-
Field Detail
-
LOGID
private static final LogIDs LOGID
-
TRACE
private static final boolean TRACE
- See Also:
- Constant Field Values
-
MAX_MESSAGE_SIZE
public static final int MAX_MESSAGE_SIZE
- See Also:
- Constant Field Values
-
MESSAGE_TYPE_CONNECT
private static final int MESSAGE_TYPE_CONNECT
- See Also:
- Constant Field Values
-
MESSAGE_TYPE_ERROR
private static final int MESSAGE_TYPE_ERROR
- See Also:
- Constant Field Values
-
MESSAGE_TYPE_DATA
private static final int MESSAGE_TYPE_DATA
- See Also:
- Constant Field Values
-
MESSAGE_TYPE_DISCONNECT
private static final int MESSAGE_TYPE_DISCONNECT
- See Also:
- Constant Field Values
-
TICK_PERIOD
private static final int TICK_PERIOD
- See Also:
- Constant Field Values
-
KEEP_ALIVE_CHECK_PERIOD
private static final int KEEP_ALIVE_CHECK_PERIOD
- See Also:
- Constant Field Values
-
KEEP_ALIVE_MIN
private static final int KEEP_ALIVE_MIN
- See Also:
- Constant Field Values
-
STATS_PERIOD
private static final int STATS_PERIOD
- See Also:
- Constant Field Values
-
KEEP_ALIVE_CHECK_TICKS
private static final int KEEP_ALIVE_CHECK_TICKS
- See Also:
- Constant Field Values
-
STATS_TICKS
private static final int STATS_TICKS
- See Also:
- Constant Field Values
-
MAX_REMOTE_CONNECTIONS
private static final int MAX_REMOTE_CONNECTIONS
- See Also:
- Constant Field Values
-
MAX_REMOTE_CONNECTIONS_PER_IP
private static final int MAX_REMOTE_CONNECTIONS_PER_IP
- See Also:
- Constant Field Values
-
connection_id_next
private static long connection_id_next
-
local_connections
private static java.util.Map local_connections
-
remote_connections
private static java.util.Map remote_connections
-
keep_alive_pool
private static ThreadPool keep_alive_pool
-
message_manager
private MessageManagerImpl message_manager
-
msg_id
private java.lang.String msg_id
-
msg_desc
private java.lang.String msg_desc
-
endpoint
private GenericMessageEndpoint endpoint
-
nat_traverser
private NATTraverser nat_traverser
-
owner
private GenericMessageConnectionImpl owner
-
rendezvous
private java.net.InetSocketAddress rendezvous
-
target
private java.net.InetSocketAddress target
-
connection_id
private long connection_id
-
incoming
private boolean incoming
-
closed
private boolean closed
-
send_queue
private java.util.LinkedList<byte[]> send_queue
-
send_queue_sem
private AESemaphore send_queue_sem
-
last_message_sent
private volatile long last_message_sent
-
last_message_received
private volatile long last_message_received
-
keep_alive_in_progress
private volatile boolean keep_alive_in_progress
-
-
Constructor Detail
-
GenericMessageConnectionIndirect
protected GenericMessageConnectionIndirect(MessageManagerImpl _message_manager, java.lang.String _msg_id, java.lang.String _msg_desc, GenericMessageEndpoint _endpoint, java.net.InetSocketAddress _rendezvous, java.net.InetSocketAddress _target)
-
GenericMessageConnectionIndirect
protected GenericMessageConnectionIndirect(MessageManagerImpl _message_manager, java.lang.String _msg_id, java.lang.String _msg_desc, GenericMessageEndpoint _endpoint, long _connection_id)
-
-
Method Detail
-
receive
protected static java.util.Map receive(MessageManagerImpl message_manager, java.net.InetSocketAddress originator, java.util.Map message)
-
getRemoteConnectionStatus
protected static java.lang.String getRemoteConnectionStatus()
-
getLocalConnectionStatus
protected static java.lang.String getLocalConnectionStatus()
-
getConnectionStatus
protected static java.lang.String getConnectionStatus(java.util.Map connections)
-
setOwner
public void setOwner(GenericMessageConnectionImpl _owner)
- Specified by:
setOwner
in interfaceGenericMessageConnectionAdapter
-
getMaximumMessageSize
public int getMaximumMessageSize()
- Specified by:
getMaximumMessageSize
in interfaceGenericMessageConnectionAdapter
-
getType
public java.lang.String getType()
- Specified by:
getType
in interfaceGenericMessageConnectionAdapter
-
getTransportType
public int getTransportType()
- Specified by:
getTransportType
in interfaceGenericMessageConnectionAdapter
-
getLastMessageReceivedTime
public long getLastMessageReceivedTime()
-
getEndpoint
public GenericMessageEndpoint getEndpoint()
- Specified by:
getEndpoint
in interfaceGenericMessageConnectionAdapter
-
getStartpoint
public GenericMessageStartpoint getStartpoint()
- Specified by:
getStartpoint
in interfaceGenericMessageConnectionAdapter
-
getConnection
public Connection getConnection()
- Specified by:
getConnection
in interfaceGenericMessageConnectionAdapter
-
addInboundRateLimiter
public void addInboundRateLimiter(RateLimiter limiter)
- Specified by:
addInboundRateLimiter
in interfaceGenericMessageConnectionAdapter
-
removeInboundRateLimiter
public void removeInboundRateLimiter(RateLimiter limiter)
- Specified by:
removeInboundRateLimiter
in interfaceGenericMessageConnectionAdapter
-
addOutboundRateLimiter
public void addOutboundRateLimiter(RateLimiter limiter)
- Specified by:
addOutboundRateLimiter
in interfaceGenericMessageConnectionAdapter
-
removeOutboundRateLimiter
public void removeOutboundRateLimiter(RateLimiter limiter)
- Specified by:
removeOutboundRateLimiter
in interfaceGenericMessageConnectionAdapter
-
connect
public void connect(java.nio.ByteBuffer initial_data, GenericMessageConnectionAdapter.ConnectionListener listener)
- Specified by:
connect
in interfaceGenericMessageConnectionAdapter
-
accepted
public void accepted()
- Specified by:
accepted
in interfaceGenericMessageConnectionAdapter
-
send
public void send(PooledByteBuffer pbb) throws MessageException
- Specified by:
send
in interfaceGenericMessageConnectionAdapter
- Throws:
MessageException
-
send
protected void send(java.util.List messages)
-
receive
protected java.util.List<byte[]> receive(java.util.List<byte[]> messages)
-
receiveIncomplete
protected boolean receiveIncomplete()
-
close
public void close() throws MessageException
- Specified by:
close
in interfaceGenericMessageConnectionAdapter
- Throws:
MessageException
-
close
protected void close(java.lang.Throwable close_cause) throws MessageException
- Throws:
MessageException
-
isClosed
protected boolean isClosed()
-
prepareForKeepAlive
protected boolean prepareForKeepAlive(boolean force)
-
keepAlive
protected void keepAlive()
-
log
protected static void log(java.lang.String str)
-
trace
protected void trace(java.lang.String str)
-
-