#ifndef BLOOM_FILTER_H_ #define BLOOM_FILTER_H_ #include #include namespace i2p { namespace util { /** @brief interface for bloom filter */ struct IBloomFilter { /** @brief destructor */ virtual ~IBloomFilter() {}; /** @brief add entry to bloom filter, return false if filter hit otherwise return true */ virtual bool Add(const uint8_t * data, std::size_t len) = 0; /** @brief optionally decay old entries */ virtual void Decay() = 0; }; typedef std::shared_ptr BloomFilterPtr; /** @brief create bloom filter */ BloomFilterPtr BloomFilter(std::size_t capacity = 1024 * 8); } } #endif