/* * * Modified by ScyllaDB * Copyright (C) 2015-present ScyllaDB */ /* * SPDX-License-Identifier: (LicenseRef-ScyllaDB-Source-Available-1.0 and Apache-2.0) */ #pragma once #include #include "utils/interval.hh" #include "partition_range_compat.hh" #include namespace streaming { class stream_request { public: using token = dht::token; sstring keyspace; dht::token_range_vector ranges; // For compatibility with <= 1.5, we send wrapping ranges (though they will never wrap). utils::chunked_vector> ranges_compat() const { return ::compat::wrap(ranges); } std::vector column_families; stream_request() = default; stream_request(sstring _keyspace, dht::token_range_vector _ranges, std::vector _column_families) : keyspace(std::move(_keyspace)) , ranges(std::move(_ranges)) , column_families(std::move(_column_families)) { } stream_request(sstring _keyspace, utils::chunked_vector> _ranges, std::vector _column_families) : stream_request(std::move(_keyspace), ::compat::unwrap(std::move(_ranges)), std::move(_column_families)) { } }; } // namespace streaming template <> struct fmt::formatter : fmt::formatter { auto format(const streaming::stream_request&, fmt::format_context& ctx) const -> decltype(ctx.out()); };