45 virtual int Process(std::unique_ptr<Context> context,
46 std::unique_ptr<DataInfo> request_info);
56 virtual void BroadCast(
const Request& request);
57 virtual void SendMessage(
const google::protobuf::Message& message,
60 virtual int Dispatch(std::unique_ptr<Context> context,
61 std::unique_ptr<Request> request);
63 std::unique_ptr<Request> request);
67 std::unique_ptr<Request> request);
69 std::unique_ptr<Request> request);
73 const std::vector<ReplicaInfo>& replicas,
bool is_use_long_conn =
false);
81 virtual void SetPrimary(uint32_t primary, uint64_t version);
92 void BroadCastThread();
103 std::thread heartbeat_thread_;
104 std::atomic<bool> is_ready_ =
false;
105 std::unique_ptr<ReplicaCommunicator> bc_client_;
106 std::vector<ReplicaInfo> clients_;
107 Stats* global_stats_;