@@ -19,9 +19,13 @@ class ClusterFinder
1919 virtual ~ClusterFinder () {}
2020 std::string MasterAddr (bool update = false );
2121 std::string RootTableAddr (bool update = false );
22+ std::string ClusterId (); // cluster URI: <scheme>://<authority>/<path>
2223
2324private:
2425 virtual bool ReadNode (const std::string& path, std::string* value) = 0;
26+ virtual std::string Name () = 0;
27+ virtual std::string Authority () = 0;
28+ virtual std::string Path () = 0;
2529
2630 mutable Mutex _mutex;
2731 std::string _master_addr;
@@ -33,6 +37,9 @@ class ZkClusterFinder : public ClusterFinder {
3337 ZkClusterFinder (const std::string& zk_root_path, const std::string& zk_addr_list);
3438private:
3539 virtual bool ReadNode (const std::string& path, std::string* value);
40+ virtual std::string Name () { return " zk" ; };
41+ virtual std::string Authority () { return _zk_addr_list; }
42+ virtual std::string Path () { return _zk_root_path; }
3643 std::string _zk_root_path;
3744 std::string _zk_addr_list;
3845};
@@ -42,6 +49,9 @@ class InsClusterFinder : public ClusterFinder {
4249 InsClusterFinder (const std::string& ins_root_path, const std::string& ins_addr_list);
4350private:
4451 virtual bool ReadNode (const std::string& path, std::string* value);
52+ virtual std::string Name () { return " ins" ; };
53+ virtual std::string Authority () { return _ins_addr_list; }
54+ virtual std::string Path () { return _ins_root_path; }
4555 std::string _ins_root_path;
4656 std::string _ins_addr_list;
4757};
@@ -51,6 +61,9 @@ class FakeZkClusterFinder : public ClusterFinder {
5161 FakeZkClusterFinder (const std::string& fake_zk_path_prefix);
5262private:
5363 virtual bool ReadNode (const std::string& path, std::string* value);
64+ virtual std::string Name () { return " fakezk" ; };
65+ virtual std::string Authority () { return " localhost" ; }
66+ virtual std::string Path () { return _fake_zk_path_prefix; }
5467 std::string _fake_zk_path_prefix;
5568};
5669
0 commit comments