Package com.biglybt.plugin.dht.impl
Class DHTPluginImpl
- java.lang.Object
-
- com.biglybt.plugin.dht.impl.DHTPluginImpl
-
- All Implemented Interfaces:
DHTPluginInterface.DHTInterface
public class DHTPluginImpl extends java.lang.Object implements DHTPluginInterface.DHTInterface
-
-
Field Summary
Fields Modifier and Type Field Description private DHT
dht
private DHTLogger
dht_log
private java.util.Map<DHTPluginTransferHandler,DHTTransportTransferHandler>
handler_map
private long
last_root_seed_import_time
private LoggerChannel
log
private static long
MIN_ROOT_SEED_IMPORT_PERIOD
private int
network
private PluginInterface
plugin_interface
private int
port
private byte
protocol_version
private ActionParameter
reseed_param
private static java.lang.String
SEED_ADDRESS_V4
private static java.lang.String
SEED_ADDRESS_V6
private static int
SEED_PORT
private int
stats_ticks
private int
status
private java.lang.String
status_text
private DHTPluginStorageManager
storage_manager
private DHTTransportUDP
transport
private boolean
v6
private BooleanParameter
warn_user_param
-
Constructor Summary
Constructors Constructor Description DHTPluginImpl(PluginInterface _plugin_interface, DHTNATPuncherAdapter _nat_adapter, DHTPluginImplAdapter _adapter, byte _protocol_version, int _network, boolean _v6, java.lang.String _ip, int _port, ActionParameter _reseed, BooleanParameter _warn_user_param, boolean _logging, LoggerChannel _log, DHTLogger _dht_log)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]
call(DHTPluginProgressListener listener, DHTPluginContact target, byte[] handler_key, byte[] data, long timeout)
void
checkForReSeed(boolean force)
private java.net.InetSocketAddress
checkResolve(java.net.InetSocketAddress isa)
void
closedownInitiated()
DHTPluginKeyStats
decodeStats(DHTPluginValue value)
void
get(byte[] key, java.lang.String description, byte flags, int max_values, long timeout, boolean exhaustive, boolean high_priority, DHTPluginOperationListener listener)
long
getClockSkew()
java.util.List<DHTPluginContact>
getClosestContacts(byte[] to_id, boolean live_only)
protected java.io.File
getDataDir(int network)
DHT
getDHT()
byte[]
getID()
DHTPluginContact
getLocalAddress()
DHTPluginValue
getLocalValue(byte[] key)
int
getNetwork()
int
getPort()
DHTPluginContact[]
getReachableContacts()
DHTPluginContact[]
getRecentContacts()
protected java.net.InetSocketAddress
getSeedAddress()
int
getStatus()
java.lang.String
getStatusText()
java.util.List<DHTPluginValue>
getValues()
java.util.List<DHTPluginValue>
getValues(byte[] key)
DHTPluginContact
importContact(java.net.InetSocketAddress address)
DHTPluginContact
importContact(java.net.InetSocketAddress address, byte version)
DHTPluginContact
importContact(java.util.Map<java.lang.String,java.lang.Object> map)
protected DHTTransportContact
importRootSeed()
DHTTransportContact
importSeed(java.lang.String ip, int port)
protected DHTTransportContact
importSeed(java.net.InetAddress ia, int port)
protected DHTTransportContact
importSeed(java.net.InetSocketAddress ia)
void
integrateDHT(boolean first, DHTTransportContact remove_afterwards)
boolean
isDiversified(byte[] key)
boolean
isIPV6()
boolean
isReachable()
boolean
isRecentAddress(java.lang.String address)
void
logStats()
protected DHTPluginValue
mapValue(DHTTransportValue value)
void
put(byte[] key, java.lang.String description, byte[] value, byte flags, boolean high_priority, DHTPluginOperationListener listener)
void
put(byte[] key, java.lang.String description, byte[] value, byte flags, DHTPluginOperationListener listener)
byte[]
read(DHTPluginProgressListener listener, DHTPluginContact target, byte[] handler_key, byte[] key, long timeout)
void
registerHandler(byte[] handler_key, DHTPluginTransferHandler handler, java.util.Map<java.lang.String,java.lang.Object> options)
void
remove(byte[] key, java.lang.String description, DHTPluginOperationListener listener)
void
remove(DHTPluginContact[] targets, byte[] key, java.lang.String description, DHTPluginOperationListener listener)
void
setLogging(boolean l)
void
setPort(int new_port)
void
setSuspended(boolean susp)
void
tick()
void
unregisterHandler(byte[] handler_key, DHTPluginTransferHandler handler)
void
updateStats(int sample_stats_ticks)
void
write(DHTPluginProgressListener listener, DHTPluginContact target, byte[] handler_key, byte[] key, byte[] data, long timeout)
-
-
-
Field Detail
-
SEED_ADDRESS_V4
private static final java.lang.String SEED_ADDRESS_V4
- See Also:
- Constant Field Values
-
SEED_ADDRESS_V6
private static final java.lang.String SEED_ADDRESS_V6
- See Also:
- Constant Field Values
-
SEED_PORT
private static final int SEED_PORT
- See Also:
- Constant Field Values
-
MIN_ROOT_SEED_IMPORT_PERIOD
private static final long MIN_ROOT_SEED_IMPORT_PERIOD
- See Also:
- Constant Field Values
-
plugin_interface
private PluginInterface plugin_interface
-
status
private int status
-
status_text
private java.lang.String status_text
-
reseed_param
private ActionParameter reseed_param
-
warn_user_param
private BooleanParameter warn_user_param
-
dht
private DHT dht
-
port
private int port
-
protocol_version
private byte protocol_version
-
network
private int network
-
v6
private boolean v6
-
transport
private DHTTransportUDP transport
-
storage_manager
private DHTPluginStorageManager storage_manager
-
last_root_seed_import_time
private long last_root_seed_import_time
-
log
private LoggerChannel log
-
dht_log
private DHTLogger dht_log
-
stats_ticks
private int stats_ticks
-
handler_map
private java.util.Map<DHTPluginTransferHandler,DHTTransportTransferHandler> handler_map
-
-
Constructor Detail
-
DHTPluginImpl
public DHTPluginImpl(PluginInterface _plugin_interface, DHTNATPuncherAdapter _nat_adapter, DHTPluginImplAdapter _adapter, byte _protocol_version, int _network, boolean _v6, java.lang.String _ip, int _port, ActionParameter _reseed, BooleanParameter _warn_user_param, boolean _logging, LoggerChannel _log, DHTLogger _dht_log)
-
-
Method Detail
-
updateStats
public void updateStats(int sample_stats_ticks)
-
getStatus
public int getStatus()
-
getStatusText
public java.lang.String getStatusText()
-
isReachable
public boolean isReachable()
-
setLogging
public void setLogging(boolean l)
-
tick
public void tick()
-
getPort
public int getPort()
-
setPort
public void setPort(int new_port)
-
getClockSkew
public long getClockSkew()
-
logStats
public void logStats()
-
getDataDir
protected java.io.File getDataDir(int network)
-
integrateDHT
public void integrateDHT(boolean first, DHTTransportContact remove_afterwards)
-
checkForReSeed
public void checkForReSeed(boolean force)
-
importRootSeed
protected DHTTransportContact importRootSeed()
-
importSeed
public DHTTransportContact importSeed(java.lang.String ip, int port)
-
importSeed
protected DHTTransportContact importSeed(java.net.InetAddress ia, int port)
-
importSeed
protected DHTTransportContact importSeed(java.net.InetSocketAddress ia)
-
getSeedAddress
protected java.net.InetSocketAddress getSeedAddress()
-
checkResolve
private java.net.InetSocketAddress checkResolve(java.net.InetSocketAddress isa)
-
isDiversified
public boolean isDiversified(byte[] key)
-
put
public void put(byte[] key, java.lang.String description, byte[] value, byte flags, DHTPluginOperationListener listener)
-
put
public void put(byte[] key, java.lang.String description, byte[] value, byte flags, boolean high_priority, DHTPluginOperationListener listener)
-
getLocalValue
public DHTPluginValue getLocalValue(byte[] key)
-
getValues
public java.util.List<DHTPluginValue> getValues()
-
getValues
public java.util.List<DHTPluginValue> getValues(byte[] key)
-
get
public void get(byte[] key, java.lang.String description, byte flags, int max_values, long timeout, boolean exhaustive, boolean high_priority, DHTPluginOperationListener listener)
-
remove
public void remove(byte[] key, java.lang.String description, DHTPluginOperationListener listener)
-
remove
public void remove(DHTPluginContact[] targets, byte[] key, java.lang.String description, DHTPluginOperationListener listener)
-
getLocalAddress
public DHTPluginContact getLocalAddress()
-
importContact
public DHTPluginContact importContact(java.util.Map<java.lang.String,java.lang.Object> map)
-
importContact
public DHTPluginContact importContact(java.net.InetSocketAddress address)
-
importContact
public DHTPluginContact importContact(java.net.InetSocketAddress address, byte version)
-
registerHandler
public void registerHandler(byte[] handler_key, DHTPluginTransferHandler handler, java.util.Map<java.lang.String,java.lang.Object> options)
-
unregisterHandler
public void unregisterHandler(byte[] handler_key, DHTPluginTransferHandler handler)
-
read
public byte[] read(DHTPluginProgressListener listener, DHTPluginContact target, byte[] handler_key, byte[] key, long timeout)
-
write
public void write(DHTPluginProgressListener listener, DHTPluginContact target, byte[] handler_key, byte[] key, byte[] data, long timeout)
-
call
public byte[] call(DHTPluginProgressListener listener, DHTPluginContact target, byte[] handler_key, byte[] data, long timeout)
-
getDHT
public DHT getDHT()
-
setSuspended
public void setSuspended(boolean susp)
-
closedownInitiated
public void closedownInitiated()
-
isRecentAddress
public boolean isRecentAddress(java.lang.String address)
-
mapValue
protected DHTPluginValue mapValue(DHTTransportValue value)
-
decodeStats
public DHTPluginKeyStats decodeStats(DHTPluginValue value)
-
getID
public byte[] getID()
- Specified by:
getID
in interfaceDHTPluginInterface.DHTInterface
-
isIPV6
public boolean isIPV6()
- Specified by:
isIPV6
in interfaceDHTPluginInterface.DHTInterface
-
getNetwork
public int getNetwork()
- Specified by:
getNetwork
in interfaceDHTPluginInterface.DHTInterface
-
getReachableContacts
public DHTPluginContact[] getReachableContacts()
- Specified by:
getReachableContacts
in interfaceDHTPluginInterface.DHTInterface
-
getRecentContacts
public DHTPluginContact[] getRecentContacts()
- Specified by:
getRecentContacts
in interfaceDHTPluginInterface.DHTInterface
-
getClosestContacts
public java.util.List<DHTPluginContact> getClosestContacts(byte[] to_id, boolean live_only)
- Specified by:
getClosestContacts
in interfaceDHTPluginInterface.DHTInterface
-
-