39 bool is_use_long_conn =
false,
int epoll_num = 1,
47 virtual int SendMessage(
const google::protobuf::Message& message);
48 virtual int SendMessage(
const google::protobuf::Message& message,
49 const ReplicaInfo& replica_info);
51 virtual void BroadCast(
const google::protobuf::Message& message);
52 virtual void SendMessage(
const google::protobuf::Message& message,
55 const std::vector<std::unique_ptr<Request>>& messages,
56 const ReplicaInfo& replica_info);
62 virtual std::unique_ptr<NetChannel>
GetClient(
const std::string& ip,
69 const std::vector<ReplicaInfo>& replicas);
71 const std::vector<ReplicaInfo>& replicas);
74 bool IsInPool(
const ReplicaInfo& replica_info);
77 std::vector<ReplicaInfo> replicas_;
79 std::map<std::pair<std::string, int>, std::unique_ptr<AsyncReplicaClient>>
81 std::thread broadcast_thread_;
82 std::atomic<bool> is_running_;
85 std::vector<ReplicaInfo> dest_replicas;
88 bool is_use_long_conn_ =
false;
91 boost::asio::io_service io_service_;
92 std::unique_ptr<boost::asio::io_service::work> worker_;
93 std::vector<std::thread> worker_threads_;
94 std::vector<ReplicaInfo> clients_;