JODA  0.13.1 (59b41972)
JSON On-Demand Analysis
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
bloom_filter Class Reference

#include <bloom_filter.hpp>

Inheritance diagram for bloom_filter:
[legend]
Collaboration diagram for bloom_filter:
[legend]

Public Member Functions

 bloom_filter ()
 
 bloom_filter (const bloom_parameters &p)
 
 bloom_filter (const bloom_filter &filter)
 
bool operator== (const bloom_filter &f) const
 
bool operator!= (const bloom_filter &f) const
 
bloom_filteroperator= (const bloom_filter &f)
 
virtual ~bloom_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 unsigned long long int size () const
 
unsigned long long int element_count () const
 
double effective_fpp () const
 
bloom_filteroperator&= (const bloom_filter &f)
 
bloom_filteroperator|= (const bloom_filter &f)
 
bloom_filteroperator^= (const bloom_filter &f)
 
const cell_typetable () const
 
std::size_t hash_count ()
 

Protected Types

typedef unsigned int bloom_type
 
typedef unsigned char cell_type
 
typedef std::vector< unsigned char > table_type
 

Protected Member Functions

virtual void compute_indices (const bloom_type &hash, std::size_t &bit_index, std::size_t &bit) const
 
void generate_unique_salt ()
 
bloom_type hash_ap (const unsigned char *begin, std::size_t remaining_length, bloom_type hash) const
 

Protected Attributes

std::vector< bloom_typesalt_
 
std::vector< unsigned char > bit_table_
 
unsigned int salt_count_
 
unsigned long long int table_size_
 
unsigned long long int projected_element_count_
 
unsigned long long int inserted_element_count_
 
unsigned long long int random_seed_
 
double desired_false_positive_probability_
 

Member Typedef Documentation

◆ bloom_type

typedef unsigned int bloom_filter::bloom_type
protected

◆ cell_type

typedef unsigned char bloom_filter::cell_type
protected

◆ table_type

typedef std::vector<unsigned char> bloom_filter::table_type
protected

Constructor & Destructor Documentation

◆ bloom_filter() [1/3]

bloom_filter::bloom_filter ( )
inline

◆ bloom_filter() [2/3]

bloom_filter::bloom_filter ( const bloom_parameters p)
inline
Here is the call graph for this function:

◆ bloom_filter() [3/3]

bloom_filter::bloom_filter ( const bloom_filter filter)
inline
Here is the call graph for this function:

◆ ~bloom_filter()

virtual bloom_filter::~bloom_filter ( )
inlinevirtual

Member Function Documentation

◆ clear()

void bloom_filter::clear ( )
inline

◆ compute_indices()

virtual void bloom_filter::compute_indices ( const bloom_type hash,
std::size_t &  bit_index,
std::size_t &  bit 
) const
inlineprotectedvirtual
Here is the caller graph for this function:

◆ contains() [1/4]

bool bloom_filter::contains ( const char *  data,
const std::size_t &  length 
) const
inline
Here is the call graph for this function:

◆ contains() [2/4]

bool bloom_filter::contains ( const std::string &  key) const
inline
Here is the call graph for this function:

◆ contains() [3/4]

template<typename T >
bool bloom_filter::contains ( const T &  t) const
inline
Here is the call graph for this function:

◆ contains() [4/4]

virtual bool bloom_filter::contains ( const unsigned char *  key_begin,
const std::size_t  length 
) const
inlinevirtual
Here is the call graph for this function:
Here is the caller graph for this function:

◆ contains_all()

template<typename InputIterator >
InputIterator bloom_filter::contains_all ( const InputIterator  begin,
const InputIterator  end 
) const
inline
Here is the call graph for this function:

◆ contains_none()

template<typename InputIterator >
InputIterator bloom_filter::contains_none ( const InputIterator  begin,
const InputIterator  end 
) const
inline
Here is the call graph for this function:

◆ effective_fpp()

double bloom_filter::effective_fpp ( ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ element_count()

unsigned long long int bloom_filter::element_count ( ) const
inline

◆ generate_unique_salt()

void bloom_filter::generate_unique_salt ( )
inlineprotected
Here is the caller graph for this function:

◆ hash_ap()

bloom_type bloom_filter::hash_ap ( const unsigned char *  begin,
std::size_t  remaining_length,
bloom_type  hash 
) const
inlineprotected
Here is the caller graph for this function:

◆ hash_count()

std::size_t bloom_filter::hash_count ( )
inline

◆ insert() [1/5]

void bloom_filter::insert ( const char *  data,
const std::size_t &  length 
)
inline
Here is the call graph for this function:

◆ insert() [2/5]

template<typename InputIterator >
void bloom_filter::insert ( const InputIterator  begin,
const InputIterator  end 
)
inline
Here is the call graph for this function:

◆ insert() [3/5]

void bloom_filter::insert ( const std::string &  key)
inline
Here is the call graph for this function:

◆ insert() [4/5]

template<typename T >
void bloom_filter::insert ( const T &  t)
inline
Here is the call graph for this function:

◆ insert() [5/5]

void bloom_filter::insert ( const unsigned char *  key_begin,
const std::size_t &  length 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator!()

bool bloom_filter::operator! ( ) const
inline

◆ operator!=()

bool bloom_filter::operator!= ( const bloom_filter f) const
inline
Here is the call graph for this function:

◆ operator&=()

bloom_filter& bloom_filter::operator&= ( const bloom_filter f)
inline

◆ operator=()

bloom_filter& bloom_filter::operator= ( const bloom_filter f)
inline
Here is the caller graph for this function:

◆ operator==()

bool bloom_filter::operator== ( const bloom_filter f) const
inline
Here is the caller graph for this function:

◆ operator^=()

bloom_filter& bloom_filter::operator^= ( const bloom_filter f)
inline

◆ operator|=()

bloom_filter& bloom_filter::operator|= ( const bloom_filter f)
inline

◆ size()

virtual unsigned long long int bloom_filter::size ( ) const
inlinevirtual

Reimplemented in compressible_bloom_filter.

Here is the caller graph for this function:

◆ table()

const cell_type* bloom_filter::table ( ) const
inline

Field Documentation

◆ bit_table_

std::vector<unsigned char> bloom_filter::bit_table_
protected

◆ desired_false_positive_probability_

double bloom_filter::desired_false_positive_probability_
protected

◆ inserted_element_count_

unsigned long long int bloom_filter::inserted_element_count_
protected

◆ projected_element_count_

unsigned long long int bloom_filter::projected_element_count_
protected

◆ random_seed_

unsigned long long int bloom_filter::random_seed_
protected

◆ salt_

std::vector<bloom_type> bloom_filter::salt_
protected

◆ salt_count_

unsigned int bloom_filter::salt_count_
protected

◆ table_size_

unsigned long long int bloom_filter::table_size_
protected

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