|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.aelitis.azureus.core.dht.db.impl.DHTDBImpl
public class DHTDBImpl
Nested Class Summary | |
---|---|
protected class |
DHTDBImpl.adapterFacade
|
protected static class |
DHTDBImpl.SurveyContactState
|
Field Summary | |
---|---|
static int |
ORIGINAL_REPUBLISH_INTERVAL_GRACE
|
protected static int |
QUERY_STORE_REPLY_ENTRY_SIZE
|
protected static int |
QUERY_STORE_REQUEST_ENTRY_SIZE
|
Fields inherited from interface com.aelitis.azureus.core.dht.db.DHTDBStats |
---|
VD_DIRECT_SIZE, VD_DIV_FREQ, VD_DIV_SIZE, VD_INDIRECT_SIZE, VD_LOCAL_SIZE, VD_VALUE_COUNT |
Constructor Summary | |
---|---|
DHTDBImpl(DHTStorageAdapter _adapter,
int _original_republish_interval,
int _cache_republish_interval,
byte _protocol_version,
DHTLogger _logger)
|
Method Summary | |
---|---|
protected void |
addToPrefixMap(DHTDBMapping mapping)
|
protected boolean |
applyRF(DHTDBMapping mapping)
|
protected void |
banContact(DHTTransportContact contact,
java.lang.String reason)
|
protected void |
checkCacheExpiration(boolean force)
|
protected void |
checkPreciousStuff()
|
protected void |
decrementValueAdds(DHTTransportContact contact)
|
void |
destroy()
|
protected void |
doQuery(byte[] survey_my_id,
int total,
java.util.Map<DHTDBMapping,java.util.List<DHTTransportContact>> mapping_to_node_map,
java.util.LinkedList<java.util.Map.Entry<DHTTransportContact,ByteArrayHashMap<java.util.List<DHTDBMapping>>>> to_do,
java.util.Map<DHTTransportContact,java.lang.Object[]> replies,
DHTTransportContact done_contact,
java.util.List<DHTDBMapping> done_mappings,
java.util.List<byte[]> done_reply)
|
DHTDBLookupResult |
get(DHTTransportContact reader,
HashWrapper key,
int max_values,
short flags,
boolean external_request)
|
DHTDBValue |
get(HashWrapper key)
Internal lookup for locally originated values |
protected DHTStorageAdapter |
getAdapter()
|
java.util.List<DHTDBValue> |
getAllValues(HashWrapper key)
|
DHTDBValue |
getAnyValue(HashWrapper key)
Returns a value for the given key (local or remote) if found |
DHTStorageBlock[] |
getDirectKeyBlocks()
|
int |
getKeyBlockCount()
|
DHTStorageBlock |
getKeyBlockDetails(byte[] key)
|
int |
getKeyCount()
|
java.util.Iterator<HashWrapper> |
getKeys()
Returns an iterator over HashWrapper values denoting the snapshot of keys Thus by the time a key is used the entry may no longer exist |
protected DHTTransportContact |
getLocalContact()
|
int |
getLocalKeyCount()
|
protected int |
getNextValueVersion()
|
int |
getSize()
|
DHTDBStats |
getStats()
|
int |
getValueCount()
|
int[] |
getValueDetails()
returned values indexed by above VD_ constants for meaning |
boolean |
hasKey(HashWrapper key)
|
protected void |
incrementValueAdds(DHTTransportContact contact)
|
boolean |
isEmpty()
|
boolean |
isKeyBlocked(byte[] key)
|
DHTStorageBlock |
keyBlockRequest(DHTTransportContact direct_sender,
byte[] request,
byte[] signature)
|
protected void |
log(java.lang.String str)
|
void |
print(boolean full)
|
protected void |
processSurvey(byte[] survey_my_id,
java.util.List<HashWrapper> applicable_keys,
ByteArrayHashMap<DHTTransportContact> survey)
|
protected void |
queriesComplete(byte[] survey_my_id,
java.util.Map<DHTDBMapping,java.util.List<DHTTransportContact>> mapping_to_node_map,
java.util.Map<DHTTransportContact,java.lang.Object[]> replies)
|
DHTTransportQueryStoreReply |
queryStore(DHTTransportContact originating_contact,
int header_len,
java.util.List<java.lang.Object[]> keys)
|
protected void |
rebuildIPBloomFilter(boolean increase_size)
|
DHTDBValue |
remove(DHTTransportContact originator,
HashWrapper key)
Local remove - returns a value suitable for putting in the DHT |
protected void |
removeFromPrefixMap(DHTDBMapping mapping)
|
protected void |
reportSizes(java.lang.String op)
|
protected int[] |
republishCachedMappings()
|
protected int |
republishOriginalMappings()
|
void |
setControl(DHTControl _control)
|
void |
setSleeping(boolean asleep)
|
void |
setSuspended(boolean susp)
|
byte |
store(DHTTransportContact sender,
HashWrapper key,
DHTTransportValue[] values)
Remote store |
DHTDBValue |
store(HashWrapper key,
byte[] value,
short flags,
byte life_hours,
byte replication_control)
Local store |
protected void |
survey()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int ORIGINAL_REPUBLISH_INTERVAL_GRACE
protected static final int QUERY_STORE_REQUEST_ENTRY_SIZE
protected static final int QUERY_STORE_REPLY_ENTRY_SIZE
Constructor Detail |
---|
public DHTDBImpl(DHTStorageAdapter _adapter, int _original_republish_interval, int _cache_republish_interval, byte _protocol_version, DHTLogger _logger)
Method Detail |
---|
public void setControl(DHTControl _control)
setControl
in interface DHTDB
public DHTDBValue store(HashWrapper key, byte[] value, short flags, byte life_hours, byte replication_control)
DHTDB
store
in interface DHTDB
public byte store(DHTTransportContact sender, HashWrapper key, DHTTransportValue[] values)
DHTDB
store
in interface DHTDB
public DHTDBLookupResult get(DHTTransportContact reader, HashWrapper key, int max_values, short flags, boolean external_request)
get
in interface DHTDB
public DHTDBValue get(HashWrapper key)
DHTDB
get
in interface DHTDB
public DHTDBValue getAnyValue(HashWrapper key)
DHTDB
getAnyValue
in interface DHTDB
public java.util.List<DHTDBValue> getAllValues(HashWrapper key)
getAllValues
in interface DHTDB
public boolean hasKey(HashWrapper key)
hasKey
in interface DHTDB
public DHTDBValue remove(DHTTransportContact originator, HashWrapper key)
DHTDB
remove
in interface DHTDB
public DHTStorageBlock keyBlockRequest(DHTTransportContact direct_sender, byte[] request, byte[] signature)
keyBlockRequest
in interface DHTDB
public DHTStorageBlock getKeyBlockDetails(byte[] key)
getKeyBlockDetails
in interface DHTDB
public boolean isKeyBlocked(byte[] key)
isKeyBlocked
in interface DHTDB
public DHTStorageBlock[] getDirectKeyBlocks()
getDirectKeyBlocks
in interface DHTDB
public boolean isEmpty()
isEmpty
in interface DHTDB
public int getKeyCount()
getKeyCount
in interface DHTDBStats
public int getLocalKeyCount()
getLocalKeyCount
in interface DHTDBStats
public int getValueCount()
getValueCount
in interface DHTDBStats
public int getSize()
getSize
in interface DHTDBStats
public int[] getValueDetails()
DHTDBStats
getValueDetails
in interface DHTDBStats
public int getKeyBlockCount()
getKeyBlockCount
in interface DHTDBStats
public java.util.Iterator<HashWrapper> getKeys()
DHTDB
getKeys
in interface DHTDB
protected int republishOriginalMappings()
protected int[] republishCachedMappings()
protected void checkCacheExpiration(boolean force)
protected void addToPrefixMap(DHTDBMapping mapping)
protected void removeFromPrefixMap(DHTDBMapping mapping)
protected void checkPreciousStuff()
protected DHTTransportContact getLocalContact()
protected DHTStorageAdapter getAdapter()
protected void log(java.lang.String str)
public DHTDBStats getStats()
getStats
in interface DHTDB
protected void survey()
protected void processSurvey(byte[] survey_my_id, java.util.List<HashWrapper> applicable_keys, ByteArrayHashMap<DHTTransportContact> survey)
protected boolean applyRF(DHTDBMapping mapping)
protected void doQuery(byte[] survey_my_id, int total, java.util.Map<DHTDBMapping,java.util.List<DHTTransportContact>> mapping_to_node_map, java.util.LinkedList<java.util.Map.Entry<DHTTransportContact,ByteArrayHashMap<java.util.List<DHTDBMapping>>>> to_do, java.util.Map<DHTTransportContact,java.lang.Object[]> replies, DHTTransportContact done_contact, java.util.List<DHTDBMapping> done_mappings, java.util.List<byte[]> done_reply)
protected void queriesComplete(byte[] survey_my_id, java.util.Map<DHTDBMapping,java.util.List<DHTTransportContact>> mapping_to_node_map, java.util.Map<DHTTransportContact,java.lang.Object[]> replies)
public void setSleeping(boolean asleep)
setSleeping
in interface DHTDB
public void setSuspended(boolean susp)
setSuspended
in interface DHTDB
public DHTTransportQueryStoreReply queryStore(DHTTransportContact originating_contact, int header_len, java.util.List<java.lang.Object[]> keys)
queryStore
in interface DHTDB
public void print(boolean full)
print
in interface DHTDB
protected void banContact(DHTTransportContact contact, java.lang.String reason)
protected void incrementValueAdds(DHTTransportContact contact)
protected void decrementValueAdds(DHTTransportContact contact)
protected void rebuildIPBloomFilter(boolean increase_size)
protected void reportSizes(java.lang.String op)
protected int getNextValueVersion()
public void destroy()
destroy
in interface DHTDB
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |