ibrcommon::BloomFilter Class Reference

#include <BloomFilter.h>

List of all members.

Public Member Functions

 BloomFilter (std::size_t table_size=512, std::size_t salt_count=5)
 BloomFilter (const BloomFilter &filter)
 ~BloomFilter ()
void load (const cell_type *data, size_t len)
BloomFilteroperator= (const BloomFilter &filter)
bool operator! () const
void clear ()
void insert (const unsigned char *key_begin, const std::size_t length)
template<typename T>
void insert (const T &t)
void insert (const std::string &key)
void insert (const char *data, const std::size_t &length)
template<typename InputIterator>
void insert (const InputIterator begin, const InputIterator end)
virtual bool contains (const unsigned char *key_begin, const std::size_t length) const
template<typename T>
bool contains (const T &t) const
bool contains (const std::string &key) const
bool contains (const char *data, const std::size_t &length) const
template<typename InputIterator>
InputIterator contains_all (const InputIterator begin, const InputIterator end) const
template<typename InputIterator>
InputIterator contains_none (const InputIterator begin, const InputIterator end) const
virtual std::size_t size () const
BloomFilteroperator &= (const BloomFilter &filter)
BloomFilteroperator|= (const BloomFilter &filter)
BloomFilteroperator^= (const BloomFilter &filter)
const cell_typetable () const

Protected Member Functions

virtual void compute_indices (const bloom_type &hash, std::size_t &bit_index, std::size_t &bit) const

Protected Attributes

DefaultHashProvider _hashp
unsigned char * bit_table_
std::size_t table_size_

Static Protected Attributes

static const std::size_t bits_per_char = 0x08
static const unsigned char bit_mask [bits_per_char]


Detailed Description

Definition at line 59 of file BloomFilter.h.


Constructor & Destructor Documentation

ibrcommon::BloomFilter::BloomFilter ( std::size_t  table_size = 512,
std::size_t  salt_count = 5 
)

Definition at line 117 of file BloomFilter.cpp.

References bit_table_, bits_per_char, and table_size_.

ibrcommon::BloomFilter::BloomFilter ( const BloomFilter filter  ) 

Definition at line 124 of file BloomFilter.cpp.

References bit_table_, bits_per_char, and table_size_.

ibrcommon::BloomFilter::~BloomFilter (  ) 

Definition at line 131 of file BloomFilter.cpp.

References bit_table_.


Member Function Documentation

void ibrcommon::BloomFilter::load ( const cell_type data,
size_t  len 
)

Definition at line 262 of file BloomFilter.cpp.

References bit_table_, and table_size_.

Referenced by dtn::routing::operator>>().

BloomFilter & ibrcommon::BloomFilter::operator= ( const BloomFilter filter  ) 

Definition at line 136 of file BloomFilter.cpp.

References _hashp, bit_table_, bits_per_char, and table_size_.

bool ibrcommon::BloomFilter::operator! (  )  const

Definition at line 146 of file BloomFilter.cpp.

References table_size_.

void ibrcommon::BloomFilter::clear (  ) 

Definition at line 151 of file BloomFilter.cpp.

References bit_table_, bits_per_char, and table_size_.

Referenced by dtn::routing::SummaryVector::clear().

void ibrcommon::BloomFilter::insert ( const unsigned char *  key_begin,
const std::size_t  length 
)

template<typename T>
void ibrcommon::BloomFilter::insert ( const T &  t  )  [inline]

Definition at line 80 of file BloomFilter.h.

References insert().

void ibrcommon::BloomFilter::insert ( const std::string &  key  ) 

Definition at line 170 of file BloomFilter.cpp.

References insert().

void ibrcommon::BloomFilter::insert ( const char *  data,
const std::size_t &  length 
)

Definition at line 175 of file BloomFilter.cpp.

References insert().

template<typename InputIterator>
void ibrcommon::BloomFilter::insert ( const InputIterator  begin,
const InputIterator  end 
) [inline]

Definition at line 90 of file BloomFilter.h.

References insert().

bool ibrcommon::BloomFilter::contains ( const unsigned char *  key_begin,
const std::size_t  length 
) const [virtual]

template<typename T>
bool ibrcommon::BloomFilter::contains ( const T &  t  )  const [inline]

Definition at line 102 of file BloomFilter.h.

References contains().

bool ibrcommon::BloomFilter::contains ( const std::string &  key  )  const

Definition at line 199 of file BloomFilter.cpp.

References contains().

bool ibrcommon::BloomFilter::contains ( const char *  data,
const std::size_t &  length 
) const

Definition at line 204 of file BloomFilter.cpp.

References contains().

template<typename InputIterator>
InputIterator ibrcommon::BloomFilter::contains_all ( const InputIterator  begin,
const InputIterator  end 
) const [inline]

Definition at line 112 of file BloomFilter.h.

References contains().

template<typename InputIterator>
InputIterator ibrcommon::BloomFilter::contains_none ( const InputIterator  begin,
const InputIterator  end 
) const [inline]

Definition at line 127 of file BloomFilter.h.

References contains().

std::size_t ibrcommon::BloomFilter::size (  )  const [virtual]

Definition at line 209 of file BloomFilter.cpp.

References bits_per_char, and table_size_.

Referenced by dtn::routing::SummaryVector::getLength(), and dtn::routing::operator<<().

BloomFilter & ibrcommon::BloomFilter::operator &= ( const BloomFilter filter  ) 

Definition at line 214 of file BloomFilter.cpp.

References _hashp, bit_table_, bits_per_char, and table_size_.

BloomFilter & ibrcommon::BloomFilter::operator|= ( const BloomFilter filter  ) 

Definition at line 230 of file BloomFilter.cpp.

References _hashp, bit_table_, bits_per_char, and table_size_.

BloomFilter & ibrcommon::BloomFilter::operator^= ( const BloomFilter filter  ) 

Definition at line 246 of file BloomFilter.cpp.

References _hashp, bit_table_, bits_per_char, and table_size_.

const cell_type * ibrcommon::BloomFilter::table (  )  const

Definition at line 274 of file BloomFilter.cpp.

References bit_table_.

Referenced by dtn::routing::operator<<().

void ibrcommon::BloomFilter::compute_indices ( const bloom_type hash,
std::size_t &  bit_index,
std::size_t &  bit 
) const [protected, virtual]

Definition at line 279 of file BloomFilter.cpp.

References bits_per_char, and table_size_.

Referenced by contains(), and insert().


Member Data Documentation

const std::size_t ibrcommon::BloomFilter::bits_per_char = 0x08 [static, protected]

const unsigned char ibrcommon::BloomFilter::bit_mask [static, protected]

Initial value:

 {
                                                                                                                   0x01,  
                                                                                                                   0x02,  
                                                                                                                   0x04,  
                                                                                                                   0x08,  
                                                                                                                   0x10,  
                                                                                                                   0x20,  
                                                                                                                   0x40,  
                                                                                                                   0x80   
                                                                                                                 }

Definition at line 63 of file BloomFilter.h.

Referenced by contains(), and insert().

Definition at line 151 of file BloomFilter.h.

Referenced by contains(), insert(), operator &=(), operator=(), operator^=(), and operator|=().

unsigned char* ibrcommon::BloomFilter::bit_table_ [protected]

std::size_t ibrcommon::BloomFilter::table_size_ [protected]


The documentation for this class was generated from the following files:

Generated on Fri Jul 30 09:15:36 2010 for IBR-DTNSuite by  doxygen 1.5.6