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::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::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().

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

Definition at line 204 of file BloomFilter.cpp.

References contains().

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

Definition at line 199 of file BloomFilter.cpp.

References contains().

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 unsigned char *  key_begin,
const std::size_t  length 
) const [virtual]
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().

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

Definition at line 90 of file BloomFilter.h.

References insert().

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

Definition at line 175 of file BloomFilter.cpp.

References insert().

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

Definition at line 170 of file BloomFilter.cpp.

References insert().

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 unsigned char *  key_begin,
const std::size_t  length 
)
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>>().

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

Definition at line 146 of file BloomFilter.cpp.

References table_size_.

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 136 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_.

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_.

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<<().

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

Definition at line 274 of file BloomFilter.cpp.

References bit_table_.

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


Member Data Documentation

Definition at line 151 of file BloomFilter.h.

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

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().

unsigned char* ibrcommon::BloomFilter::bit_table_ [protected]
const std::size_t ibrcommon::BloomFilter::bits_per_char = 0x08 [static, protected]
std::size_t ibrcommon::BloomFilter::table_size_ [protected]

The documentation for this class was generated from the following files:
Generated on Mon Aug 23 08:13:01 2010 for IBR-DTNSuite by  doxygen 1.6.3