Files
scylladb/db/commitlog/commitlog_replayer.hh
Pavel Emelyanov 47b61389b5 commitlog: Create commitlog_replayer with system keyspace
The replayer code needs system keyspace to fetch truncation records
from, thus it needs this explicit dependency. By the time it runs system
keyspace is fully initialized already

Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>
2023-03-06 13:28:36 +03:00

45 lines
914 B
C++

/*
* Modified by ScyllaDB
* Copyright (C) 2015-present ScyllaDB
*/
/*
* SPDX-License-Identifier: (AGPL-3.0-or-later and Apache-2.0)
*/
#pragma once
#include <memory>
#include <seastar/core/future.hh>
#include <seastar/core/sharded.hh>
#include "seastarx.hh"
namespace replica {
class database;
}
namespace db {
class commitlog;
class system_keyspace;
class commitlog_replayer {
public:
commitlog_replayer(commitlog_replayer&&) noexcept;
~commitlog_replayer();
static future<commitlog_replayer> create_replayer(seastar::sharded<replica::database>&, seastar::sharded<db::system_keyspace>&);
future<> recover(std::vector<sstring> files, sstring fname_prefix);
future<> recover(sstring file, sstring fname_prefix);
private:
commitlog_replayer(seastar::sharded<replica::database>&, seastar::sharded<db::system_keyspace>&);
class impl;
std::unique_ptr<impl> _impl;
};
}