Class DHTTransportLoopbackImpl
java.lang.Object
com.biglybt.core.dht.transport.loopback.DHTTransportLoopbackImpl
- All Implemented Interfaces:
DHTTransport
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final AEMonitor
(package private) static final List
(package private) static final AESemaphore
static int
private final int
static int
private final List
private DHTTransportContact
private byte[]
private static long
private static final Map
private DHTTransportRequestHandler
private final DHTTransportStatsImpl
static final byte
Fields inherited from interface com.biglybt.core.dht.transport.DHTTransport
GF_DHT_SLEEPING, GF_NONE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
void
exportContact
(DHTTransportContact contact, DataOutputStream os) exportContactToMap
(DHTTransportContact contact) protected DHTTransportLoopbackImpl
findTarget
(byte[] id) byte
Gives access to the node ID for this transportbyte
int
static DHTTransportStats
int
getPort()
byte
protected DHTTransportRequestHandler
getStats()
long
importContact
(DataInputStream is, boolean is_bootstrap) boolean
isIPV6()
boolean
byte[]
readTransfer
(DHTTransportProgressListener listener, DHTTransportContact target, byte[] handler_key, byte[] key, long timeout) void
registerTransferHandler
(byte[] handler_key, DHTTransportTransferHandler handler) void
registerTransferHandler
(byte[] handler_key, DHTTransportTransferHandler handler, Map<String, Object> options) void
removeContact
(DHTTransportContact contact) void
protected void
run
(AERunnable r) void
sendFindNode
(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[] nid) void
sendFindNodeSupport
(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[] nid) void
sendFindValue
(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[] key, int max, short flags) void
sendFindValueSupport
(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[] key, int max, short flags) void
sendKeyBlock
(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[] request, byte[] sig) void
sendKeyBlockSupport
(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[] request, byte[] sig) void
sendPing
(DHTTransportContact contact, DHTTransportReplyHandler handler) void
sendPingSupport
(DHTTransportContact contact, DHTTransportReplyHandler handler) void
sendQueryStore
(DHTTransportContact contact, DHTTransportReplyHandler handler, int header_length, List<Object[]> key_details) void
sendStats
(DHTTransportContact contact, DHTTransportReplyHandler handler) void
sendStatsSupport
(DHTTransportContact contact, DHTTransportReplyHandler handler) void
sendStore
(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[][] keys, DHTTransportValue[][] value_sets, boolean immediate) void
sendStoreSupport
(DHTTransportContact contact, DHTTransportReplyHandler handler, byte[][] keys, DHTTransportValue[][] value_sets) static void
setFailPercentage
(int p) void
setGenericFlag
(byte flag, boolean value) static void
setLatency
(int _latency) void
setPort
(int port) void
setRequestHandler
(DHTTransportRequestHandler _request_handler) Set the handler for incoming requestsvoid
setSuspended
(boolean susp) void
setTimeout
(long millis) boolean
protected boolean
void
unregisterTransferHandler
(byte[] handler_key, DHTTransportTransferHandler handler) byte[]
writeReadTransfer
(DHTTransportProgressListener listener, DHTTransportContact target, byte[] handler_key, byte[] data, long timeout) void
writeTransfer
(DHTTransportProgressListener listener, DHTTransportContact target, byte[] handler_key, byte[] key, byte[] data, long timeout) 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 Details
-
VERSION
public static final byte VERSION- See Also:
-
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
-
dispatch_queue
-
dispatch_queue_sem
-
class_mon
-
node_id
private byte[] node_id -
local_contact
-
id_byte_length
private final int id_byte_length -
request_handler
-
stats
-
listeners
-
-
Constructor Details
-
DHTTransportLoopbackImpl
public DHTTransportLoopbackImpl(int _id_byte_length)
-
-
Method Details
-
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
-
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
- Specified by:
getReachableContacts
in interfaceDHTTransport
-
getRecentContacts
- Specified by:
getRecentContacts
in interfaceDHTTransport
-
findTarget
-
setRequestHandler
Description copied from interface:DHTTransport
Set the handler for incoming requests- Specified by:
setRequestHandler
in interfaceDHTTransport
-
getRequestHandler
-
exportContactToMap
-
exportContact
- Throws:
IOException
-
importContact
public DHTTransportContact importContact(DataInputStream is, boolean is_bootstrap) throws IOException - Specified by:
importContact
in interfaceDHTTransport
- Throws:
IOException
-
removeContact
-
run
-
getStats
- Specified by:
getStats
in interfaceDHTTransport
-
sendPing
-
sendPingSupport
-
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
-
sendStatsSupport
-
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, List<Object[]> key_details) -
sendFindNode
-
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
- Specified by:
registerTransferHandler
in interfaceDHTTransport
-
registerTransferHandler
public void registerTransferHandler(byte[] handler_key, DHTTransportTransferHandler handler, Map<String, Object> options) - Specified by:
registerTransferHandler
in interfaceDHTTransport
-
unregisterTransferHandler
- 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
- Specified by:
addListener
in interfaceDHTTransport
-
removeListener
- Specified by:
removeListener
in interfaceDHTTransport
-