NodeId is used in all internal token_metadata data structures, that previously used inet_address. We choose topology::key_kind based on the value of the template parameter. generic_token_metadata::update_topology overload with host_id parameter is added to make update_topology_change_info work, it now uses NodeId as a parameter type. topology::remove_endpoint(host_id) is added to make generic_token_metadata::remove_endpoint(NodeId) work. pending_endpoints_for and endpoints_for_reading are just removed - they are not used and not implemented. The declarations were left by mistake from a refactoring in which these methods were moved to erm. generic_token_metadata_base is extracted to contain declarations, common to both token_metadata versions. Templates are explicitly instantiated inside token_metadata.cc, since implementation part is also a template and it's not exposed to the header. There are no other behavioral changes in this commit, just syntax fixes to make token_metadata a template.
24 lines
669 B
C++
24 lines
669 B
C++
/*
|
|
* Copyright (C) 2023-present ScyllaDB
|
|
*/
|
|
|
|
/*
|
|
* SPDX-License-Identifier: (AGPL-3.0-or-later and Apache-2.0)
|
|
*/
|
|
|
|
#include <seastar/core/shared_ptr.hh>
|
|
#include "seastarx.hh"
|
|
|
|
namespace locator {
|
|
|
|
template <typename NodeId>
|
|
class generic_token_metadata;
|
|
using token_metadata = generic_token_metadata<gms::inet_address>;
|
|
using token_metadata_ptr = lw_shared_ptr<const token_metadata>;
|
|
using mutable_token_metadata_ptr = lw_shared_ptr<token_metadata>;
|
|
using token_metadata2 = generic_token_metadata<host_id>;
|
|
using token_metadata2_ptr = lw_shared_ptr<const token_metadata2>;
|
|
using mutable_token_metadata2_ptr = lw_shared_ptr<token_metadata2>;
|
|
|
|
} // namespace locator
|