Class DHTTransportLoopbackImpl
- java.lang.Object
-
- com.biglybt.core.dht.transport.loopback.DHTTransportLoopbackImpl
-
- All Implemented Interfaces:
DHTTransport
public class DHTTransportLoopbackImpl extends java.lang.Object implements DHTTransport
-
-
Field Summary
Fields Modifier and Type Field Description (package private) static AEMonitor
class_mon
(package private) static java.util.List
dispatch_queue
(package private) static AESemaphore
dispatch_queue_sem
static int
FAIL_PERCENTAGE
private int
id_byte_length
static int
LATENCY
private java.util.List
listeners
private DHTTransportContact
local_contact
private byte[]
node_id
private static long
node_id_seed_next
private static java.util.Map
node_map
private DHTTransportRequestHandler
request_handler
private DHTTransportStatsImpl
stats
static byte
VERSION
-
Fields inherited from interface com.biglybt.core.dht.transport.DHTTransport
GF_DHT_SLEEPING, GF_NONE
-
-
Constructor Summary
Constructors Constructor Description DHTTransportLoopbackImpl(int _id_byte_length)
-
Method Summary
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.biglybt.core.dht.transport.DHTTransport
getCurrentBindAddress, getExplicitBindAddress, setExplicitBindAddress
-
-
-
-
Field Detail
-
VERSION
public static final byte VERSION
- See Also:
- Constant Field Values
-
LATENCY
public static int LATENCY
-
FAIL_PERCENTAGE
public static int FAIL_PERCENTAGE
-
node_id_seed_next
private static long node_id_seed_next
-
node_map
private static final java.util.Map node_map
-
dispatch_queue
static final java.util.List dispatch_queue
-
dispatch_queue_sem
static final AESemaphore dispatch_queue_sem
-
class_mon
static final AEMonitor class_mon
-
node_id
private byte[] node_id
-
local_contact
private DHTTransportContact local_contact
-
id_byte_length
private final int id_byte_length
-
request_handler
private DHTTransportRequestHandler request_handler
-
stats
private final DHTTransportStatsImpl stats
-
listeners
private final java.util.List listeners
-
-
Method Detail
-
getProtocolVersion
public byte getProtocolVersion()
- Specified by:
getProtocolVersion
in interfaceDHTTransport
-
getMinimumProtocolVersion
public byte getMinimumProtocolVersion()
- Specified by:
getMinimumProtocolVersion
in interfaceDHTTransport
-
getNetwork
public int getNetwork()
- Specified by:
getNetwork
in interfaceDHTTransport
-
isIPV6
public boolean isIPV6()
- Specified by:
isIPV6
in interfaceDHTTransport
-
setLatency
public static void setLatency(int _latency)
-
setFailPercentage
public static void setFailPercentage(int p)
-
getOverallStats
public static DHTTransportStats getOverallStats()
-
getLocalContact
public DHTTransportContact getLocalContact()
Description copied from interface:DHTTransport
Gives access to the node ID for this transport- Specified by:
getLocalContact
in interfaceDHTTransport
- Returns:
-
setPort
public void setPort(int port)
- Specified by:
setPort
in interfaceDHTTransport
-
getPort
public int getPort()
- Specified by:
getPort
in interfaceDHTTransport
-
getGenericFlags
public byte getGenericFlags()
- Specified by:
getGenericFlags
in interfaceDHTTransport
-
setGenericFlag
public void setGenericFlag(byte flag, boolean value)
- Specified by:
setGenericFlag
in interfaceDHTTransport
-
setSuspended
public void setSuspended(boolean susp)
- Specified by:
setSuspended
in interfaceDHTTransport
-
getTimeout
public long getTimeout()
- Specified by:
getTimeout
in interfaceDHTTransport
-
setTimeout
public void setTimeout(long millis)
- Specified by:
setTimeout
in interfaceDHTTransport
-
isReachable
public boolean isReachable()
- Specified by:
isReachable
in interfaceDHTTransport
-
getReachableContacts
public DHTTransportContact[] getReachableContacts()
- Specified by:
getReachableContacts
in interfaceDHTTransport
-
getRecentContacts
public DHTTransportContact[] getRecentContacts()
- Specified by:
getRecentContacts
in interfaceDHTTransport
-
findTarget
protected DHTTransportLoopbackImpl findTarget(byte[] id)
-
setRequestHandler
public void setRequestHandler(DHTTransportRequestHandler _request_handler)
Description copied from interface:DHTTransport
Set the handler for incoming requests- Specified by:
setRequestHandler
in interfaceDHTTransport
-
getRequestHandler
protected DHTTransportRequestHandler getRequestHandler()
-
exportContactToMap
public java.util.Map<java.lang.String,java.lang.Object> exportContactToMap(DHTTransportContact contact)
-
exportContact
public void exportContact(DHTTransportContact contact, java.io.DataOutputStream os) throws java.io.IOException
- Throws:
java.io.IOException
-
importContact
public DHTTransportContact importContact(java.io.DataInputStream is, boolean is_bootstrap) throws java.io.IOException
- Specified by:
importContact
in interfaceDHTTransport
- Throws:
java.io.IOException
-
removeContact
public void removeContact(DHTTransportContact contact)
-
run
protected void run(AERunnable r)
-
getStats
public DHTTransportStats getStats()
- Specified by:
getStats
in interfaceDHTTransport
-
sendPing
public void sendPing(DHTTransportContact contact, DHTTransportReplyHandler handler)
-
sendPingSupport
public void sendPingSupport(DHTTransportContact contact, DHTTransportReplyHandler handler)
-
sendKeyBlock
public void sendKeyBlock(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[] request, byte[] sig)
-
sendKeyBlockSupport
public void sendKeyBlockSupport(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[] request, byte[] sig)
-
sendStats
public void sendStats(DHTTransportContact contact, DHTTransportReplyHandler handler)
-
sendStatsSupport
public void sendStatsSupport(DHTTransportContact contact, DHTTransportReplyHandler handler)
-
sendStore
public void sendStore(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[][] keys, DHTTransportValue[][] value_sets, boolean immediate)
-
sendStoreSupport
public void sendStoreSupport(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[][] keys, DHTTransportValue[][] value_sets)
-
sendQueryStore
public void sendQueryStore(DHTTransportContact contact, DHTTransportReplyHandler handler, int header_length, java.util.List<java.lang.Object[]> key_details)
-
sendFindNode
public void sendFindNode(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[] nid)
-
sendFindNodeSupport
public void sendFindNodeSupport(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[] nid)
-
sendFindValue
public void sendFindValue(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[] key, int max, short flags)
-
sendFindValueSupport
public void sendFindValueSupport(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[] key, int max, short flags)
-
triggerFailure
protected boolean triggerFailure()
-
registerTransferHandler
public void registerTransferHandler(byte[] handler_key, DHTTransportTransferHandler handler)
- Specified by:
registerTransferHandler
in interfaceDHTTransport
-
registerTransferHandler
public void registerTransferHandler(byte[] handler_key, DHTTransportTransferHandler handler, java.util.Map<java.lang.String,java.lang.Object> options)
- Specified by:
registerTransferHandler
in interfaceDHTTransport
-
unregisterTransferHandler
public void unregisterTransferHandler(byte[] handler_key, DHTTransportTransferHandler handler)
- Specified by:
unregisterTransferHandler
in interfaceDHTTransport
-
readTransfer
public byte[] readTransfer(DHTTransportProgressListener listener, DHTTransportContact target, byte[] handler_key, byte[] key, long timeout) throws DHTTransportException
- Specified by:
readTransfer
in interfaceDHTTransport
- Throws:
DHTTransportException
-
writeTransfer
public void writeTransfer(DHTTransportProgressListener listener, DHTTransportContact target, byte[] handler_key, byte[] key, byte[] data, long timeout) throws DHTTransportException
- Specified by:
writeTransfer
in interfaceDHTTransport
- Throws:
DHTTransportException
-
writeReadTransfer
public byte[] writeReadTransfer(DHTTransportProgressListener listener, DHTTransportContact target, byte[] handler_key, byte[] data, long timeout) throws DHTTransportException
- Specified by:
writeReadTransfer
in interfaceDHTTransport
- Throws:
DHTTransportException
-
supportsStorage
public boolean supportsStorage()
- Specified by:
supportsStorage
in interfaceDHTTransport
-
addListener
public void addListener(DHTTransportListener l)
- Specified by:
addListener
in interfaceDHTTransport
-
removeListener
public void removeListener(DHTTransportListener l)
- Specified by:
removeListener
in interfaceDHTTransport
-
-