#ifndef THETA_INTERSECTION_BASE_HPP_
#define THETA_INTERSECTION_BASE_HPP_
namespace datasketches {
template<
typename Entry,
typename ExtractKey,
typename Policy,
typename Sketch,
typename CompactSketch,
typename Allocator
>
class theta_intersection_base {
public:
using hash_table = theta_update_sketch_base<Entry, ExtractKey, Allocator>;
using resize_factor = typename hash_table::resize_factor;
using comparator = compare_by_key<ExtractKey>;
theta_intersection_base(uint64_t seed, const Policy& policy, const Allocator& allocator);
template<typename FwdSketch>
void update(FwdSketch&& sketch);
CompactSketch get_result(bool ordered = true) const;
bool has_result() const;
const Policy& get_policy() const;
private:
Policy policy_;
bool is_valid_;
hash_table table_;
};
}
#include "theta_intersection_base_impl.hpp"
#endif