net.i2p.util
public class DecayingBloomFilter extends Object
Modifier and Type | Field and Description |
---|---|
protected I2PAppContext |
_context |
protected long |
_currentDuplicates |
protected SimpleTimer.TimedEvent |
_decayEvent |
protected int |
_durationMs |
protected int |
_entryBytes |
protected boolean |
_keepDecaying |
protected Log |
_log |
protected String |
_name
just for logging
|
Modifier | Constructor and Description |
---|---|
|
DecayingBloomFilter(I2PAppContext context,
int durationMs,
int entryBytes)
Create a bloom filter that will decay its entries over time.
|
|
DecayingBloomFilter(I2PAppContext context,
int durationMs,
int entryBytes,
String name) |
|
DecayingBloomFilter(I2PAppContext context,
int durationMs,
int entryBytes,
String name,
int m) |
protected |
DecayingBloomFilter(int durationMs,
int entryBytes,
String name,
I2PAppContext context)
only for extension by DHS
|
Modifier and Type | Method and Description |
---|---|
boolean |
add(byte[] entry) |
boolean |
add(byte[] entry,
int off,
int len) |
boolean |
add(long entry) |
void |
clear() |
long |
getCurrentDuplicateCount() |
double |
getFalsePositiveRate() |
int |
getInsertedCount() |
boolean |
isKnown(long entry) |
static void |
main(String[] args)
This filter is used only for participants and OBEPs, not
IBGWs, so depending on your assumptions of avg.
|
void |
stopDecaying() |
protected final I2PAppContext _context
protected final Log _log
protected final int _durationMs
protected final int _entryBytes
protected long _currentDuplicates
protected volatile boolean _keepDecaying
protected SimpleTimer.TimedEvent _decayEvent
protected final String _name
protected DecayingBloomFilter(int durationMs, int entryBytes, String name, I2PAppContext context)
public DecayingBloomFilter(I2PAppContext context, int durationMs, int entryBytes)
durationMs
- entries last for at least this long, but no more than twice this longentryBytes
- how large are the entries to be added? if this is less than 32 bytes,
the entries added will be expanded by concatenating their XORing
against with sufficient random values.public DecayingBloomFilter(I2PAppContext context, int durationMs, int entryBytes, String name)
name
- just for logging / debugging / statspublic DecayingBloomFilter(I2PAppContext context, int durationMs, int entryBytes, String name, int m)
m
- filter size exponentpublic long getCurrentDuplicateCount()
public int getInsertedCount()
public double getFalsePositiveRate()
public boolean add(byte[] entry)
public boolean add(byte[] entry, int off, int len)
public boolean add(long entry)
public boolean isKnown(long entry)
public void clear()
public void stopDecaying()
public static void main(String[] args)