/* * * Modified by ScyllaDB * Copyright (C) 2015-present ScyllaDB */ /* * SPDX-License-Identifier: (AGPL-3.0-or-later and Apache-2.0) */ #pragma once #include #include "range.hh" #include "dht/i_partitioner.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). std::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, std::vector> _ranges, std::vector _column_families) : stream_request(std::move(_keyspace), ::compat::unwrap(std::move(_ranges)), std::move(_column_families)) { } friend std::ostream& operator<<(std::ostream& os, const stream_request& r); }; } // namespace streaming