Class DHTControlImpl
- java.lang.Object
-
- com.biglybt.core.dht.control.impl.DHTControlImpl
-
- All Implemented Interfaces:
DHTControl
,DHTTransportRequestHandler
public class DHTControlImpl extends java.lang.Object implements DHTControl, DHTTransportRequestHandler
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
DHTControlImpl.ANImpl
protected static class
DHTControlImpl.anonContact
protected static class
DHTControlImpl.anonValue
private static class
DHTControlImpl.ASImpl
protected class
DHTControlImpl.controlActivity
protected static class
DHTControlImpl.DHTOperationListenerDemuxer
protected class
DHTControlImpl.DhtTask
protected static class
DHTControlImpl.DhtTaskSet
protected static class
DHTControlImpl.DHTTransportFindValueReplyImpl
protected static class
DHTControlImpl.DHTTransportStoreReplyImpl
(package private) static class
DHTControlImpl.lookupResultHandler
protected static class
DHTControlImpl.sortedTransportContactSet
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.List<DHTControlActivity>
activities
(package private) AEMonitor
activity_mon
(package private) DHTControlAdapter
adapter
private int
B
private int
cache_at_closest_n
private long
combined_dht_estimate
private int
combined_dht_estimate_mag
(package private) DHTDB
database
private static boolean
DISABLE_REPLICATE_ON_JOIN
private boolean
enable_random_poking
private boolean
encode_keys
protected AEMonitor
estimate_mon
static int
EXTERNAL_LOOKUP_CONCURRENCY
(package private) ThreadPool
external_lookup_pool
private static int
EXTERNAL_PUT_CONCURRENCY
private ThreadPool
external_put_pool
private static int
EXTERNAL_SLEEPING_PUT_CONCURRENCY
private java.util.Map<HashWrapper,java.lang.Object>
imported_state
private static int
INTEGRATION_TIME_MAX
(package private) ThreadPool
internal_lookup_pool
(package private) ThreadPool
internal_put_pool
(package private) int
K
private long
last_dht_estimate_time
(package private) long
last_lookup
private long
last_node_add_check
(package private) ListenerManager<DHTControlListener>
listeners
(package private) DHTTransportContact
local_contact
private long
local_dht_estimate
private static int
LOCAL_ESTIMATE_HISTORY
private java.util.Map<HashWrapper,java.lang.Long>
local_estimate_values
(package private) DHTLogger
logger
private int
lookup_concurrency
private int
max_rep_per_node
private byte[]
node_add_check_uninteresting_limit
private int
node_id_byte_count
private static int
RANDOM_QUERY_PERIOD
private byte[]
rbs_id
private long
rbs_time
private static int
REMOTE_ESTIMATE_HISTORY
private java.util.List<java.lang.Integer>
remote_estimate_values
(package private) DHTRouter
router
private int
router_count
private long
router_start_time
(package private) int
search_concurrency
(package private) boolean
seeded
private boolean
sleeping
(package private) java.security.MessageDigest
spoof_digest
private java.util.Map<java.net.InetAddress,java.lang.Integer>
spoof_gen_history
private static int
SPOOF_GEN_HISTORY_SIZE
private java.util.Map<HashWrapper,byte[]>
spoof_gen_history2
private static int
SPOOF_ID2_SIZE
(package private) byte[]
spoof_key
protected AEMonitor
spoof_mon
private DHTControlStatsImpl
stats
private boolean
suspended
private DHTTransport
transport
-
Fields inherited from interface com.biglybt.core.dht.control.DHTControl
B_DEFAULT, CACHE_AT_CLOSEST_N_DEFAULT, CACHE_REPUBLISH_INTERVAL_DEFAULT, ENABLE_RANDOM_DEFAULT, ENCODE_KEYS_DEFAULT, K_DEFAULT, LOOKUP_CONCURRENCY_DEFAULT, MAX_REP_PER_NODE_DEFAULT, ORIGINAL_REPUBLISH_INTERVAL_DEFAULT, SEARCH_CONCURRENCY_DEFAULT
-
-
Constructor Summary
Constructors Constructor Description DHTControlImpl(DHTControlAdapter _adapter, DHTTransport _transport, int _K, int _B, int _max_rep_per_node, int _search_concurrency, int _lookup_concurrency, int _original_republish_interval, int _cache_republish_interval, int _cache_at_closest_n, boolean _encode_keys, boolean _enable_random_poking, DHTLogger _logger)
DHTControlImpl(DHTControlAdapter _adapter, DHTTransport _transport, DHTRouter _router, DHTDB _database, int _K, int _B, int _max_rep_per_node, int _search_concurrency, int _lookup_concurrency, int _original_republish_interval, int _cache_republish_interval, int _cache_at_closest_n, boolean _encode_keys, boolean _enable_random_poking, DHTLogger _logger)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addListener(DHTControlListener l)
int
compareDistances(byte[] n1, byte[] n2)
-ve -> n1 < n2protected static int
compareDistances2(byte[] n1, byte[] n2)
int
computeAndCompareDistances(byte[] t1, byte[] t2, byte[] pivot)
protected static int
computeAndCompareDistances2(byte[] t1, byte[] t2, byte[] pivot)
byte[]
computeDistance(byte[] n1, byte[] n2)
protected static byte[]
computeDistance2(byte[] n1, byte[] n2)
void
contactImported(DHTTransportContact contact, boolean is_bootstrap)
Mechanism for reporting that a contact has been importedvoid
contactRemoved(DHTTransportContact contact)
protected void
createRouter(DHTTransportContact _local_contact)
void
destroy()
protected byte[]
encodeKey(byte[] key)
protected void
estimateDHTSize(byte[] id, java.util.List<DHTTransportContact> contacts, int contacts_to_use)
void
exportState(java.io.DataOutputStream daos, int max)
DHTTransportContact[]
findNodeRequest(DHTTransportContact originating_contact, byte[] id)
private DHTTransportContact[]
findNodeRequest(DHTTransportContact originating_contact, byte[] id, boolean already_logged)
DHTTransportFindValueReply
findValueRequest(DHTTransportContact originating_contact, byte[] key, int max_values, short flags)
private int
generateSpoofID(DHTTransportContact contact)
private byte[]
generateSpoofID2(DHTTransportContact contact)
void
get(byte[] unencoded_key, java.lang.String description, short flags, int max_values, long timeout, boolean exhaustive, boolean high_priority, DHTOperationListener get_listener)
DHTControlActivity[]
getActivities()
java.util.List<DHTTransportContact>
getClosestContactsList(byte[] id, int num_to_return, boolean live_only)
protected java.util.Set<DHTTransportContact>
getClosestContactsSet(byte[] id, int num_to_return, boolean live_only)
java.util.List<DHTTransportContact>
getClosestKContactsList(byte[] id, boolean live_only)
java.util.List<DHTControlContact>
getContacts()
DHTDB
getDataBase()
int
getEstimatedDHTSize()
DHTTransportValue
getLocalValue(byte[] unencoded_key)
protected int
getMaxDivDepth()
byte[]
getObfuscatedKey(byte[] plain_key)
protected byte[]
getObfuscatedValue(byte[] plain_key)
protected DHTTransportValue
getObfuscatedValue(DHTTransportValue basis, byte[] plain_key)
DHTRouter
getRouter()
int
getRouterCount()
long
getRouterUptime()
DHTControlStats
getStats()
java.util.List<DHTTransportValue>
getStoredValues(byte[] unencoded_key)
protected DHTControlImpl.DhtTaskSet
getSupport(byte[] initial_encoded_key, java.lang.String description, short flags, int max_values, long timeout, boolean exhaustive, boolean high_priority, DHTControlImpl.DHTOperationListenerDemuxer get_listener)
DHTTransport
getTransport()
int
getTransportEstimatedDHTSize()
protected java.math.BigInteger
IDToBigInteger(byte[] data)
void
importState(java.io.DataInputStream dais)
boolean
isDiversified(byte[] unencoded_key)
protected boolean
isIDInClosestContacts(byte[] test_id, byte[] target_id, int num_to_consider, boolean live_only)
boolean
isSeeded()
void
keyBlockRequest(DHTTransportContact originating_contact, byte[] request, byte[] sig)
protected void
logDiversification(DHTTransportContact contact, byte[][] keys, byte[][] div)
boolean
lookup(byte[] unencoded_key, java.lang.String description, long timeout, DHTOperationListener lookup_listener)
protected DHTControlImpl.DhtTask
lookup(ThreadPool thread_pool, boolean high_priority, byte[] _lookup_id, java.lang.String description, short flags, boolean value_search, long timeout, int concurrency, int max_values, int search_accuracy, DHTControlImpl.lookupResultHandler handler)
The lookup method returns up to K closest nodes to the targetboolean
lookupEncoded(byte[] encoded_key, java.lang.String description, long timeout, boolean high_priority, DHTOperationListener lookup_listener)
protected void
nodeAddedToRouter(DHTRouterContact new_contact)
void
pingAll()
void
pingRequest(DHTTransportContact originating_contact)
protected void
poke()
void
print(boolean full)
void
put(byte[] _unencoded_key, java.lang.String _description, byte[] _value, short _flags, byte _life_hours, byte _replication_control, boolean _high_priority, DHTOperationListener _listener)
protected void
put(ThreadPool thread_pool, boolean high_priority, byte[][] initial_encoded_keys, java.lang.String description, DHTTransportValue[][] initial_value_sets, short flags, java.util.List<DHTTransportContact> contacts, long timeout, DHTControlImpl.DHTOperationListenerDemuxer listener, boolean consider_diversification, java.util.Set things_written, int put_level, boolean immediate)
protected void
put(ThreadPool thread_pool, boolean high_priority, byte[] initial_encoded_key, java.lang.String description, DHTTransportValue[] values, short flags, long timeout, boolean original_mappings, java.util.Set things_written, int put_level, DHTControlImpl.DHTOperationListenerDemuxer listener)
protected void
put(ThreadPool thread_pool, boolean high_priority, byte[] initial_encoded_key, java.lang.String description, DHTTransportValue value, short flags, long timeout, boolean original_mappings, java.util.Set things_written, int put_level, DHTControlImpl.DHTOperationListenerDemuxer listener)
void
putDirectEncodedKeys(byte[][] encoded_keys, java.lang.String description, DHTTransportValue[][] value_sets, DHTTransportContact contact, DHTOperationListener listener)
void
putDirectEncodedKeys(byte[][] encoded_keys, java.lang.String description, DHTTransportValue[][] value_sets, java.util.List<DHTTransportContact> contacts)
void
putEncodedKey(byte[] encoded_key, java.lang.String description, DHTTransportValue value, long timeout, boolean original_mappings)
DHTTransportQueryStoreReply
queryStoreRequest(DHTTransportContact originating_contact, int header_len, java.util.List<java.lang.Object[]> keys)
byte[]
remove(byte[] unencoded_key, java.lang.String description, DHTOperationListener listener)
byte[]
remove(DHTTransportContact[] contacts, byte[] unencoded_key, java.lang.String description, DHTOperationListener listener)
void
removeListener(DHTControlListener l)
protected void
requestPing(DHTRouterContact contact)
void
seed(boolean full_wait)
void
setSeeded()
Manually mark things as seededvoid
setSleeping(boolean asleep)
void
setSuspended(boolean susp)
void
setTransportEstimatedDHTSize(int size)
DHTTransportFullStats
statsRequest(DHTTransportContact contact)
DHTTransportStoreReply
storeRequest(DHTTransportContact originating_contact, byte[][] keys, DHTTransportValue[][] value_sets)
boolean
verifyContact(DHTTransportContact c, boolean direct)
-
-
-
Field Detail
-
DISABLE_REPLICATE_ON_JOIN
private static final boolean DISABLE_REPLICATE_ON_JOIN
- See Also:
- Constant Field Values
-
EXTERNAL_LOOKUP_CONCURRENCY
public static int EXTERNAL_LOOKUP_CONCURRENCY
-
EXTERNAL_PUT_CONCURRENCY
private static final int EXTERNAL_PUT_CONCURRENCY
- See Also:
- Constant Field Values
-
EXTERNAL_SLEEPING_PUT_CONCURRENCY
private static final int EXTERNAL_SLEEPING_PUT_CONCURRENCY
- See Also:
- Constant Field Values
-
RANDOM_QUERY_PERIOD
private static final int RANDOM_QUERY_PERIOD
- See Also:
- Constant Field Values
-
INTEGRATION_TIME_MAX
private static final int INTEGRATION_TIME_MAX
- See Also:
- Constant Field Values
-
adapter
final DHTControlAdapter adapter
-
transport
private final DHTTransport transport
-
local_contact
DHTTransportContact local_contact
-
router
DHTRouter router
-
database
final DHTDB database
-
stats
private final DHTControlStatsImpl stats
-
logger
final DHTLogger logger
-
node_id_byte_count
private final int node_id_byte_count
-
search_concurrency
final int search_concurrency
-
lookup_concurrency
private final int lookup_concurrency
-
cache_at_closest_n
private final int cache_at_closest_n
-
K
final int K
-
B
private final int B
-
max_rep_per_node
private final int max_rep_per_node
-
encode_keys
private final boolean encode_keys
-
enable_random_poking
private final boolean enable_random_poking
-
router_start_time
private long router_start_time
-
router_count
private int router_count
-
internal_lookup_pool
final ThreadPool internal_lookup_pool
-
external_lookup_pool
final ThreadPool external_lookup_pool
-
internal_put_pool
final ThreadPool internal_put_pool
-
external_put_pool
private final ThreadPool external_put_pool
-
imported_state
private final java.util.Map<HashWrapper,java.lang.Object> imported_state
-
seeded
volatile boolean seeded
-
last_lookup
long last_lookup
-
listeners
final ListenerManager<DHTControlListener> listeners
-
activities
final java.util.List<DHTControlActivity> activities
-
activity_mon
final AEMonitor activity_mon
-
estimate_mon
protected final AEMonitor estimate_mon
-
last_dht_estimate_time
private long last_dht_estimate_time
-
local_dht_estimate
private long local_dht_estimate
-
combined_dht_estimate
private long combined_dht_estimate
-
combined_dht_estimate_mag
private int combined_dht_estimate_mag
-
LOCAL_ESTIMATE_HISTORY
private static final int LOCAL_ESTIMATE_HISTORY
- See Also:
- Constant Field Values
-
local_estimate_values
private final java.util.Map<HashWrapper,java.lang.Long> local_estimate_values
-
REMOTE_ESTIMATE_HISTORY
private static final int REMOTE_ESTIMATE_HISTORY
- See Also:
- Constant Field Values
-
remote_estimate_values
private final java.util.List<java.lang.Integer> remote_estimate_values
-
spoof_mon
protected final AEMonitor spoof_mon
-
spoof_digest
java.security.MessageDigest spoof_digest
-
spoof_key
byte[] spoof_key
-
SPOOF_GEN_HISTORY_SIZE
private static final int SPOOF_GEN_HISTORY_SIZE
- See Also:
- Constant Field Values
-
spoof_gen_history
private final java.util.Map<java.net.InetAddress,java.lang.Integer> spoof_gen_history
-
spoof_gen_history2
private final java.util.Map<HashWrapper,byte[]> spoof_gen_history2
-
SPOOF_ID2_SIZE
private static final int SPOOF_ID2_SIZE
- See Also:
- Constant Field Values
-
last_node_add_check
private long last_node_add_check
-
node_add_check_uninteresting_limit
private byte[] node_add_check_uninteresting_limit
-
rbs_time
private long rbs_time
-
rbs_id
private byte[] rbs_id
-
sleeping
private boolean sleeping
-
suspended
private boolean suspended
-
-
Constructor Detail
-
DHTControlImpl
public DHTControlImpl(DHTControlAdapter _adapter, DHTTransport _transport, int _K, int _B, int _max_rep_per_node, int _search_concurrency, int _lookup_concurrency, int _original_republish_interval, int _cache_republish_interval, int _cache_at_closest_n, boolean _encode_keys, boolean _enable_random_poking, DHTLogger _logger)
-
DHTControlImpl
public DHTControlImpl(DHTControlAdapter _adapter, DHTTransport _transport, DHTRouter _router, DHTDB _database, int _K, int _B, int _max_rep_per_node, int _search_concurrency, int _lookup_concurrency, int _original_republish_interval, int _cache_republish_interval, int _cache_at_closest_n, boolean _encode_keys, boolean _enable_random_poking, DHTLogger _logger)
-
-
Method Detail
-
createRouter
protected void createRouter(DHTTransportContact _local_contact)
-
getRouterUptime
public long getRouterUptime()
-
getRouterCount
public int getRouterCount()
-
setSleeping
public void setSleeping(boolean asleep)
- Specified by:
setSleeping
in interfaceDHTControl
-
setSuspended
public void setSuspended(boolean susp)
- Specified by:
setSuspended
in interfaceDHTControl
-
getStats
public DHTControlStats getStats()
- Specified by:
getStats
in interfaceDHTControl
-
getTransport
public DHTTransport getTransport()
- Specified by:
getTransport
in interfaceDHTControl
-
getRouter
public DHTRouter getRouter()
- Specified by:
getRouter
in interfaceDHTControl
-
getDataBase
public DHTDB getDataBase()
- Specified by:
getDataBase
in interfaceDHTControl
-
contactImported
public void contactImported(DHTTransportContact contact, boolean is_bootstrap)
Description copied from interface:DHTTransportRequestHandler
Mechanism for reporting that a contact has been imported- Specified by:
contactImported
in interfaceDHTTransportRequestHandler
-
contactRemoved
public void contactRemoved(DHTTransportContact contact)
- Specified by:
contactRemoved
in interfaceDHTTransportRequestHandler
-
exportState
public void exportState(java.io.DataOutputStream daos, int max) throws java.io.IOException
- Specified by:
exportState
in interfaceDHTControl
- Throws:
java.io.IOException
-
importState
public void importState(java.io.DataInputStream dais) throws java.io.IOException
- Specified by:
importState
in interfaceDHTControl
- Throws:
java.io.IOException
-
seed
public void seed(boolean full_wait)
- Specified by:
seed
in interfaceDHTControl
-
isSeeded
public boolean isSeeded()
- Specified by:
isSeeded
in interfaceDHTControl
-
setSeeded
public void setSeeded()
Description copied from interface:DHTControl
Manually mark things as seeded- Specified by:
setSeeded
in interfaceDHTControl
-
poke
protected void poke()
-
put
public void put(byte[] _unencoded_key, java.lang.String _description, byte[] _value, short _flags, byte _life_hours, byte _replication_control, boolean _high_priority, DHTOperationListener _listener)
- Specified by:
put
in interfaceDHTControl
-
putEncodedKey
public void putEncodedKey(byte[] encoded_key, java.lang.String description, DHTTransportValue value, long timeout, boolean original_mappings)
- Specified by:
putEncodedKey
in interfaceDHTControl
-
put
protected void put(ThreadPool thread_pool, boolean high_priority, byte[] initial_encoded_key, java.lang.String description, DHTTransportValue value, short flags, long timeout, boolean original_mappings, java.util.Set things_written, int put_level, DHTControlImpl.DHTOperationListenerDemuxer listener)
-
put
protected void put(ThreadPool thread_pool, boolean high_priority, byte[] initial_encoded_key, java.lang.String description, DHTTransportValue[] values, short flags, long timeout, boolean original_mappings, java.util.Set things_written, int put_level, DHTControlImpl.DHTOperationListenerDemuxer listener)
-
putDirectEncodedKeys
public void putDirectEncodedKeys(byte[][] encoded_keys, java.lang.String description, DHTTransportValue[][] value_sets, java.util.List<DHTTransportContact> contacts)
- Specified by:
putDirectEncodedKeys
in interfaceDHTControl
-
putDirectEncodedKeys
public void putDirectEncodedKeys(byte[][] encoded_keys, java.lang.String description, DHTTransportValue[][] value_sets, DHTTransportContact contact, DHTOperationListener listener)
- Specified by:
putDirectEncodedKeys
in interfaceDHTControl
-
getObfuscatedKey
public byte[] getObfuscatedKey(byte[] plain_key)
- Specified by:
getObfuscatedKey
in interfaceDHTControl
-
getObfuscatedValue
protected byte[] getObfuscatedValue(byte[] plain_key)
-
getObfuscatedValue
protected DHTTransportValue getObfuscatedValue(DHTTransportValue basis, byte[] plain_key)
-
put
protected void put(ThreadPool thread_pool, boolean high_priority, byte[][] initial_encoded_keys, java.lang.String description, DHTTransportValue[][] initial_value_sets, short flags, java.util.List<DHTTransportContact> contacts, long timeout, DHTControlImpl.DHTOperationListenerDemuxer listener, boolean consider_diversification, java.util.Set things_written, int put_level, boolean immediate)
-
getMaxDivDepth
protected int getMaxDivDepth()
-
logDiversification
protected void logDiversification(DHTTransportContact contact, byte[][] keys, byte[][] div)
-
getLocalValue
public DHTTransportValue getLocalValue(byte[] unencoded_key)
- Specified by:
getLocalValue
in interfaceDHTControl
-
getStoredValues
public java.util.List<DHTTransportValue> getStoredValues(byte[] unencoded_key)
- Specified by:
getStoredValues
in interfaceDHTControl
-
get
public void get(byte[] unencoded_key, java.lang.String description, short flags, int max_values, long timeout, boolean exhaustive, boolean high_priority, DHTOperationListener get_listener)
- Specified by:
get
in interfaceDHTControl
-
isDiversified
public boolean isDiversified(byte[] unencoded_key)
- Specified by:
isDiversified
in interfaceDHTControl
-
lookup
public boolean lookup(byte[] unencoded_key, java.lang.String description, long timeout, DHTOperationListener lookup_listener)
- Specified by:
lookup
in interfaceDHTControl
-
lookupEncoded
public boolean lookupEncoded(byte[] encoded_key, java.lang.String description, long timeout, boolean high_priority, DHTOperationListener lookup_listener)
- Specified by:
lookupEncoded
in interfaceDHTControl
-
getSupport
protected DHTControlImpl.DhtTaskSet getSupport(byte[] initial_encoded_key, java.lang.String description, short flags, int max_values, long timeout, boolean exhaustive, boolean high_priority, DHTControlImpl.DHTOperationListenerDemuxer get_listener)
-
remove
public byte[] remove(byte[] unencoded_key, java.lang.String description, DHTOperationListener listener)
- Specified by:
remove
in interfaceDHTControl
-
remove
public byte[] remove(DHTTransportContact[] contacts, byte[] unencoded_key, java.lang.String description, DHTOperationListener listener)
- Specified by:
remove
in interfaceDHTControl
-
lookup
protected DHTControlImpl.DhtTask lookup(ThreadPool thread_pool, boolean high_priority, byte[] _lookup_id, java.lang.String description, short flags, boolean value_search, long timeout, int concurrency, int max_values, int search_accuracy, DHTControlImpl.lookupResultHandler handler)
The lookup method returns up to K closest nodes to the target
-
pingRequest
public void pingRequest(DHTTransportContact originating_contact)
- Specified by:
pingRequest
in interfaceDHTTransportRequestHandler
-
keyBlockRequest
public void keyBlockRequest(DHTTransportContact originating_contact, byte[] request, byte[] sig)
- Specified by:
keyBlockRequest
in interfaceDHTTransportRequestHandler
-
storeRequest
public DHTTransportStoreReply storeRequest(DHTTransportContact originating_contact, byte[][] keys, DHTTransportValue[][] value_sets)
- Specified by:
storeRequest
in interfaceDHTTransportRequestHandler
-
queryStoreRequest
public DHTTransportQueryStoreReply queryStoreRequest(DHTTransportContact originating_contact, int header_len, java.util.List<java.lang.Object[]> keys)
- Specified by:
queryStoreRequest
in interfaceDHTTransportRequestHandler
-
findNodeRequest
public DHTTransportContact[] findNodeRequest(DHTTransportContact originating_contact, byte[] id)
- Specified by:
findNodeRequest
in interfaceDHTTransportRequestHandler
-
findNodeRequest
private DHTTransportContact[] findNodeRequest(DHTTransportContact originating_contact, byte[] id, boolean already_logged)
-
findValueRequest
public DHTTransportFindValueReply findValueRequest(DHTTransportContact originating_contact, byte[] key, int max_values, short flags)
- Specified by:
findValueRequest
in interfaceDHTTransportRequestHandler
-
statsRequest
public DHTTransportFullStats statsRequest(DHTTransportContact contact)
- Specified by:
statsRequest
in interfaceDHTTransportRequestHandler
-
requestPing
protected void requestPing(DHTRouterContact contact)
-
nodeAddedToRouter
protected void nodeAddedToRouter(DHTRouterContact new_contact)
-
getClosestContactsSet
protected java.util.Set<DHTTransportContact> getClosestContactsSet(byte[] id, int num_to_return, boolean live_only)
-
getClosestKContactsList
public java.util.List<DHTTransportContact> getClosestKContactsList(byte[] id, boolean live_only)
- Specified by:
getClosestKContactsList
in interfaceDHTControl
-
getClosestContactsList
public java.util.List<DHTTransportContact> getClosestContactsList(byte[] id, int num_to_return, boolean live_only)
- Specified by:
getClosestContactsList
in interfaceDHTControl
-
isIDInClosestContacts
protected boolean isIDInClosestContacts(byte[] test_id, byte[] target_id, int num_to_consider, boolean live_only)
-
encodeKey
protected byte[] encodeKey(byte[] key)
-
computeAndCompareDistances
public int computeAndCompareDistances(byte[] t1, byte[] t2, byte[] pivot)
- Specified by:
computeAndCompareDistances
in interfaceDHTControl
-
computeAndCompareDistances2
protected static int computeAndCompareDistances2(byte[] t1, byte[] t2, byte[] pivot)
-
computeDistance
public byte[] computeDistance(byte[] n1, byte[] n2)
- Specified by:
computeDistance
in interfaceDHTControl
-
computeDistance2
protected static byte[] computeDistance2(byte[] n1, byte[] n2)
-
compareDistances
public int compareDistances(byte[] n1, byte[] n2)
-ve -> n1 < n2- Specified by:
compareDistances
in interfaceDHTControl
-
compareDistances2
protected static int compareDistances2(byte[] n1, byte[] n2)
-
addListener
public void addListener(DHTControlListener l)
- Specified by:
addListener
in interfaceDHTControl
-
removeListener
public void removeListener(DHTControlListener l)
- Specified by:
removeListener
in interfaceDHTControl
-
getActivities
public DHTControlActivity[] getActivities()
- Specified by:
getActivities
in interfaceDHTControl
-
setTransportEstimatedDHTSize
public void setTransportEstimatedDHTSize(int size)
- Specified by:
setTransportEstimatedDHTSize
in interfaceDHTTransportRequestHandler
-
getTransportEstimatedDHTSize
public int getTransportEstimatedDHTSize()
- Specified by:
getTransportEstimatedDHTSize
in interfaceDHTTransportRequestHandler
-
getEstimatedDHTSize
public int getEstimatedDHTSize()
-
estimateDHTSize
protected void estimateDHTSize(byte[] id, java.util.List<DHTTransportContact> contacts, int contacts_to_use)
-
IDToBigInteger
protected java.math.BigInteger IDToBigInteger(byte[] data)
-
generateSpoofID
private int generateSpoofID(DHTTransportContact contact)
-
generateSpoofID2
private byte[] generateSpoofID2(DHTTransportContact contact)
-
verifyContact
public boolean verifyContact(DHTTransportContact c, boolean direct)
- Specified by:
verifyContact
in interfaceDHTControl
-
getContacts
public java.util.List<DHTControlContact> getContacts()
- Specified by:
getContacts
in interfaceDHTControl
-
pingAll
public void pingAll()
- Specified by:
pingAll
in interfaceDHTControl
-
destroy
public void destroy()
- Specified by:
destroy
in interfaceDHTControl
-
print
public void print(boolean full)
- Specified by:
print
in interfaceDHTControl
-
-