locator: Add abstract_replication_strategy::get_address_ranges

Needed by get_pending_address_ranges.
This commit is contained in:
Asias He
2015-10-10 15:14:19 +08:00
parent 3d0d02816d
commit 044dcf43de
2 changed files with 14 additions and 0 deletions

View File

@@ -142,4 +142,16 @@ abstract_replication_strategy::get_primary_ranges(inet_address ep) {
return ret;
}
std::unordered_multimap<inet_address, range<token>>
abstract_replication_strategy::get_address_ranges(token_metadata& tm) const {
std::unordered_multimap<inet_address, range<token>> ret;
for (auto& t : tm.sorted_tokens()) {
range<token> r = tm.get_primary_range_for(t);
for (auto ep : calculate_natural_endpoints(t, tm)) {
ret.emplace(ep, r);
}
}
return ret;
}
} // namespace locator

View File

@@ -113,6 +113,8 @@ public:
// StorageService.getPrimaryRangesForEndpoint().
std::vector<range<token>> get_primary_ranges(inet_address ep);
std::unordered_multimap<inet_address, range<token>> get_address_ranges(token_metadata& tm) const;
};
}