/* * Copyright (C) 2021-present ScyllaDB */ /* * SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.0 */ #pragma once #include #include #include #include enum class tombstone_gc_mode : uint8_t { timeout, disabled, immediate, repair }; class tombstone_gc_options { private: tombstone_gc_mode _mode = tombstone_gc_mode::timeout; std::chrono::seconds _propagation_delay_in_seconds = std::chrono::seconds(3600); public: tombstone_gc_options() = default; const tombstone_gc_mode& mode() const { return _mode; } explicit tombstone_gc_options(const std::map& map); const std::chrono::seconds& propagation_delay_in_seconds() const { return _propagation_delay_in_seconds; } std::map to_map() const; seastar::sstring to_sstring() const; bool operator==(const tombstone_gc_options&) const = default; }; template <> struct fmt::formatter : fmt::formatter { auto format(tombstone_gc_mode mode, fmt::format_context& ctx) const -> decltype(ctx.out()); };