35 void process(
const MessageVariant &msg);
36 void processSignal(
Signal &signal);
37 void processTimeout(
const Timeout &timeout_event);
39 bool isBootstrapResponseValid()
const;
40 bool canLeaveWithoutReplacement()
const;
43 std::shared_ptr<minhton::MessageSEVariant> query);
45 std::future<FindResult> find(
const FindQuery &query);
47 void localInsert(
const std::vector<Entry> &entries);
48 void localUpdate(
const std::vector<Entry> &entries);
49 void localRemove(
const std::vector<std::string> &keys);
52 std::shared_ptr<JoinAlgorithmInterface> join_algo_;
53 std::shared_ptr<LeaveAlgorithmInterface> leave_algo_;
54 std::shared_ptr<SearchExactAlgorithmInterface> search_exact_algo_;
55 std::shared_ptr<ResponseAlgorithmInterface> response_algo_;
56 std::shared_ptr<BootstrapAlgorithmInterface> bootstrap_algo_;
57 std::shared_ptr<EntitySearchAlgorithmInterface> entity_search_algo_;
59 std::unordered_map<minhton::MessageType, std::shared_ptr<AlgorithmInterface>>
60 message_type_to_algorithm_map_;
62 void associateMessageTypesWithAlgorithm(std::vector<minhton::MessageType> types,
63 std::shared_ptr<AlgorithmInterface> algorithm);