|
|||||||||
| 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 DHTDBpublic DHTDBValue get(HashWrapper key)
DHTDB
get in interface DHTDBpublic DHTDBValue getAnyValue(HashWrapper key)
DHTDB
getAnyValue in interface DHTDBpublic java.util.List<DHTDBValue> getAllValues(HashWrapper key)
getAllValues in interface DHTDBpublic 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 DHTDBpublic DHTStorageBlock getKeyBlockDetails(byte[] key)
getKeyBlockDetails in interface DHTDBpublic boolean isKeyBlocked(byte[] key)
isKeyBlocked in interface DHTDBpublic DHTStorageBlock[] getDirectKeyBlocks()
getDirectKeyBlocks in interface DHTDBpublic boolean isEmpty()
isEmpty in interface DHTDBpublic int getKeyCount()
getKeyCount in interface DHTDBStatspublic int getLocalKeyCount()
getLocalKeyCount in interface DHTDBStatspublic int getValueCount()
getValueCount in interface DHTDBStatspublic int getSize()
getSize in interface DHTDBStatspublic int[] getValueDetails()
DHTDBStats
getValueDetails in interface DHTDBStatspublic int getKeyBlockCount()
getKeyBlockCount in interface DHTDBStatspublic java.util.Iterator<HashWrapper> getKeys()
DHTDB
getKeys in interface DHTDBprotected 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 DHTDBprotected 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 DHTDBpublic 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 DHTDBpublic 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 | ||||||||