From 3793bb7be1c69f7c8f8f96c0d7e608834b298f1b Mon Sep 17 00:00:00 2001 From: Asias He Date: Wed, 9 Dec 2015 11:02:39 +0800 Subject: [PATCH] token_metadata: Add get_endpoint_to_token_map_for_reading --- locator/token_metadata.cc | 8 ++++++++ locator/token_metadata.hh | 20 +++----------------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/locator/token_metadata.cc b/locator/token_metadata.cc index 55ddcc5ea1..a2f2248967 100644 --- a/locator/token_metadata.cc +++ b/locator/token_metadata.cc @@ -524,6 +524,14 @@ std::map token_metadata::get_normal_and_bootstrapping_token return ret; } +std::multimap token_metadata::get_endpoint_to_token_map_for_reading() { + std::multimap cloned; + for (const auto& x : _token_to_endpoint_map) { + cloned.emplace(x.second, x.first); + } + return cloned; +} + /////////////////// class topology ///////////////////////////////////////////// inline void topology::clear() { diff --git a/locator/token_metadata.hh b/locator/token_metadata.hh index 1c74ea7979..80ae7953de 100644 --- a/locator/token_metadata.hh +++ b/locator/token_metadata.hh @@ -877,25 +877,11 @@ public: { return ImmutableList.copyOf(Iterables.concat(naturalEndpoints, pendingEndpointsFor(token, keyspaceName))); } - - /** @return an endpoint to token multimap representation of tokenToEndpointMap (a copy) */ - public Multimap getEndpointToTokenMapForReading() - { - lock.readLock().lock(); - try - { - Multimap cloned = HashMultimap.create(); - for (Map.Entry entry : tokenToEndpointMap.entrySet()) - cloned.put(entry.getValue(), entry.getKey()); - return cloned; - } - finally - { - lock.readLock().unlock(); - } - } #endif + public: + /** @return an endpoint to token multimap representation of tokenToEndpointMap (a copy) */ + std::multimap get_endpoint_to_token_map_for_reading(); /** * @return a (stable copy, won't be modified) Token to Endpoint map for all the normal and bootstrapping nodes * in the cluster.